AIMMS人工变量约束

AIMMS artificial variable constraint

我很难正确地制定约束条件。问题的简化版本:

有12个时间单位,3种产品,产品i在时间$t$的需求d_{i,t}是预先知道的,资源r_{i,t}(全部8个,产品i使用产品 i 在时间 t 所需的非 i 资源)也是已知的。我们需要通过决定在时间 t 需要生产多少产品 i 来最小化持有成本 h_i,这称为 x_{i,t}。每种产品的起始库存为 6。为了帮助我引入库存水平 s_{i,t}。这等同于以下公式:

我使用 Excel 求解器完成了这项工作,但我需要在 AIMMS 中执行此操作。 Stock 变量 s 给我带来了问题,我无法使用 if 语句来处理 if t=1 条件,也不知道如何将它分成两个约束,因为第二个约束的第一次迭代需要引用第一个约束。

您可以在约束属性中指定 索引域,如下所示:

(t,i) | t > 1
如果时间实例集是整数的子集,

if t > 1 语句应该有效。如果不是 - 你应该使用 ord(t) > 1,即

if ord(t) > 1
then
Your_Constraint
endif