CPLEXなどの最適化ソルバーへのMatlabインターフェイスであるYALMIPを使い始めようとしています。目的関数と制約があり、それらをYalmipに接続しました...obj
cons
options=sdpsettings('solver','Cplex'); %windows needs uppercase 'Cplex' and unix is ok with 'cplex' or 'Cplex'
solvesdp(cons,obj,options); %prints 'Warning: Solver not found'
上記のコードでは、警告:ソルバーが見つかりませんsolvesdp
を出力します。を含む、、、およびYalmipへの呼び出しは、私の友人のコンピューターで機能しますが、なぜそれが私のコンピューターで機能しないのかについて私たちは困惑しています。.m
obj
cons
以下は、MatlabR2012bを使用してUbuntu12.04マシンで行ったCPLEXとYalmipのセットアップ手順です。
- ここにIBMCPLEXをインストールしました:
/home/user/ibm/ILOG/CPLEX_Studio125/cplex
- ここにYalmipをインストールしました:
home/user/yalmip
- MatlabパスにCPLEXとYalmipを追加しました(そしてすべてのディレクトリが存在することを確認しました):
addpath(genpath('/home/user/yalmip'))
addpath(genpath('/home/user/ibm/ILOG/CPLEX_Studio125/cplex/matlab'))
addpath(genpath('/home/user/ibm/ILOG/CPLEX_Studio125/cplex/examples/src/matlab'))
以下に、私がどのように問題を診断しようとしたかを説明します。MatlabはCPLEXを認識でき、MatlabはYalmipを認識できますが、YalmipはCPLEXを認識できません。
YalmipとCPLEXが私のmatlabパスにあることを確認しました:
MATLAB> path
/home/user/ibm/ILOG/CPLEX_Studio125/cplex/examples/src/matlab
/home/user/ibm/ILOG/CPLEX_Studio125/cplex/matlab
/home/forrest/ibm/ILOG/CPLEX_Studio125/cplex/matlab/help
/home/forrest/ibm/ILOG/CPLEX_Studio125/cplex/matlab/help/helpsearch
/home/forrest/ibm/ILOG/CPLEX_Studio125/cplex/matlab/help/topics
/home/user/yalmip
/home/user/yalmip/demos
/home/user/yalmip/extras
/home/user/yalmip/modules
/home/user/yalmip/modules/bilevel
/home/user/yalmip/modules/global
/home/user/yalmip/modules/moment
/home/user/yalmip/modules/parametric
/home/user/yalmip/modules/robust
/home/user/yalmip/modules/sos
/home/user/yalmip/operators
/home/user/yalmip/solvers
...
Matlabが実際にCPLEXを検出できることを確認するために、を実行しましhelp cplexlp
た。それは有効な出力を与えました:
MATLAB> help cplexlp
cplexlp
Solve linear programming problems.
x = cplexlp(f,Aineq,bineq) solves the linear programming problem min f*x such that Aineq*x <= bineq.
...
また、次のwhich cplex
出力を提供します。/home/user/ibm/ILOG/CPLEX_Studio125/cplex/matlab/@Cplex/Cplex.p
そしてwhich yalmip
、この出力を与えます:/home/user/yalmip/extras/yalmip.m
yalmiptest
Matlabコマンドプロンプトで実行しました。出力は、MatlabがYalmipを検出できることを確認しますが、YalmipはCPLEXを検出できません。
MATLAB> yalmiptest
+++++++++++++++++++++++++++++++++++++++++++++++
| Searching for installed solvers |
+++++++++++++++++++++++++++++++++++++++++++++++
| Solver| Version/module| Status|
+++++++++++++++++++++++++++++++++++++++++++++++
| LINPROG| | found|
| QUADPROG| | found|
| LMILAB| | found|
| FMINCON| geometric| found|
| FMINCON| standard| found|
| FMINSEARCH| | found|
| BNB| | found|
| BINTPROG| | found|
| CUTSDP| | found|
| BMIBNB| | found|
| KKTQP| | found|
| NONE| | found|
| LSQNONNEG| | found|
| LSQLIN| | found|
| GUROBI| GUROBI| not found|
| GUROBI| MEX| not found|
| CPLEX| IBM| not found|
| CPLEX| IBM| not found|
| CPLEX| IBM| not found|
| CPLEX| IBM| not found|
| CPLEX| IBM| not found|
| CPLEX| IBM| not found|
| CPLEX| IBM| not found|
| CPLEX| IBM| not found|
| CPLEX| IBM| not found|
| CPLEX| IBM| not found|
| CPLEX| IBM| not found|
| CPLEX| IBM| not found|
| CPLEX| IBM| not found|
| CPLEX| IBM| not found|
| CPLEX| IBM| not found|
| CPLEX| CPLEXINT| not found|
| CBC| | not found|
| GLPK| GLPKMEX-CC| not found|
また、これに対する答えを求めてIBMフォーラムを見回しました。友人が、IBMフォーラムでCPLEX / Yalmipの診断に関するこの投稿を指摘してくれましたが、この投稿はWindowsに焦点を当てたものであり、私の問題は実際には解決しませんでした。
詳細:
- Yalmipバージョン2012-09-26
- CPLEXバージョン12.5