首页 文章

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

提问于
浏览
1

我正在尝试解决在PYOMO中设置的MILP问题,即SCIP作为求解器 . 我使用python ANACONDA解释器从PyDev中运行问题 .

我可以运行并解决其他求解器的问题,即CBC,GLPK和IPOPT .

但是,当使用SCIP作为求解器时,它不起作用 . 看来SCIP / AMPL接口有问题......任何人都可以帮忙吗?

以下是有关错误提示和系统配置的一些详细信息 .


我试过'scip'和'scipampl' .

随着'scip'

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 Traceback所需的(最近一次调用最后一次) :文件“/ home / alessandro / Documents / Eclipse workspace / test1 / src / test1.py”,第48行,结果= opt.solve(实例)#solves and updates instance file“/ home / alessandro / anaconda3 / lib / python3.6 / site-packages / pyomo / opt / base / solvers.py“,第539行,解决self.available(exception_flag = True)文件”/home/alessandro/anaconda3/lib/python3.6/site-packages /pyomo/opt/solver/shellcmd.py“,第122行,可用引发ApplicationError(msg%self.name)pyutilib.common._exceptions.ApplicationError:找不到求解器'scip'的可执行文件

用'scipampl'

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设置可执行文件 . 名称= scipampl的文件不存在或不可执行 . 要跳过此验证,请使用validate = False调用set_executable . 回溯(最近一次调用最后一次):文件“/ home / alessandro / Documents / Eclipse workspace / test1 / src / test1.py”,第48行,结果= opt.solve(instance)文件“/ home / alessandro / anaconda3 / lib / python3.6 / site-packages / pyomo / opt / base / solvers.py“,第127行,解决self._solver_error('solve')文件”/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”) . 使用以下参数创建原始解算器:executable:scipampl type:scipampl _args :()options:{}

Eclipse版本为“Oxygen.1(4.7.1)”,PyDev版本为“6.0.0” .

python,pyomo和solvers版本如下:

~$ 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包:

conda install -c conda-forge coincbc
conda install -c conda-forge glpk
conda install -c conda-forge ipopt

我使用Linux-Debian软件包“SCIPOptSuite-4.0.1-Linux.deb”安装了最新的SCIPOPTSUITE版本“4.0.1”

我还安装了AMPL-MP SCIPOPTLIB和PYSCIPOPT如下:

conda install -c conda-forge ampl-mp
conda install -c leethargo scipoptlib
conda install -c leethargo pyscipopt

1 回答

相关问题