问题描述
我在实用语法Gusek中使用语言GMPL。我的问题是变量最初总是大于0,但我需要-inf 问题看起来像: “ bounds”语法实际上不起作用。我的意思是,这不是我所知的有效语法,但是正如我所说,我是该领域的新手。我知道,这个问题很容易用手工解决,但是我希望能够解决更大规模的类似问题。 提前谢谢var x1;
var x2;
var x3;
minimize
z: 9*x1+6*x2+4*x3;
subject to
c1: x1+2*x2-3*x3<=11;
c2: x1+x2+3*x3<=10;
c3: 4*x1+3*x2-2*x3>=24;
bounds
-inf < x3 <= 0
solve;
end;
解决方法
默认情况下,GMPL中的变量是免费的。 (这与许多其他默认为非负数的系统相对。)
要声明负变量,请执行以下操作:
var x3 <= 0;
中的第4.3节