微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在GMPL线性编程Gusek中将变量绑定为负数?

如何解决如何在GMPL线性编程Gusek中将变量绑定为负数?

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

我在实用语法Gusek中使用语言GMPL。我的问题是变量最初总是大于0,但我需要-inf

问题看起来像:

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;

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

提前谢谢

解决方法

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

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

 var x3 <= 0;

请参见http://gusek.sourceforge.net/gmpl.pdf

中的第4.3节

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。