【发布时间】:2017-03-06 14:45:38
【问题描述】:
我需要检查变量的索引是否存在,同时调用约束初始化,如果不存在,我想将变量的值设置为 0。在 python 字典中,你可以这样做:dict.get ('not-a-key',0). Pyomo 对象有类似的东西吗?
【问题讨论】:
标签: python-2.7 pyomo
我需要检查变量的索引是否存在,同时调用约束初始化,如果不存在,我想将变量的值设置为 0。在 python 字典中,你可以这样做:dict.get ('not-a-key',0). Pyomo 对象有类似的东西吗?
【问题讨论】:
标签: python-2.7 pyomo
我们没有添加此方法,因为人们可能希望使用它来返回一个新变量(该变量不属于容器,因为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)
【讨论】: