小编And*_*uff的帖子

更改索引参数值的最佳方法

我是 Pyomo 的新手,想知道如何更改具有一个或多个索引的现有模型参数的值。

我看过一些标量参数的示例,即没有索引。例如:

model5 = ConcreteModel()
model5.data2 = Param(initialize=10.0, mutable=True)
print("print data2 before")
model5.data2.pprint()
model5.data2 = 999
print("print data2 after")
model5.data2.pprint()
Run Code Online (Sandbox Code Playgroud)

这会产生输出:

print data2 before
data2 : Size=1, Index=None, Domain=Any, Default=None, Mutable=True
    Key  : Value
    None :  10.0
print data2 after
data2 : Size=1, Index=None, Domain=Any, Default=None, Mutable=True
    Key  : Value
    None :   999
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试使用具有索引的参数来执行此操作,则会出现错误。以下代码失败,但可能并不奇怪,因为我正在尝试将 Python 对象分配给 Pyomo 对象。使用索引(或多个索引)更新参数的正确方法是什么?

model5 = ConcreteModel()
# Make a small set
myList = ['i1', 'i2', 'i3', 'i4']
model5.i = Set(dimen=1, initialize=myList)
# Make …
Run Code Online (Sandbox Code Playgroud)

pyomo

3
推荐指数
1
解决办法
2405
查看次数

标签 统计

pyomo ×1