Anaconda &引用;ApplicationError:解算器(ipopt)未正常退出;在自行编译和安装ipopt之后

Anaconda &引用;ApplicationError:解算器(ipopt)未正常退出;在自行编译和安装ipopt之后,anaconda,spyder,mingw-w64,pyomo,ipopt,Anaconda,Spyder,Mingw W64,Pyomo,Ipopt,我一直在尝试在我的Windows计算机上安装/编译ipopt,到目前为止我没有任何进展。我主要遵循这里列出的说明:https://coin-or.github.io/Ipopt/INSTALL。我专门为此下载了MSYS2 MinGW 作为依赖项,我下载了以下内容 OpenBLAS blis 第三方ASL 第三方HSL(带有我需要的HSL库解算器) 第三方腮腺炎 最后,我在C:\msys64\home\me\ipopt\src\Apps\AmplSolver文件夹中获得了ipopt.exe。但

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

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

  • OpenBLAS
  • blis
  • 第三方ASL
  • 第三方HSL(带有我需要的HSL库解算器)
  • 第三方腮腺炎
最后,我在
C:\msys64\home\me\ipopt\src\Apps\AmplSolver
文件夹中获得了
ipopt.exe
。但是在
C:\msys64\home\me\ipopt\src\Apps\AmplSolver\.libs
文件夹中还有另一个
ipopt.exe
,因此我尝试使用这两个文件夹

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

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

我不知道如何解决这个问题。

您的模型是MILP类型的优化,但是ipopt解算器不用于此目的。请使用glpk解算器而不是该解算器。

可能首先检查ipopt二进制文件在仅从命令行运行时是否工作。也就是说,在
make
之后执行
make测试。另外,不要忘记执行
进行安装
。与其复制Ipopt二进制文件(及其所需的DLL),不如将Ipopt安装的路径放在path中。
ERROR: Solver (ipopt) returned non-zero return code (127)
ApplicationError: Solver (ipopt) did not exit normally