1

我有一个关于如何更改约束中的系数的问题。例如,我有以下约束:

lhs.addTerms(temp, x[i])
model.addConstr(cost, GRB.EQUAL, 1.0/a*lhs, 'cost_cons')

如果我想在下一次迭代中更改“temp”,如何修改模型?非常感谢

4

1 回答 1

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 有点偏离)。

于 2014-03-28T19:47:46.120 回答