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

GNU MathProg 循环值、多个二进制背包、语法问题

如何解决GNU MathProg 循环值、多个二进制背包、语法问题

我正在尝试使用 GNU MathProg https://online-optimizer.appspot.com/ 实现多二进制背包问题 而且我不确定如何施加约束, 相同的物品不能放入同一个背包 我尝试了以下方法: w1,w2,v1,v2,分别是两个背包的重量和值

param w1{I};
param v1{I};

param w2{I};
param v2{I};

var x1{I} >= 0,<= 1,binary;
var x2{I} >= 0,binary;

maximize z:     sum {i in I} v1[i] * x1[i] +    sum {i in I} v2[i] * x2[i] ;

subject to c1:  sum {i in I} w1[i] * x1[i] <= 50; 
subject to c2:  sum {i in I} w1[i] * x2[i] <= 70;  

现在我试过了:

subject to c3:   forall {i in I} x1[i] + x2[i] < 2;

这样一来,放在一个背包里的东西就不能带进另一个背包里了。 但它说 i 没有定义。 如何解决问题。

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