Ich habe ein lineares Ganzzahl-Programm, das ich lösen möchte. Ich installierte Löser glpk (danke an this answer) und pyomo. Ich schrieb Code wie folgt:Pyomo: Access Solution Von Python Code
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)
Diese Lösung results.yaml
Datei erzeugt.
Ich habe viele Probleme, die ich lösen möchte mit dem gleichen Modell, aber mit anderen a
, b
und c
Werte. Ich will verschiedene Werte a
, b
und c
, lösen das Modell zuordnen, erhalten Lösung von model.x[1]
und model.x[2]
, und haben eine Liste von a
, b
, c
, model.x[1]
und model.x[2]
. Ich lese documentation, aber Beispiele schreiben nur Lösungen in Datei wie results.yaml
.
Gibt es eine Möglichkeit, auf Lösungswerte aus Code zuzugreifen?
Danke,
Di nicht verwenden diese lib in eine Weile. Können Sie nicht einfach auf model.x.value zugreifen? Und auch model.Objective.value. – sascha
@sascha, danke. Ich habe 'für i in model.x: print (model.x [i] .value)' versucht, und es hat funktioniert. –
@sascha, auch wäre es nett wenn du mir sagst warum ich diese lib nicht benutzen soll. Du meinst [WinGLPK] (http://winglpk.sourceforge.net/), richtig? –