簡體   English   中英

在Pyomo / AMPL中定義多個模型

[英]Defining multiple models in Pyomo/AMPL

我試圖在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()

在Python中,您可以簡單地創建一個模型列表:

from pyomo.environ import *

models = []
for i in range(100):
  models.append( ConcreteModel() )

然后,可以通過索引列表來訪問每個模型: models[19]是第19個模型。

您可以使用commands而不是model循環加載AMPL model

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

可以使用標准Python的機制在Pyomo中完成類似的操作:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM