我尝试将约束表达式添加到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
循环,它将运行正常。上面的代码产生语法错误。唯一的缺点是它会创建数千个不需要的额外数学上的琐碎约束。“ mix”仅是稀疏填充的“二进制”字典(即,大多数为零,中间为几个)。仅当存在“ 1”时才需要约束。似乎在for循环中评估/调用字典值存在问题。任何解决此问题的想法将不胜感激。谢谢。
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)