“警告:无法找到‘ipopt’可执行文件”和 Pyomo(操作系统:Windows)

问题描述 投票:0回答:2

我一直在尝试让 ipopt 在 pyomo 上工作。我已经使用 Anaconda Navigator 下载了 pyomo(版本 5.7.3)和 ipopt,并且使用 Spyder 来编辑和运行我的

.py
代码。我一直在使用 pyomo 教程中的以下代码来了解 ipopt 是否已成功安装并工作。

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

当我设置

opt = SolverFactory('ipopt')
并运行代码时,它会给出以下警告:

WARNING: Could not locate the 'ipopt' executable, which is required for solver ipopt

我第一次尝试自己解决这个问题是从下面的链接手动下载

ipopt
可执行文件(ipopt 3.11.1-win64):

https://www.coin-or.org/download/binary/Ipopt/

之后,我提取了文件并将它们放入

pyomo
解算器位置:

C:\Anaconda\envs\myenv\Lib\site-packages\pyomo\solvers\plugins\solvers

这不起作用,所以我还尝试使用以下代码指定

ipopt
可执行文件的路径:

opt = pyo.SolverFactory("ipopt", executable="C:\Anaconda\envs\myenv\Lib\site-packages\pyomo\solvers\plugins\solvers\ipopt\bin\ipopt.exe")

但是,这样做会给我以下警告:

WARNING: Failed to create solver with name 'ipopt': Failed to set executable
    for solver ipopt. File with name=C:\Anaconda\envs\myenv\Lib\site-packages\
    pyomo\solvers\plugins\solvers\ipopin\ipopt.exe
    either does not exist or it is not executable. To skip this validation,
    call set_executable with validate=False.

提醒

ipopin\ipopt.exe
部分不是拼写错误。我不知道为什么会这样。我还尝试将可执行文件复制粘贴到
bin
文件夹之外,并将其放入
ipopt
文件夹中:

opt = pyo.SolverFactory("ipopt", executable="C:\Anaconda\envs\myenv\Lib\site-packages\pyomo\solvers\plugins\solvers\ipopt\ipopt.exe")

不幸的是我最终还是得到了

WARNING. Could not locate the 'ipopt' executable, which is required for solver ipopt

我还尝试从下面的链接下载

ipopt
可执行文件,但
ipopt.exe
被我的病毒扫描程序消除,因为它认为下载的文件是威胁:

https://projects.coin-or.org/CoinBinary/browser/binary/Ipopt/Ipopt-3.13.2-win64-msvs2019-md.zip?rev=1072

在这种情况下我可以尝试其他方法让 IPOPT 发挥作用吗?

anaconda spyder pyomo ipopt
2个回答
0
投票

如果你从 anaconda 运行你的 jupyter 笔记本,那么你应该能够在 anaconda 的安装列表中看到你的求解器


0
投票

尝试回答这个问题:安装 IPOPT 求解器以在 Windows 中与 pyomo 一起使用 您可以从以下位置手动下载可执行文件:https://www.coin-or.org/download/binary/Ipopt/并将其添加到:C:\ProgramData\Anaconda3\Library 或您的环境中。

© www.soinside.com 2019 - 2024. All rights reserved.