-1

我是线性规划的新手,我很难找到一个简单问题的解决方案。

我在 pragramme Gusek 中使用了 GPL 语言。我的问题是变量最初总是大于 0,但我需要一个 -inf<x3<=0 界限。我实际上已经尝试了所有方法,但我还没有看到任何解决这个问题的方法。

问题看起来像:

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;

“边界”语法实际上不起作用。我的意思是,就我所知,这不是一个有效的语法,但正如我所说,我是这个领域的新手。这个问题很容易用手解决,我知道,但我希望能够解决更大规模的类似问题。

提前谢谢

4

1 回答 1

0

默认情况下,GPL 中的变量是免费的。(这与默认为非负数的许多其他系统相反)。

要声明一个负变量,请执行以下操作:

 var x3 <= 0;

请参阅http://gusek.sourceforge.net/gmpl.pdf中的第 4.3 节

于 2020-10-17T18:53:41.110 回答