

Proxsuite هي مجموعة من الحلول العددية مفتوحة المصدر ، والقوة العددية ، ودقيقة ، وفعالة (على سبيل المثال ، LPS ، QPs ، إلخ) في خوارزميات قريبة بدائية. من خلال Proxsuite ، نهدف إلى تقديم محسنات قابلة للتطوير المجتمع التي تتعامل مع مشاكل كثيفة أو متفرقات أو خالية من المصفوفة. في حين أن التطبيق الأول المستهدف هو الروبوتات ، يمكن استخدام Proxsuite في سياقات أخرى دون حدود.
يتم تطوير ودعم Proxsuite بنشاط من قبل مجموعات Willow و Sierra Research ، وفرق البحوث المشتركة بين Inria ، و école Normale Supérieure de Paris ، و Center National de La Recherche Scientifique المترجمة في فرنسا.
تم دمج 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 )إذا كنت ترغب في استخدام Proxsuite مع cmake ، يجب أن يساعدك المثال الصغير التالي:
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) ، يحصل المرء على النتائج التالية.

على المحور ص ، يمكنك رؤية توقيتات في ثوانٍ ، وعلى بعد محور X WRT إلى المتغير البدائي للمشاكل التربيعية العشوائية المتولدة (عدد القيود المولدة من المشكلة التي تم إنشاؤها هو نصف حجم البعد البدائي). لكل بُعد ، يتم إنشاء المشكلة على بذور مختلفة ، ويتم الحصول على التوقيت كمتوسطات على المدى المتتالي لنفس المشكلات. يعرض هذا الرسم البياني لكل حلول محلي معياري وبرنامج تربيعي عشوائي تم إنشاؤه ، توقيت barplot ، بما في ذلك الوسيط (كنقطة) والحد الأدنى والقيم القصوى التي تم الحصول عليها (تحديد سعة الشريط). يمكنك أن ترى أن PROXQP دائمًا ما يكون أقل من الحلول ، مما يعني أنه هو الأسرع لهذا الاختبار.
للمشاكل الصعبة من اختبار Maros Meszaros ، عند طلب دقة عالية (على سبيل المثال ، 1E-9) ، يحصل المرء على النتائج أدناه.

يوضح الرسم البياني أعلاه ملفات تعريف الأداء لمحللها المختلفين. إنه كلاسيكي لقياس الحلول. تتوافق ملفات تعريف الأداء مع جزء المشكلات التي تم حلها (على المحور ص) كدالة لوقت تشغيل معين (على المحور السيني ، المقاسة من حيث مضاعف وقت تشغيل الأسرع في هذه المشكلة). لذلك كلما كان ذلك أفضل. يمكنك أن ترى أن PROXQP يحل أسرع أكثر من 60 ٪ من المشاكل (أي ، ل
ملاحظة: تم الحصول على كل هذه النتائج باستخدام CORE 11th Gen Intel (R) Core (TM) I7-11850H @ 2.50 جيجا هرتز.
يمكّن QPlayer من استخدام QP كطبقة داخل بنيات التعلم القياسية. بتعبير أدق ، يميز QPlayer
أين
QPlayer قادر على معرفة المزيد من البنية منظمة. على سبيل المثال،
إذا كنت تستخدم QPlayer لعملك ، فنحن نشجعك على الاستشهاد بالورقة ذات الصلة.
يرجى اتباع إجراء التثبيت هنا.