

ProxSuiteは、再訪された原始二重近位アルゴリズムに根ざした、オープンソース、数値的に堅牢で、正確で、効率的な数値ソルバー(LP、QPSなど)のコレクションです。 ProxSuiteを通じて、密集した、まばらな、またはマトリックスのない問題を扱うコミュニティスケーラブルなオプティマザーを提供することを目指しています。最初のターゲットアプリケーションはロボット工学ですが、 ProxSuiteは他のコンテキストで制限なしで使用できます。
ProxSuiteは、ウィローとシエラの研究グループ、インリア、エコールノルマールスペリエールデパリ、およびフランスにローカライズされたセンターデラチェルチ科学センターの共同研究チームによって積極的に開発され、サポートされています。
ProxSuiteは既に統合されています。
他の最適化エコシステムにProxSuiteを統合する準備ができています。
プロクススイートは高速です:
ProxSuiteは多用途であり、問題構造を効率的に活用するために特化した統一されたAPI高度なアルゴリズムを介して提供しています。
専用の機能を備えています
ProxSuiteは柔軟です:
ProxSuiteは拡張可能です。 ProxSuiteは信頼性が高く、広範囲にテストされており、文献の最も困難な問題に関する最高のパフォーマンスを示しています。 ProxSuiteは、Windows、Mac OS X、UNIX、およびLinuxでサポートおよびテストされています。
最後のリリースのオンラインProxSuiteドキュメントはこちらから入手できます。
ProxSuiteは、多くの有名なパッケージマネージャーに配布されます。
pip install proxsuiteこのアプローチは、Linux、Windows、Mac OS Xで利用できます。
conda install proxsuite -c conda-forgeこのアプローチは、Linux、Windows、Mac OS Xで利用できます。
brew install proxsuiteこのアプローチは、LinuxとMac OS Xで利用できます。
ソースからのインストールはここに示されています。
最速のパフォーマンスについては、次のコマンドを使用して、簡単な例をコンパイルするときにベクトル化を有効にします。
g++ -O3 -march=native -DNDEBUG -std=gnu++17 -DPROXSUITE_VECTORIZE examples/first_example_dense.cpp -o first_example_dense $( pkg-config --cflags proxsuite )cmakeを使用してProxSuiteを使用したい場合は、次の小さな例が役立つはずです。
cmake_minimum_required ( VERSION 3.10)
project (Example CXX)
find_package (proxsuite REQUIRED)
set (CMAKE_CXX_STANDARD 17) # set(CMAKE_CXX_STANDARD 14) will work too
add_executable (example example.cpp)
target_link_libraries (example PUBLIC proxsuite::proxsuite)
# Vectorization support via SIMDE and activated by the compilation options '-march=native' or `-mavx2 -mavx512f`
add_executable (example_with_full_vectorization_support example.cpp)
target_link_libraries (example_with_full_vectorization_support PUBLIC proxsuite::proxsuite-vectorized)
target_compile_options (example_with_full_vectorization_support PUBLIC "-march=native" )ベクトル化サポートを使用してProxSuiteをコンパイルした場合、Cmake Target proxsuite::proxsuite-vectorizedを使用してSimdeに対してリンクすることもできます。 -march=nativeを使用することを忘れないでください。
ProxQPアルゴリズムは、フォームの二次プログラミングの問題を解決するための数値最適化アプローチです。
どこ
あなたがあなたの仕事にproxQPを使用しているなら、私たちはあなたが関連する論文を引用することをあなたに推奨します。
他の商業およびオープンソースソルバーに対するProxQPの数値ベンチマークは、こちらから入手できます。
不平等と平等の制約を備えた高密度の凸状の二次プログラムの場合、比較的高い精度を要求する場合(例えば、1E-6)、次の結果を得ることができます。

Y軸では、数秒でタイミングを見ることができ、X軸ディメンションWRTでは、生成されたランダムな二次問題の原始変数(生成された問題の制約の数は、その原始寸法の半分です)。すべての次元について、問題は異なる種子で生成され、同じ問題の連続した実行の平均としてタイミングが得られます。このチャートは、ベンチマークされたすべてのソルバーとランダムな第四方プログラム、生成されたランダムな2次プログラム、中央値(ドットとして)を含むバープロットタイミング、および得られた最小値と最大値(バーの振幅を定義)を示しています。 ProxQPは常にソルバー上に下にあることがわかります。つまり、このテストで最も迅速です。
Maros Meszarosテストセットからの困難な問題については、高精度(例えば1E-9)を要求する場合、以下の結果を取得します。

上のチャートは、異なるソルバーのパフォーマンスプロファイルを報告しています。ソルバーをベンチマークするためのクラシックです。パフォーマンスプロファイルは、特定のランタイムの関数として解決された問題の割合(y軸)に対応しています(X軸上、その問題の最速ソルバーの実行時間の倍数で測定)。だから、高いほど良い。 ProxQPが問題の60%を超える速いものを解決していることがわかります(つまり、
注:これらの結果はすべて、第11世代インテル(R)コア(TM)I7-11850H @ 2.50GHz CPUで得られています。
QPlayerを使用すると、標準学習アーキテクチャ内のレイヤーとしてQPを使用できます。より正確には、Qplayerは分化します
どこ
QPlayerは、より多くの構造化されたアーキテクチャを学ぶことができます。例えば、
あなたがあなたの仕事にQplayerを使用しているなら、私たちはあなたが関連する論文を引用することをお勧めします。
こちらのインストール手順に従ってください。