我正在尝试在 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)
我收到这样的错误:
非常感谢您的帮助
最佳答案
看起来您正在尝试通过参数 expr 将生成器传递给表达式构造函数。在这种情况下,您需要额外的括号,如下所示:
model.v2 = 表达式(expr=(model.r + df['Xi'][i] for i in N))
关于python - For 循环迭代 - Pyomo 表达式中的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57272410/