

ProxSuite adalah kumpulan pemecah numerik open-source, kuat secara numerik, tepat, dan efisien (misalnya, LPS, QPS, dll.) Yang berakar pada algoritma proksimal primal-ganda yang ditinjau kembali. Melalui ProxSuite , kami bertujuan untuk menawarkan pengoptimal yang dapat diskalakan komunitas yang menangani masalah yang padat, jarang, atau bebas matriks. Sementara aplikasi yang ditargetkan pertama adalah robotika, ProxSuite dapat digunakan dalam konteks lain tanpa batas.
ProxSuite secara aktif dikembangkan dan didukung oleh kelompok riset Willow dan Sierra, tim peneliti bersama antara Inria, École Normale Supérieure de Paris dan Center National de la Recherche Scientifique yang terlokalisasi di Prancis.
ProxSuite sudah terintegrasi ke dalam:
Kami siap untuk mengintegrasikan ProxSuite dalam ekosistem optimasi lainnya.
ProxSuite cepat:
ProxSuite serba guna, menawarkan melalui algoritma lanjutan API terpadu yang berspesialisasi untuk mengeksploitasi struktur masalah secara efisien:
dengan fitur khusus untuk
ProxSuite fleksibel:
ProxSuite dapat diperluas. ProxSuite dapat diandalkan dan diuji secara luas, menunjukkan kinerja terbaik pada masalah literatur yang paling sulit. ProxSuite didukung dan diuji pada Windows, Mac OS X, UNIX, dan Linux.
Dokumentasi ProxSuite online dari rilis terakhir tersedia di sini.
ProxSuite didistribusikan ke banyak manajer paket terkenal.
pip install proxsuitePendekatan ini tersedia di Linux, Windows dan Mac OS X.
conda install proxsuite -c conda-forgePendekatan ini tersedia di Linux, Windows dan Mac OS X.
brew install proxsuitePendekatan ini tersedia di Linux dan Mac OS X.
Instalasi dari sumber disajikan di sini.
Untuk kinerja tercepat, gunakan perintah berikut untuk mengaktifkan vektorisasi saat menyusun contoh sederhana.
g++ -O3 -march=native -DNDEBUG -std=gnu++17 -DPROXSUITE_VECTORIZE examples/first_example_dense.cpp -o first_example_dense $( pkg-config --cflags proxsuite )Jika Anda ingin menggunakan ProxSuite dengan CMake, contoh kecil berikut ini akan membantu Anda:
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" ) Jika Anda telah menyusun ProxSuite dengan dukungan vektorisasi, Anda mungkin juga menggunakan CMAKE Target proxsuite::proxsuite-vectorized untuk juga terhubung dengan SIMDE. Jangan lupa menggunakan -march=native untuk mendapatkan kinerja terbaik.
Algoritma ProxQP adalah pendekatan optimasi numerik untuk menyelesaikan masalah pemrograman kuadratik dari bentuk:
Di mana
Jika Anda menggunakan ProxQP untuk pekerjaan Anda, kami mendorong Anda untuk mengutip kertas terkait.
Tolok ukur numerik ProxQP terhadap pemecah komersial dan open-source lainnya tersedia di sini.
Untuk program kuadrat cembung padat dengan ketimpangan dan kendala kesetaraan, ketika meminta akurasi yang relatif tinggi (misalnya, 1E-6), seseorang memperoleh hasil berikut.

Pada sumbu y, Anda dapat melihat waktu dalam hitungan detik, dan pada dimensi sumbu x WRT ke variabel primal dari masalah kuadratik acak yang dihasilkan (jumlah kendala dari masalah yang dihasilkan adalah setengah dari ukuran dimensi primal). Untuk setiap dimensi, masalahnya dihasilkan pada benih yang berbeda, dan waktu diperoleh sebagai rata -rata dalam proses berturut -turut untuk masalah yang sama. Bagan ini menunjukkan untuk setiap solver yang dibandingkan dan program kuadratik acak yang dihasilkan, waktu Barplot, termasuk median (sebagai titik) dan nilai minimal dan maksimal diperoleh (mendefinisikan amplitudo batang). Anda dapat melihat bahwa ProxQP selalu di bawah atas pemecah, yang berarti itu adalah yang tercepat untuk tes ini.
Untuk masalah keras dari testset Maros Meszaros, ketika meminta akurasi tinggi (misalnya, 1E-9), seseorang memperoleh hasil di bawah ini.

Bagan di atas melaporkan profil kinerja pemecah yang berbeda. Ini klasik untuk pembandingan pemecah. Profil kinerja sesuai dengan fraksi masalah yang diselesaikan (pada sumbu y) sebagai fungsi runtime tertentu (pada sumbu x, diukur dalam hal kelipatan runtime pemecah tercepat untuk masalah itu). Jadi semakin tinggi, semakin baik. Anda dapat melihat bahwa ProxQP memecahkan tercepat lebih dari 60% dari masalah (yaitu, untuk
Catatan: Semua hasil ini telah diperoleh dengan Intel Gen Intel (R) (TM) ke-11 (TM) I7-11850H @ 2.50GHz CPU.
QPlayer memungkinkan untuk menggunakan QP sebagai lapisan dalam arsitektur pembelajaran standar. Lebih tepatnya, Qplayer membedakan
Di mana
Qplayer dapat mempelajari lebih banyak arsitektur terstruktur. Misalnya,
Jika Anda menggunakan QPlayer untuk pekerjaan Anda, kami menganjurkan Anda untuk mengutip kertas terkait.
Silakan ikuti prosedur instalasi di sini.