python - Scip 与 Pyomo 接口的问题
问题描述
我正在尝试使用 Pyomo 解决非线性优化问题。起初,我尝试了 Ipopt 求解器,然后运行起来了。然后我想尝试求解器Scip来尝试全局优化,因为 Ipopt 是本地求解器。但是,我在使用它时遇到了一个我无法理解的错误。
让 Scip 与 Pyomo 一起工作并不简单,但是通过互联网上的一些帮助和一些试验和错误,我能够从这里获得适用于 windows 的 scip 可执行文件。我将可执行文件命名为 scipampl 并将其添加到我的 PATH 中。
Pyomo 能够看到求解器,因为当我运行以下命令时,它返回 True。
SolverFactory('scip').available()
对我的工作有信心,然后我尝试运行我的代码。我将我的 Solverfactory 设置如下:
solver = 'scip'
solver_io = 'nl'
opt = SolverFactory(solver, solver_io = solver_io)
但令我失望的是,我最后收到以下错误:
[Errno 2] No such file or directory: 'C:\\Users\\NITINN~1.SIN\\AppData\\Local\\Temp\\tmpc0hzo5_7.pyomo.sol'
我试图在互联网上查看这是什么意思,但到目前为止我一直不走运。如果有人能阐明这可能是什么原因,我将不胜感激?
谢谢。
解决方案
您需要 SCIP/AMPL 接口的可执行文件。正常的 SCIP 可执行文件,可能是你得到的那个,不包含一个。目前,SCIP 下载页面上最后一个适用于 Windows 的是这个:https ://scip.zib.de/download.php?fname=scipampl-6.0.0.win.x86_64.intel.opt.spx2.exe 。压缩
推荐阅读
- oracle - 如何调用并保存在过程中返回ref游标的oracle存储过程的结果集
- reactjs - 我如何在 React Native 中使用本地存储?
- python - PySpark:一起评估特定列
- machine-learning - 如何处理预测标签的比例很重要的多标签分类问题?
- sql - SQL Server - 计算午夜发生次数
- sql - 将时间戳/varchar 列转换为 presto 中的 bigint,其中包含两种不同的日期格式
- accessibility - NVDA 屏幕阅读器 - 使用快捷方式读出当前焦点在文本输入字段上的下一个项目
- javascript - useState 的数组类型
- java - 多维数组到缩进列表
- javascript - 在 Node 中暂停和恢复下载文件