#python #variables #pyomo
#python #переменные #pyomo
Вопрос:
Я пытаюсь сделать это в pyomo Concretemodel(), но я получаю и ошибка:
model.Smax = Var( within=PositiveIntegers )
model.Z = Var(model.T, bounds=(0, model.Smax))
ValueError: Non-fixed input of type '<class 'pyomo.core.base.var.SimpleVar'>' supplied as variable
upper
bound - legal types are fixed expressions or variables.parameters
Как я могу изменить код, чтобы иметь эту верхнюю границу? Или вместо этого я должен использовать ограничение на максимальное значение для Z [t]?
Спасибо
Комментарии:
1. Было бы целесообразно установить его как ограничение, а не как ограничение.
Ответ №1:
Для верхнего или нижнего предела вы можете установить его следующим образом:
model.P_min = Param(model.J)
model.P_max = Param(model.J)
def Pbounds(model, j):
return (model.P_min[j], model.P_max[j])
model.P = Var(model.J, bounds=Pbounds, domain=NonNegativeReals)