【发布时间】:2019-12-07 21:21:39
【问题描述】:
我正在尝试在 pyomo 表达式中执行 for 循环
这是我的初始化:
N = range(len(df))
model.N = Param(N, mutable=False)
model.r = Var(initialize=1.0 , within=NonNegativeReals)
model.alpha = Var(initialize=1.0 , within=NonNegativeReals)
model.a = Var(initialize=1.0 , within=NonNegativeReals)
model.b = Var(initialize=1.0 , within=NonNegativeReals)
model.rCon = Constraint(expr= model.r >= 0.000001)
model.alphaCon = Constraint(expr= model.alpha >= 0.000001)
model.aCon = Constraint(expr= model.a >= 0.000001)
model.bCon = Constraint(expr= model.b >= 0.000001)
当我尝试定义这样的表达式时:
model.v1 = Expression(expr= model.r + df['Xi'][0])
它编译得很好,但是当我尝试像这样进行 For 循环迭代时:
model.v2 = Expression(expr= model.r + df['Xi'][i] for i in N)
我收到这样的错误:
非常感谢您的帮助
【问题讨论】:
-
如所写,您的表达无效。你想把总和超过
df['Xi'][i] for i in N吗?还是您要声明一个索引表达式?
标签: python for-loop syntax-error pyomo