私はPuLPでCPLEXを呼び出すために 'prob.solve(CPLEX())'を使用します。PuLPでCPLEXを使用するときにアルゴリズムをバリアに設定する方法
しかし、ここではバリアアルゴリズムを使用して非ゼロの解を得る方法が不思議です。
ありがとうございました。
私はPuLPでCPLEXを呼び出すために 'prob.solve(CPLEX())'を使用します。PuLPでCPLEXを使用するときにアルゴリズムをバリアに設定する方法
しかし、ここではバリアアルゴリズムを使用して非ゼロの解を得る方法が不思議です。
ありがとうございました。
私はPuLPのエキスパートではありませんが、これは可能です(ただし、どの程度信頼できるかはわかりません)。 CPLEX DLL共有ライブラリを使用してCPLEXパラメータを設定する方法については、ここでhintがあります。 CPLEX_DLL
クラスがsetLpAlgorithm
メソッドを持っているようパルプ(バージョン1.6.1)の最新バージョンで、それを作るために見えます、しかし
>>>> solver = CPLEX_DLL()
>>>> CplexDll.CPXsetintparam(solver.env, CPX_PARAM_MIPDISPLAY, 4)
Good point I would prefer
>>> solver.CPXsetintparam(CPX_PARAM_MIPDISPLAY, 4)
As this only requires Knowledge of CPLEX parameters and not Pulp internals
:私は、これは時代遅れであると考えていますが、ここではそのスレッドから対応するスニペットですこれはより便利です。
>>> from pulp import *
>>> cplex_dll_path
'<path_on_your_machine>/libcplex1263.so'
>>> solver = CPLEX()
>>> solver.setLpAlgorithm(4)
<path_on_your_machine>/libcplex1263.so
は(パルプモジュールがインストールされているディレクトリに)pulp.cfg.(linux|osx|win)
ファイルで設定する必要があります。ここではちょうどあなたの要点を与えるために、一例です。 solver.setLpAlgorithm(4)
のマジックナンバー「4」は、CPX_ALG_BARRIER
(here参照)に対応します。
CPLEXをより細かく制御したい場合は、CPLEX Python APIを直接使用する方がよいかもしれません(但し、これはPuLPよりも低レベルのAPIです)。あるいは、より高いレベルのdocplexパッケージをチェックしてください。パッケージもクラウド上で解決できます。