Simple-Robotics/proxsuite
The Advanced Proximal Optimization Toolbox
What it solves
ProxSuite 提供了一組用於優化問題的數值穩健且高效的數值求解器集合,特別是線性規劃 (LPs) 與二次規劃 (QPs)。它解決了對可擴展優化器的需求,這些優化器可以處理稠密、稀疏或無矩陣 (matrix-free) 問題,這對於機器人技術等精準度與速度至關重要的高效能應用而言是關鍵的。
How it works
該函式庫是基於重新檢視過的原始-對偶近端算法 (primal-dual proximal algorithms) 所建構。它被實作為一個對快取友善 (cache-friendly) 且支援向量化 (vectorization) 的 C++ 模板函式庫。為了確保通用性,它提供了一個統一的 API,並針對不同的矩陣分解與進階的熱啟動 (warm-starting) 選項提供專門的後端。它還包含一個名為 QPLayer 的特定組件,允許將二次規劃 (QP) 作為機器學習架構中的可微分層 (differentiable layer) 使用(與 PyTorch 介接),從而實現對定義 QP 本身的參數進行優化。
Who it’s for
它主要為機器人技術研究人員與工程師設計,但也適用於任何需要高效能數值優化的領域。對於想要透過 QPLayer 將結構化優化約束整合到學習流程中的機器學習從業者而言,也很有用。
Highlights
- High Performance: C++ 模板函式庫,具備快取友善設計與向量化支援。
- Versatile Solvers: 處理稠密、稀疏與無矩陣 (matrix-free) 問題,以及非凸 (nonconvex) QPs 與並行處理的 QP 批次。
- Differentiable Optimization: 包含 QPLayer,用於將 QPs 與 LPs 整合為 PyTorch 學習架構中的層。
- Broad Compatibility: Header-only C++ 函式庫 (C++ 14/17/20),並提供 Python 與 Julia 綁定 (bindings)。
相關
- 專案
- 專案
- 專案
- 專案
- 專案