14版本 (8重大)
0.9.0 | 2024年6月1日 |
---|---|
0.7.1 | 2024年3月1日 |
0.6.0 | 2023年9月20日 |
0.5.1 | 2023年6月2日 |
0.2.0 | 2022年7月31日 |
#71 in 数学
6,967 个月下载
用于 4 个crates (3直接)
685KB
17K SLoC
用于Rust和Python的内部点凸优化
Clarabel.rs 是一个使用新颖的同构嵌入的凸优化问题内部点数值求解器的Rust实现。Clarabel.rs 解决以下问题
$$ \begin{array}{r} \text{minimize} & \frac{1}{2}x^T P x + q^T x\\[2ex] \text{subject to} & Ax + s = b \\[1ex] & s \in \mathcal{K} \end{array} $$
其中决策变量 $x \in \mathbb{R}^n$, $s \in \mathbb{R}^m$,数据矩阵 $P=P^\top \succeq 0$, $q \in \mathbb{R}^n$, $A \in \mathbb{R}^{m \times n}$, 和 $b \in \mathbb{R}^m$。凸集 $\mathcal{K}$ 是凸锥的合成。
更多信息请参阅 Clarabel 文档 (稳定版 | 开发版)。
Clarabel 还有一个 Julia 实现。请参阅 这里。
特性
- 多才多艺:Clarabel.rs 解决线性规划 (LPs)、二次规划 (QPs)、二次锥规划 (SOCPs) 和半定规划 (SDPs)。它还解决了具有指数、幂锥和广义幂锥约束的问题。
- 二次目标:与基于标准同构自对偶嵌入 (HSDE) 的内部点求解器不同,Clarabel.rs 在不要求目标函数的图象重新表述的情况下处理二次目标。因此,它比其他基于 HSDE 的求解器对于具有二次目标函数的问题要快得多。
- 不可行性检测:使用同构嵌入技术检测不可行问题。
- 开源:我们的代码可在 GitHub 上找到,并按 Apache 2.0 许可证分发。
安装
可以通过向项目的 Cargo.toml
文件中添加以下内容将 Clarabel 导入基于 Cargo 的 Rust 项目。
[dependencies]
clarabel = "0"
要从源安装,请参阅 Rust 安装文档。
要使用求解器的Python接口
pip install clarabel
从源码安装Python接口,请参阅Python安装文档。
引用
@misc{Clarabel_2024,
title={Clarabel: An interior-point solver for conic programs with quadratic objectives},
author={Paul J. Goulart and Yuwen Chen},
year={2024},
eprint={2405.12762},
archivePrefix={arXiv},
primaryClass={math.OC}
}
许可证 🔍
本项目采用Apache License 2.0授权 - 详细内容请参阅LICENSE.md文件。
依赖项
~3–27MB
~334K SLoC