Gurobi python изменяет значение определенного значения

У меня вопрос о том, как изменить коэффициент в ограничении. Например, у меня есть следующее ограничение:

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

Если я хочу изменить «temp» на следующей итерации, как изменить модель? Спасибо большое


person Cosmozhang    schedule 23.02.2014    source источник


Ответы (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)

Это то, что вы искали? Часто люди сохраняют ограничения в список. Наконец, вы можете захотеть быть последовательным в своем именовании (левая сторона справа немного отличается).

person brugaltheelder    schedule 28.03.2014
comment
Большое спасибо, хотя я решил это на время. - person Cosmozhang; 29.03.2014
comment
Без проблем. Он был / все еще помечен как активный, поэтому я решил добавить решение на случай, если его найдут другие. - person brugaltheelder; 29.03.2014
comment
Отметить как ответивший? Это помогло бы мне начать работу на этом сайте. - person brugaltheelder; 29.03.2014