Pyomo Ipopt не возвращает решение

Мой сценарий:

    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 решение загружается в модель по умолчанию. Объект результатов должен использоваться для проверки информации о состоянии. Если вы хотите опросить решение, вы можете сделать это, обратившись непосредственно к компонентам модели и проверив их значение, или вы можете сделать следующее:

m.solutions.store_to(results)
results.write()
Другие вопросы по тегам