2017-10-05 25 views
1

ソロとしてPYOMO whith SCIPで設定したMILP問題を解決しようとしています。 PythonのANACONDAインタプリタを使ってPyDev内から問題を実行します。PYOMOでソルバーとしてSCIPを設定するときのエラー

他のソルバー、つまりCBC、GLPK、およびIPOPTの問題を実行して解決できます。

ただし、SCIPをソルバーとして使用すると機能しません。 SCIP/AMPLインターフェイスに何か問題があるようです...誰も手伝ってもらえますか?

以下は、エラープロンプトとシステム構成の詳細です。


私は 'scip'と 'scipampl'を試しました。 「SCIP 'scipampl'

opt = SolverFactory('scipampl') 
instance = model.create_instance("test1.dat") 
results = opt.solve(instance) 
instance.display() 

WARNING: "[base]/site-packages/pyomo/opt/base/solvers.py", 202, solver_call Failed to create solver with name 'scipampl': Failed to set executable for solver asl. File with name=scipampl either does not exist or it is not executable. To skip this validation, call set_executable with validate=False. Traceback (most recent call last): File "/home/alessandro/Documents/Eclipse workspace/test1/src/test1.py", line 48, in results = opt.solve(instance) File "/home/alessandro/anaconda3/lib/python3.6/site-packages/pyomo/opt/base/solvers.py", line 127, in solve self._solver_error('solve') File "/home/alessandro/anaconda3/lib/python3.6/site-packages/pyomo/opt/base/solvers.py", line 155, in _solver_error + "\n\toptions: %s" % (self.options,)) RuntimeError: Attempting to use an unavailable solver.

The SolverFactory was unable to create the solver "scipampl" and returned an UnknownSolver object. This error is raised at the point where the UnknownSolver object was used as if it were valid (by calling method "solve").

The original solver was created with the following parameters: executable: scipampl type: scipampl _args:() options: {}

opt = SolverFactory('scip') 
instance = model.create_instance("test1.dat") 
results = opt.solve(instance) 
instance.display() 

WARNING: "[base]/site-packages/pyomo/solvers/plugins/solvers/SCIPAMPL.py", 68, _default_executable Could not locate the 'scipampl' executable, which is required for solver scip Traceback (most recent call last): File "/home/alessandro/Documents/Eclipse workspace/test1/src/test1.py", line 48, in results = opt.solve(instance) # solves and updates instance File "/home/alessandro/anaconda3/lib/python3.6/site-packages/pyomo/opt/base/solvers.py", line 539, in solve self.available(exception_flag=True) File "/home/alessandro/anaconda3/lib/python3.6/site-packages/pyomo/opt/solver/shellcmd.py", line 122, in available raise ApplicationError(msg % self.name) pyutilib.common._exceptions.ApplicationError: No executable found for solver 'scip'

Eclipseバージョンで

"はOxygen.1(4.7.1)" とPyDevはバージョンであります「6.0.0」である。次のように

のpython、pyomo、およびソルバーバージョンは次のとおりです。

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

答えて

1

EDIT: 次の手順に従ってください:役立つかもしれないhttp://zverovich.net/2012/08/07/using-scip-with-ampl.html

いくつかのこと:

  • (何も存在しないため)leethargoでcondaパッケージは公式condaパッケージではありません
  • 最初にPySCIPOPをインストールして実行してみてください。
  • PySCIPOptはPYOMOに接続されていないため、AMPを使用する必要がありますLはSCIPサポート用です
  • PYOMOでもSCIPをサポートしていますか?私はああ

その文書からそれを把握、私は "pyomo SCIP" をグーグル後に見つけたものを見ませんでした:

をしたがって、PYOMOはAMPLインターフェイス(ASL)を介してのみSCIPをサポートします。

+0

これは、AMPLへの完全なアクセスが必要であることを意味しますか(私はそのライセンスを持っていません)、あるいはprobleemを修正する他の方法はありますか?私は学問のために速く自由であることのためにSCIPが好きでしたが、それのためにMATLABを使用しなければなりませんでした。私はその後pyomoで始まり、私はscipを使用し続けることができたらうれしいです。 – sasap

+0

いいえ、あなたはAMPLは必要ありません。これらの指示に従って、PYOMOに必要な 'scipampl'実行ファイルを生成してください。それは少し不明瞭に見えますが、私は最新のSCIP 4.0.1で試してみましたが、それでも動作します。 – mattmilten

+0

私は指示を見ることができません、それはリンクがありますか? – sasap

関連する問題