首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用PYOMO将SCIP设置为求解器时出错

使用PYOMO将SCIP设置为求解器时出错
EN

Stack Overflow用户
提问于 2017-10-05 15:26:06
回答 1查看 4.8K关注 0票数 2

我正试图解决在PYOMO中设置的一个MILP问题,它以SCIP作为求解者。我使用python解释器在PyDev内部运行这个问题。

我可以运行和解决问题与其他解决办法,即CBC,GLPK,和IPOPT。

但是,当使用SCIP作为求解器时,它不起作用。似乎SCIP/AMPL接口有问题.有人能帮忙吗?

下面是关于错误提示和系统配置的一些详细信息。

我试过用“scip”和“scipampl”。

与“scip”

代码语言:javascript
运行
复制
opt = SolverFactory('scip')
instance = model.create_instance("test1.dat")
results = opt.solve(instance)
instance.display()

警告:"base/site-packages/pyomo/solvers/plugins/solvers/SCIPAMPL.py",68,_default_executable无法找到“scipampl”可执行文件,该可执行文件是解决器scip跟踪所必需的(最近一次调用):File“/home/alessandro/Documents/Eclipse工作区/test1 1/src/test1.py”,第48行,在"/home/alessandro/anaconda3/lib/python3.6/site-packages/pyomo/opt/base/solvers.py",=opt.solve(实例)#解决和更新实例文件的第539行中,在解决self.available(exception_flag=True)文件的第122行中,在可用的ApplicationError(msg % self.name) pyutilib.common._exceptions.ApplicationError中:没有为解决程序“scip”找到可执行文件

配上“枕安普尔”

代码语言:javascript
运行
复制
opt = SolverFactory('scipampl')
instance = model.create_instance("test1.dat")
results = opt.solve(instance)
instance.display()

警告:"base/site-packages/pyomo/opt/base/solvers.py",202,solver_call未能创建名为“scipampl”的解决程序:未能为解决程序asl设置可执行文件。带有name=scipampl的文件要么不存在,要么不能执行。若要跳过此验证,请使用set_executable调用validate=False。回溯(最近一次调用):文件“/home/alessandro/Documents/Eclipse工作区/test1 1/src/test1.py”,第48行,在results =opt.solve(实例)文件"/home/alessandro/anaconda3/lib/python3.6/site-packages/pyomo/opt/base/solvers.py",中,在opt.solve(实例)文件第127行,在解决self._solver_error(‘解决’)文件"/home/alessandro/anaconda3/lib/python3.6/site-packages/pyomo/opt/base/solvers.py",中第155行,在_solver_error + "\n\toptions:%s“%( self.options,)RuntimeError中:尝试使用不可用的解决程序。 SolverFactory无法创建求解器"scipampl“并返回一个UnknownSolver对象。在使用UnknownSolver对象时会引发此错误,好像它是有效的(通过调用方法"solve")。 最初的求解器是使用以下参数创建的:可执行文件: scipampl类型: scipampl _args:()选项:{}

Eclipse版本是"Oxygen.1 (4.7.1)“,PyDev版本是"6.0.0”。

python、pyomo和solvers版本如下:

代码语言:javascript
运行
复制
~$ python
Python 3.6.2 |Anaconda custom (64-bit)| (default, Sep 30 2017, 18:42:57) [GCC 7.2.0] on linux

~$ pyomo --version
Pyomo 5.2 (CPython 3.6.2 on Linux 4.10.0-35-generic)

~$ cbc
Welcome to the CBC MILP Solver 
Version: 2.9.9 
Build Date: Jul  6 2017

~$ glpsol
GLPSOL: GLPK LP/MIP Solver, v4.63

~$ ipopt
No stub!
usage: ipopt [options] stub [-AMPL] [<assignment> ...]

~$ scip 
SCIP version 4.0.1 [precision: 8 byte] [memory: block] [mode: optimized] [LP solver: SoPlex 3.0.1] [GitHash: 8a04b84]
Copyright (C) 2002-2017 Konrad-Zuse-Zentrum fuer Informationstechnik Berlin (ZIB)
External codes: 
SoPlex 3.0.1         Linear Programming Solver developed at Zuse Institute Berlin (soplex.zib.de) [GitHash: 24cffa9]
CppAD 20160000.1     Algorithmic Differentiation of C++ algorithms developed by B. Bell (www.coin-or.org/CppAD)
ZLIB 1.2.8           General purpose compression library by J. Gailly and M. Adler (zlib.net)
GMP 6.1.0            GNU Multiple Precision Arithmetic Library developed by T. Granlund (gmplib.org)
ZIMPL 3.3.4          Zuse Institute Mathematical Programming Language developed by T. Koch (zimpl.zib.de)
Ipopt 3.12.8         Interior Point Optimizer developed by A. Waechter et.al. (www.coin-or.org/Ipopt)
user parameter file <scip.set> not found - using default parameters
SCIP> ^C

我安装了CBC、GLPK和IPOT软件包如下:

代码语言:javascript
运行
复制
conda install -c conda-forge coincbc
conda install -c conda-forge glpk
conda install -c conda-forge ipopt

我在Linux.deb软件包" SCIPOPTSUITE -4.0.1-Linux.deb“中安装了最新的SCIPOptSuite版本"4.0.1”

我还安装了AMPL和PYSCIPOPT,如下所示:

代码语言:javascript
运行
复制
conda install -c conda-forge ampl-mp
conda install -c leethargo scipoptlib
conda install -c leethargo pyscipopt
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-05 16:17:36

编辑:按照以下说明:http://zverovich.net/2012/08/07/using-scip-with-ampl.html

有几件可能有帮助的事情:

  • leethargo上的conda包不是官方的conda包(因为没有)
  • 试着先通过pip安装和运行PySCIPOpt
  • PySCIPOpt与PYOMO没有接口,所以您很可能需要依赖AMPL来支持SCIP。
  • PYOMO甚至支持SCIP吗?我从他们的文件里弄不出来

啊,看看我在谷歌搜索"pyomo“后发现了什么:

因此,PYOMO只通过AMPL接口(ASL)支持SCIP。

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

https://stackoverflow.com/questions/46589393

复制
相关文章

相似问题

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