#ipopt #pyomo
#ipopt #pyomo
Вопрос:
мой сценарий:
from __future__ import division
import numpy
import scipy
from pyomo.environ import *
from pyomo.dae import *
from pyomo.opt import SolverFactory
m=ConcreteModel()
m.x3=Var(within=NonNegativeReals)
m.u=Var(within=NonNegativeReals)
def _con(m):
return m.x3 >=3
m.con=Constraint(rule=_con)
def _con2(m):
return 4 >= m.u >=1
m.con2=Constraint(rule=_con2)
m.obj=Objective(expr=m.x3*m.u)
opt = SolverFactory("Ipopt", executable = "/Ipopt-3.12.6/bin/ipopt")
results = opt.solve(m)
results.write()
Хотя это очень простая проблема, и хотя программа заявляет, что
нашла оптимальное решение,
количество решений равно 0, и ни одно решение не отображается.
Есть идеи??
Большое спасибо.
Ответ №1:
В самых последних версиях Pyomo решение загружается в модель по умолчанию. Объект results следует использовать для проверки информации о состоянии. Если вы хотите запросить решение, вы можете сделать это, напрямую обратившись к компонентам модели и проверив их значение, или вы можете выполнить следующее:
m.solutions.store_to(results)
results.write()