首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"ApplicationError:解决器( ipopt )没有正常退出“在自己编译和安装ipopt之后

"ApplicationError:解决器( ipopt )没有正常退出“在自己编译和安装ipopt之后
EN

Stack Overflow用户
提问于 2021-04-22 10:32:55
回答 1查看 366关注 0票数 0

我一直试图在我的Windows计算机上安装/编译ipopt,到目前为止我没有任何进展。我主要是按照这里列出的说明:https://coin-or.github.io/Ipopt/INSTALL。我专门为此目的下载了MSYS2 MinGW。

作为依赖项,我下载了以下内容

  • OpenBLAS;
  • blis;
  • ThirdParty-ASL;
  • ThirdParty-HSL (与HSL库求解器一起使用i need);
  • ThirdParty-Mumps;

)

最后,我将ipopt.exe放在C:\msys64\home\me\Ipopt\src\Apps\AmplSolver文件夹中。但是在ipopt.exe文件夹中也有另一个C:\msys64\home\me\Ipopt\src\Apps\AmplSolver\.libs,所以我尝试使用这两个文件夹。

我使用Anaconda和Pyomo来查看我的ipopt.exe是否工作,所以我将生成的ipopt.exe放在Anaconda\envs\myenv\Library\bin文件夹中。但是,我得到的ipopt可执行文件会给我带来错误。其中一个给出了一个与libipoptamplinterface-3.dll相关的错误。当我使用Spyder运行下面的Python脚本时:

代码语言:javascript
复制
import pyomo.environ as pyo
from pyomo.opt import SolverFactory
model = pyo.ConcreteModel()
model.nVars = pyo.Param(initialize=4)
model.N = pyo.RangeSet(model.nVars)
model.x = pyo.Var(model.N, within=pyo.Binary)
model.obj = pyo.Objective(expr=pyo.summation(model.x))
model.cuts = pyo.ConstraintList()
opt = SolverFactory('ipopt')
opt.solve(model) 

# Iterate, adding a cut to exclude the previously found solution
for i in range(5):
   expr = 0
   for j in model.x:
       if pyo.value(model.x[j]) < 0.5:
           expr += model.x[j]
       else:
           expr += (1 - model.x[j])
   model.cuts.add( expr >= 1 )
   results = opt.solve(model)
   print ("\n===== iteration",i)
   model.display()

我会遇到这样的错误:

代码语言:javascript
复制
ERROR: Solver (ipopt) returned non-zero return code (127)
ApplicationError: Solver (ipopt) did not exit normally

我不知道怎么解决这个问题。

EN

回答 1

Stack Overflow用户

发布于 2021-04-27 12:03:02

您的模型是一种MILP类型的优化,但是ipopt求解器不是为此目的而使用glpk求解器代替的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67211532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档