我一直试图在我的Windows计算机上安装/编译ipopt,到目前为止我没有任何进展。我主要是按照这里列出的说明:https://coin-or.github.io/Ipopt/INSTALL。我专门为此目的下载了MSYS2 MinGW。
作为依赖项,我下载了以下内容
)
最后,我将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脚本时:
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()我会遇到这样的错误:
ERROR: Solver (ipopt) returned non-zero return code (127)
ApplicationError: Solver (ipopt) did not exit normally我不知道怎么解决这个问题。
发布于 2021-04-27 12:03:02
您的模型是一种MILP类型的优化,但是ipopt求解器不是为此目的而使用glpk求解器代替的。
https://stackoverflow.com/questions/67211532
复制相似问题