

ProxSuite เป็นคอลเลกชันของโอเพนซอร์ซ, ความแข็งแกร่งเชิงตัวเลข, แม่นยำและมีประสิทธิภาพนักแก้ปัญหาตัวเลข (เช่น LPS, QPS, ฯลฯ ) ที่หยั่งรากในอัลกอริทึม proximal proximal primal-dual ผ่าน Proxsuite เรามุ่งมั่นที่จะนำเสนอตัวเพิ่มประสิทธิภาพที่ปรับขนาดได้ของชุมชนที่จัดการกับปัญหาที่หนาแน่นกระจัดกระจายหรือไม่มีเมทริกซ์ ในขณะที่แอปพลิเคชันเป้าหมายแรกคือหุ่นยนต์ proxsuite สามารถใช้ในบริบทอื่น ๆ โดยไม่มีการ จำกัด
Proxsuite ได้รับการพัฒนาอย่างแข็งขันและได้รับการสนับสนุนจากกลุ่มวิจัย Willow และ Sierra, ทีมวิจัยร่วมระหว่าง Inria, École Normale Supérieure de Paris และศูนย์นักวิทยาศาสตร์แห่งชาติ de la recherche ที่มีการแปลในฝรั่งเศส
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
การติดตั้งจากแหล่งที่มาจะถูกนำเสนอที่นี่
สำหรับประสิทธิภาพที่เร็วที่สุดให้ใช้คำสั่งต่อไปนี้เพื่อเปิดใช้งาน vectorization เมื่อรวบรวมตัวอย่างง่ายๆ
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 ด้วยการสนับสนุน vectorization คุณอาจใช้ cmake target proxsuite::proxsuite-vectorized เพื่อเชื่อมโยงกับ Simde อย่าลืมใช้ -march=native เพื่อให้ได้ประสิทธิภาพที่ดีที่สุด
อัลกอริทึม PROXQP เป็นวิธีการเพิ่มประสิทธิภาพเชิงตัวเลขสำหรับการแก้ปัญหาการเขียนโปรแกรมกำลังสองของแบบฟอร์ม:
ที่ไหน
หากคุณใช้ PROXQP สำหรับงานของคุณเราขอแนะนำให้คุณอ้างอิงกระดาษที่เกี่ยวข้อง
เกณฑ์มาตรฐานเชิงตัวเลขของ PROXQP กับนักแก้ปัญหาเชิงพาณิชย์และโอเพ่นซอร์สอื่น ๆ มีให้ที่นี่
สำหรับโปรแกรมสมการกำลังสองนูนที่มีข้อ จำกัด ด้านความไม่เท่าเทียมและความเท่าเทียมกันเมื่อขอความแม่นยำค่อนข้างสูง (เช่น 1E-6) หนึ่งได้รับผลลัพธ์ต่อไปนี้

บนแกน y คุณสามารถดูการกำหนดเวลาในไม่กี่วินาทีและในมิติแกน x WRT ไปยังตัวแปรครั้งแรกของปัญหากำลังสองแบบสุ่มที่สร้างขึ้น (จำนวนข้อ จำกัด ของปัญหาที่สร้างขึ้นคือครึ่งหนึ่งของขนาดแรกของมิติแรก) สำหรับทุกมิติปัญหาจะถูกสร้างขึ้นผ่านเมล็ดที่แตกต่างกันและการกำหนดเวลาจะได้รับเป็นค่าเฉลี่ยมากกว่าการวิ่งต่อเนื่องสำหรับปัญหาเดียวกัน แผนภูมินี้แสดงให้เห็นถึงโปรแกรมแก้ปัญหาที่ได้รับการเปรียบเทียบและโปรแกรมสมการกำลังสองแบบสุ่มที่สร้างขึ้นการกำหนดเวลาของ barplot รวมถึงค่ามัธยฐาน (เป็นจุด) และค่าน้อยที่สุดและสูงสุดที่ได้รับ (กำหนดแอมพลิจูดของแถบ) คุณจะเห็นว่า PROXQP อยู่ต่ำกว่าตัวแก้ปัญหาเสมอซึ่งหมายความว่ามันเร็วที่สุดสำหรับการทดสอบนี้
สำหรับปัญหาอย่างหนักจากชุดทดสอบ Maros Meszaros เมื่อขอความแม่นยำสูง (เช่น 1E-9) หนึ่งได้รับผลลัพธ์ด้านล่าง

แผนภูมิด้านบนรายงานโปรไฟล์ประสิทธิภาพของนักแก้ปัญหาที่แตกต่างกัน มันเป็นแบบคลาสสิกสำหรับนักแก้ปัญหาการเปรียบเทียบ โปรไฟล์ประสิทธิภาพสอดคล้องกับสัดส่วนของปัญหาที่แก้ไข (บนแกน y) เป็นฟังก์ชั่นของรันไทม์บางอย่าง (บนแกน x วัดในแง่ของหลายรันไทม์ของตัวแก้ปัญหาที่เร็วที่สุดสำหรับปัญหานั้น) ยิ่งสูงเท่าไหร่ก็ยิ่งดี คุณจะเห็นว่า PROXQP แก้ปัญหาได้เร็วที่สุดกว่า 60% (เช่นสำหรับ
หมายเหตุ: ผลลัพธ์ทั้งหมดเหล่านี้ได้รับด้วย Gen Intel (R) Core (TM) I7-11850H ที่ 11 CPU CPU
Qplayer ช่วยให้สามารถใช้ QP เป็นเลเยอร์ภายในสถาปัตยกรรมการเรียนรู้มาตรฐาน แม่นยำยิ่งขึ้น qplayer แตกต่างกันไป
ที่ไหน
Qplayer สามารถเรียนรู้สถาปัตยกรรมที่มีโครงสร้างมากขึ้น ตัวอย่างเช่น,
หากคุณใช้ qplayer สำหรับงานของคุณเราขอแนะนำให้คุณอ้างอิงกระดาษที่เกี่ยวข้อง
โปรดทำตามขั้นตอนการติดตั้งที่นี่