2

我的脚本是:

    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,并且没有显示任何解。

有任何想法吗??

非常感谢。

4

1 回答 1

5

在最新版本的 Pyomo 中,默认情况下将解决方案加载到模型中。结果对象应用于检查状态信息。如果您想询问解决方案,您可以通过直接访问模型组件并检查它们的值来实现,或者您可以执行以下操作:

m.solutions.store_to(results)
results.write()
于 2016-10-09T16:07:36.347 回答