Optimization Pyomo:将新集合定义为集合操作

Optimization Pyomo:将新集合定义为集合操作,optimization,pyomo,Optimization,Pyomo,鉴于: 我需要定义一个新的集合K=J-I 我试过了 from pyomo.environ import * model = AbstractModel() model.I = Set() model.J = Set() 但这似乎不是一种选择。我怎样才能做到这一点呢?我认为你最好还是写信 model.K = model.J - model.I 而不是 model.I - model.J 如果您想使用表达式model.K,我建议您在rootdata中为model.K输入适当的信息,如mod

鉴于:

我需要定义一个新的集合K=J-I

我试过了

from pyomo.environ import * 
model = AbstractModel() 
model.I = Set()
model.J = Set()

但这似乎不是一种选择。我怎样才能做到这一点呢?

我认为你最好还是写信

model.K = model.J - model.I
而不是

model.I - model.J

如果您想使用表达式model.K,我建议您在rootdata中为model.K输入适当的信息,如model.I和model.J.

根据Pyomo文档第4.2节的操作,可以按照说明进行设置操作(-)。我的问题一定在别处。我不介意删除该问题。提供您遇到的错误消息通常会有所帮助。我没有遇到错误消息,但我的优化模型没有按照我的预期运行。我同意,第一种方法更清晰,因为它不需要你记住额外的变量。
model.K