我正在尝试使用Gurobi运行一个简单的最小化MILP。我的二进制变量通过约束附加到一组连续变量,并且当二进制变量设置为1时,将为连续变量分配值(x和z)。代码行是这样的。 a和b是二进制的。求解器可以将a或b设置为1或将两者都设置为0。我在forloop中运行该模型,如果二进制决策为true,则每次迭代中的总数都会更新。但是在运行时,二进制显示为0,但是连续变量变为正值。寻求帮助。
m.addConstr(x1 + x2 + 5* x3 <= (total1)*a,"c0")
m.addConstr(z1 + z2 + z3 <= (total2)*b,"c1")
m.addConstr(a+b <= 1,"c3")