user2960040 user2960040 - 2 months ago 7
Python Question

Defining multiple models in Pyomo/AMPL

I am trying to set up (and solve) multiple optimizations problems in

. For this I need to define the models first, for

model model_1.mod

model model_2.mod

model model_3.mod


model model_n.mod


model_1 = ConcreteModel()

model_2 = ConcreteModel()


model_n = ConcreteModel()

I was wondering if there is an automatic way to do this, whether with a for loop, or some indexing so that if n=100 I don't have to write 100
model_k = ConcreteModel()


You can load AMPL models in a loop using commands instead of model:

for {i in 1..n}
  commands('model_' & i & '.mod');

Similar thing can be done in Pyomo using standard Python's mechanisms:

g = globals()
for i in range(n + 1):
  g['model_' + str(i)] = ConcreteModel()