2017-04-21 14 views
0

私はGAMSを長い間使用してきましたが、GAMSではCPLEXのすべての機能を使用することはできません。あなたはPyomoを使ってそれをすることができますか?またはPythonでCPLEXを直接使用していますか?ありがとう!pythonのcplexとpythonのcplexのメリット

答えて

0

Pyomoを使用する利点は、問題を解決するために使用される基礎となるソルバーとは独立したモデリング言語であることです。たとえば、モデルを作成してglpkで解くことができます。コマンドラインオプションを変更することで、CPLEX、Gurobiなどで同じモデルを解くことができます。分散最適化をサポートするなどの多くの機能を提供し、必要に応じて独自のカスタムソルバーを使用できます(ドキュメントを参照)。

CPLEX Python APIはスペクトルの反対側にあります。モデリング言語ではありません。これは、基礎となるCPLEX Callable Library(C API)をラップする比較的軽量のレイヤーです。変数、制約などは、インデックスまたは名前で参照されます。 Callable Libraryで行うことができるほとんどすべてを行うことができます。この意味で、CPLEX機能(コールバックのような高度な機能さえも)へのアクセスを最大限にします。

中間のどこかにあるオプションはDOCplexです。 DOCplexはIBMが提供するオープン・ソース・モデリング言語であり、クラウド上またはローカルで解決することができます。数学的プログラミングのためのCPLEXをサポートしますが、制約プログラミングのためのCP Optimizerもサポートしています。

+0

ありがとうございましたrkersh! pyomoがCPLEX機能へのアクセスの点でgamsとどのように比較されているか知っていますか?たとえば、ガムの下では、新たな現職解が見つかるたびにbrachとboundアルゴリズムを停止することができます。これもpyomoでもできますか? – Salva

+0

私はそれを疑う。 [ここにはいくつかの示唆があります](https://groups.google.com/forum/#!topic/pyomo-forum/lJTUjlAjw3s)、それは他の大きな商用ソルバーについて語っていますが、これは、高レベルの最適化言語、特にオープンソースのものでは一般的ではないものです。私が知っている唯一のものは[JuMP](https://jump.readthedocs.io/en/latest/)です。しかし、それは明らかにPythonではありません。 – sascha