2016-10-09 9 views
2

мой сценарий: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, и там не отображается какое-либо решение.

Любые идеи?

Большое спасибо.

ответ

5

В последних версиях Pyomo решение загружается в модель по умолчанию. Объект результатов должен использоваться для проверки информации о состоянии. Если вы хотите допросить решение, вы можете сделать это, обратившись непосредственно к компонентам модели и проверив их значение, или вы можете сделать следующее:

m.solutions.store_to(results) 
results.write() 

 Смежные вопросы

  • Нет связанных вопросов^_^