user2960040 - 2 months ago 7

Python Question

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

`Pyomo/AMPL`

`AMPL`

`model model_1.mod`

model model_2.mod

model model_3.mod

...

model model_n.mod

for

`Pyomo`

`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()`

Answer

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()
```

Source (Stackoverflow)

Comments