Я пытаюсь добавить выражения ограничения в модель python / pyomo: код, который я пробовал, выглядит так:
for r_k in VAR1:
for p_v in VAR2:
for b_n in VAR3:
IF mix[b_n][p_v]() >= 0:
model.cons.add(model.func2[r_k,b_n,p_v]*q1[b_n][p_v] - model.func1[r_k,b_n,p_v] ==0)
Если я оставлю IF
l oop, он будет работать нормально. Приведенный выше код вызывает синтаксическую ошибку. Единственным недостатком является то, что он создает тысячи дополнительных математически тривиальных ограничений, которые не нужны.
«mix» - это только малонаселенный «двоичный» словарь (то есть в основном нули, несколько промежуточных). Ограничение необходимо только там, где есть «1». Кажется, есть проблема с оценкой / вызовом значений словаря в циклах for. Любая идея, как решить эту проблему, будет высоко ценится. Спасибо.