|
|
1
1
问题源于你如何对变量求和。当你使用sum([x for x in model.x])时,Python实际上是在迭代model.x的索引,而不是Pyomo变量本身。这创建了一个索引的列表理解,它不会解析为有效的Pyomo约束表达式。 在Pyomo中,当你想对变量求和时,你应该使用显式索引或sum()函数来引用实际的变量。以下是定义约束的几种正确方法: 显式索引(您已经发现它有效): pythonCopymodel。约束2=pyo。约束(expr=model.x[0]+model.x[1]>=0) 使用带有显式变量引用的sum(): pythonCopymodel。约束2=pyo。约束(expr=sum(model.x.keys()中i的model.x[i])>=0) 另一种选择: pythonCopymodel。约束2=pyo。约束(expr=sum(范围(2)中i的model.x[i])>=0) |
|
|
Curious Iitian · Pyomo调度 7 年前 |
|
|
Christoph Neumann · 消除pyomo模型中的等式约束 7 年前 |
|
|
V. Brunelle · 如何从Pyomo中的多个函数中获取值 8 年前 |