我有一個線性整數程序,我想解決。我安裝了求解器glpk(感謝this answer)和pyomo。我寫這樣的代碼:Pyomo:從Python代碼訪問解決方案
from pyomo.environ import *
from pyomo.opt import SolverFactory
a = 370
b = 420
c = 2
model = ConcreteModel()
model.x = Var([1,2], domain=NonNegativeIntegers)
model.Objective = Objective(expr = a * model.x[1] + b * model.x[2], sense=minimize)
model.Constraint1 = Constraint(expr = model.x[1] + model.x[2] == c)
# ... more constraints
opt = SolverFactory('glpk')
results = opt.solve(model)
這產生的解決方案文件results.yaml
。
我有很多問題,我想解決使用相同的模型,但與a
,b
,c
值不同。我想不同的值賦給a
,b
和c
,解決了模型,得到model.x[1]
和model.x[2]
的解決方案,並有a
,b
,c
,model.x[1]
和model.x[2]
的列表。我讀了documentation,但示例僅寫入文件的解決方案,如results.yaml
。
有什麼辦法可以從代碼訪問解決方案的值?
感謝,
迪有一段時間沒有使用這個庫。你不能只訪問model.x.value嗎?還有model.Objective.value。 – sascha
@sascha,謝謝。我試着在model.x中爲我:print(model.x [i] .value)',它工作。 –
@sascha,如果你告訴我爲什麼我不應該使用這個庫,它會很好。你的意思是[WinGLPK](http://winglpk.sourceforge.net/),對吧? –