我正在尝试在Pyomo/AMPL
中设置(并解决)多个优化问题。为此,我需要首先为AMPL
:
model model_1.mod
model model_2.mod
model model_3.mod
...
model model_n.mod
代表Pyomo
:
model_1 = ConcreteModel()
model_2 = ConcreteModel()
...
model_n = ConcreteModel()
我想知道是否有一种自动方式来执行此操作,无论是使用for循环,还是使用某些索引,如果n = 100,我不必写100 model_k = ConcreteModel()
。
答案 0 :(得分:2)
在Python中,您只需创建一个模型列表:
File -> Project Structure
然后,可以通过索引列表来访问每个模型:from pyomo.environ import *
models = []
for i in range(100):
models.append( ConcreteModel() )
是第19个模型。
答案 1 :(得分:0)
您可以使用commands
代替model
在循环中加载AMPL模型:
for {i in 1..n}
commands('model_' & i & '.mod');
可以使用standard Python's mechanisms在Pyomo中完成类似的事情:
g = globals()
for i in range(n + 1):
g['model_' + str(i)] = ConcreteModel()