2016-10-09 4 views
2

mon script est:Pyomo Ipopt ne retourne pas la solution

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() 

Bien que ce soit un problème très simple et bien que le programme indique que il a trouvé la solution optimale, le nombre de solutions est 0 et il aucune solution n'est affichée.

Des idées?

Merci beaucoup.

Répondre

5

Dans les versions les plus récentes de Pyomo, la solution est chargée dans le modèle par défaut. L'objet de résultat doit être utilisé pour vérifier les informations d'état. Si vous souhaitez interroger la solution, vous pouvez le faire en accédant directement aux composants du modèle et en vérifiant leur valeur, ou vous pouvez effectuer les opérations suivantes:

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