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) 且支持向量化的 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-noly C++ 库 (C++ 14/17/20) 具有 Python 与 Julia 绑定 (bindings)。
相关
- 项目
- 项目
- 项目
- 项目
- 项目