Я пытаюсь решить проблему MILP, созданную в PYOMO с помощью SCIP в качестве решателя. Я запускаю проблему из PyDev, используя интерпретатор python ANACONDA.
Я могу запускать и решать проблему с помощью других решателей, а именно 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, в results = opt.solve (instance) # решает и обновляет файл экземпляра "/ 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 либо не существует, либо не является исполняемым. Чтобы пропустить эту проверку, вызовите set_executable с validate = False. Отслеживание (последний вызов последним): файл "/ home / alessandro / Documents / Eclipse workspace / test1 / src / test1.py", строка 48, в файле results = opt.solve (instance) "/ home / alessandro / anaconda3 / lib / python3.6 / site-packages / pyomo / opt / base / solvers.py ", строка 127, в файле решения self._solver_error ('resolve')" /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 использовался, как если бы он был действительным (путем вызова метода «решить»).
Исходный решатель был создан со следующими параметрами: исполняемый файл: тип scipampl: scipampl _args: () параметры: {}
Версия 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
Я установил последнюю версию SCIPOPTSUITE "4.0.1" с пакетом Linux-Debian "SCIPOptSuite-4.0.1-Linux.deb"
Я также установил AMPL-MP SCIPOPTLIB и PYSCIPOPT следующим образом:
conda install -c conda-forge ampl-mp
conda install -c leethargo scipoptlib
conda install -c leethargo pyscipopt