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 (将#修改为@)