首页 > 解决方案 > Pyomo 错误:TypeError:“MonomialTermExpression”对象不可迭代

问题描述

我不断收到此错误 - “TypeError:'MonomialTermExpression' 对象不可迭代” -来自我的 AbstractModel 构造下面的约束组件。但是,我似乎不明白这个错误以及如何解决它。如果这个平台上的任何人能指出我正确的方向,我会很高兴。

谢谢你。

model.Q = pyo.Var(initialize=0.000001, within=pyo.PercentFraction, name='Variable for MinMax MOMP')

def wt_rule1(model,i,j):
    for (i,j), val in model.w.extract_values().items():
        return (val*(sum(model.d[i,j]*model.x[i,j])-291)/291.0) <= model.Q
model.distConst = pyo.Constraint(model.A,rule=wt_rule1)

标签: pyomo

解决方案


在玩了很多次之后,我意识到重新构造约束对象如下工作:

def wt_rule1(model,i,j):
    for (i,j), val in model.w.extract_values().items():
        return  (val*(sum(model.d[i,j]*model.x[i,j] for i in model.I for j in model.J)-291)/291) <= model.Q
model.distConst = pyo.Constraint(model.A, rule=wt_rule1)


推荐阅读