我一直在尝试执行以下代码,该代码尝试将集合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?),但实际上不是我的解决方案。
答案 0 :(得分:1)
您可以通过两种方式定义上限:公式化公式或使用.up
后缀。您混合了两种导致问题的方式。
这是定义方程式的第一种方法:
Equation cons1(J);
cons1(J)..
b(J) =l= 3;
如果使用后缀方法(这是更好的方法),则不应该使用方程式,只需执行以下操作:
b.up(J) = 3;