Gurobi Python изменить значение определенного значения
У меня есть вопрос о том, как изменить коэффициент в ограничении. Например, у меня есть следующее ограничение:
lhs.addTerms(temp, x[i])
model.addConstr(cost, GRB.EQUAL, 1.0/a*lhs, 'cost_cons')
Если я хочу изменить "temp" в следующей итерации, как изменить модель? Спасибо большое
1 ответ
Не могли бы вы дать немного больше информации? Я думаю, что вы хотите сделать, это изменить коэффициенты 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 на правой стороне немного не так).