我有一个关于如何更改约束中的系数的问题。 例如,我有以下约束:
lhs.addTerms(temp, x[i])
model.addConstr(cost, GRB.EQUAL, 1.0/a*lhs, 'cost_cons')
如果我想在下一次迭代中更改“temp”,如何修改模型? 非常感谢
答案 0 :(得分:3)
你能提供更多信息吗?我认为你想要做的是改变特定约束中x [i]的系数。如果是这样,那么您应该通过将约束分配给变量(或将其添加到列表中)来保存约束:
lhs.addTerms(temp, x[i])
savedConstraint = model.addConstr(cost, GRB.EQUAL, 1.0/a*lhs, 'cost_cons')
然后,在下一次迭代中,您可以使用chgCoeff(请参阅http://www.gurobi.com/documentation/5.6/reference-manual/py_model_chgcoeff)。
model.chgCoef(savedConstraint,x[i],newtemp)
那是你在寻找什么?通常人们会将约束保存到列表中。最后,您可能希望与您的命名保持一致(右侧的lhs有点偏离)。