Я новичок в Pyomo. Я хочу добавить ограничение типа if..then .. к моей задаче линейного программирования. У меня есть абстрактная модель, и это пример того, что я хотел бы сделать:
если узел j1 получает менее половины своей потребности в воде, минимальный расход в линии между j2 и j1 должен быть установлен на значение потребности в j1 (A и B - переменные модели, d - известный параметр).
if A(j1)<0.5 then B(j2,j1)>=d(j1)
Я пробовал следующее, когда определял ограничения модели. Но поскольку модель еще не создала экземпляр из своего файла данных, она не распознает j1 и j2.
def rule_(model):
term1=floor(model.A[j1]/0.5)
return (term1*model.B[j1,j2]>term1*mdoel.demand[j1])
model.rule=Constraint(rule=rule_)
Если я возьму эти строки после создания экземпляра модели с использованием файла данных, я думаю, что ограничение вообще не будет реализовано.
Кто-нибудь может помочь с этим, пожалуйста? Спасибо.