如何在gams中设置集合中所有元素的上限

时间:2019-09-10 05:19:40

标签: linear-programming gams-math

我一直在尝试执行以下代码,该代码尝试将集合J的每个元素的上限设置为3。

set J /a1, a2, a3/;
positive variables b(J);
variable obj;

equations cons1, goal;

cons1..
b.up(J) =e= 3;

其余的GAMS代码仅运行模型。但是,生成的错误语句显示为“将不受控制的设置输入为常数”。我也尝试过“ b.up(J)= 3;” -遇到同样的问题。有谁知道如何解决这个问题?这个问题类似(How to set upper and lower bounds for each element in a set?),但实际上不是我的解决方案。

1 个答案:

答案 0 :(得分:1)

您可以通过两种方式定义上限:公式化公式或使用.up后缀。您混合了两种导致问题的方式。

这是定义方程式的第一种方法:

Equation cons1(J);
cons1(J)..
b(J) =l= 3;

如果使用后缀方法(这是更好的方法),则不应该使用方程式,只需执行以下操作:

b.up(J) = 3;