CVXOPTVS。OpenOpt


11
  • CVXOPT:http ://abel.ee.ucla.edu/cvxopt/index.html
  • OpenOpt:http ://openopt.org/Welcome

    1. それらの間の関係は何ですか?
    2. それぞれの長所/短所は何ですか?

ところで、Python / C ++用の高品質の汎用凸最適化ライブラリは他にありますか?

回答:


11

CVXOPTは(滑らかおよび滑らかでない)凸問題のみを解くため、最先端のワーストケースの複雑さが保証された複数のサードパーティの凸ソルバーにアクセスできます。線形、凸の2次、線形の半正定、およびその他の多くの凸タイプの制約を設定できます。

OpenOptは、整数制約の問題を含む、一般的な(スムーズおよび非スムーズ)非線形プログラムを解決します。CVXOPTとは異なり、半正定値プログラムを解くためのソフトウェアはありません。ソルバーはすべてDmitrey Kroshko自身が書いたものであり、長い歴史がないため、テストはおそらく制限されていました。OpenOpt自体は、一般的なサードパーティのソルバーとはインターフェイスしません。

ただし、IPOPT(別のコメントに記載されています;滑らかでない問題は解決できません)、CVXOPT、およびPythonで使用可能な他のソルバーとインターフェイスする '' OpenOpt Framework ''(http://openopt.org/OOFramework)があります。

このインターフェースとは別に、これらのパッケージ間に関係はありません。方法はまったく異なります。唯一一般的なものは、Python言語とLAPACKへのアクセスです。

凸問題については、私はまたのようなお勧めするだろう
CVXを:ディシプリン凸のためのMatlabのソフトウェアはプログラミング http://cvxr.com/cvxを
著者は計算数理プログラミングに優秀今年の非常に権威のあるビール・ヘイズ・オーチャード賞を得ています。ただし、Matlabで記述されています。
また、CVXPY http://www.stanford.edu/~ttinoco/cvxpy/と呼ばれるPythonの ''バージョン ''もあり ますが、CVXPYは事実上、CVXOPTへの非常に素晴らしく便利な ''規律のある ''インターフェースです。プログラムが構文的に正しい場合、それが凸最適化問題であることを確認できます。


4

OpenOptは、ほとんどの場合、他のソルバーへの単なるインターフェイスです。CVXOPTはOpenOptの基礎となるオープンソースソルバーの1つです。そのため、使用する商用ソルバーがない限り、CVXOPTをインストールすることをお勧めします。知る限りでは、CVXOPTは、少なくとも2次コーンプログラミングおよび半確定プログラミング向けのオープンソースライブラリの中でも最先端です。


1
CVXOPTがOpenOptの基礎となるメインのオープンソースソルバーであると言うのは意味がないと思います。たとえば、IPOPTや他の多数の基礎となるソルバーよりもメインなのはなぜですか?
デビッドケッチャソン

おそらくメインのSOCPソルバーの方が正確です(?)
マーク・シヴァーズ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.