我需要检查变量的索引是否存在,同时调用约束初始化,如果它不存在,我想将变量的值设置为 0。在 python 字典中,你可以这样做:dict.get('not -a-key',0). Pyomo 对象有类似的东西吗?
问问题
265 次
1 回答
0
我们没有添加此方法,因为人们可能希望使用它来返回一个新变量(该变量不属于容器,因为该get
方法不会修改字典)。也许类似setdefault
方法的东西在这里更有意义,但这也不是目前内置在建模界面中的东西。
您可能能够使用的一项功能是,如果在初始声明之后将该索引添加到变量的索引集中,Pyomo 将在特定索引处隐式构造一个新变量对象。例子:
model = ConcreteModel()
model.x_index = Set(initialize=[1])
model.x = Var(model.x_index)
model.x[1] # OK
model.x[2] # KeyError
model.x_index.add(2)
model.x[2] # OK (implicitly creates this object on the fly)
于 2017-03-06T15:54:53.627 回答