在Pyomo / AMPL中定义多个模型

时间:2014-03-12 12:38:30

标签: python ampl pyomo

我正在尝试在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()

2 个答案:

答案 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()