45 个版本
0.10.0 | 2024年2月27日 |
---|---|
0.8.1 | 2023年2月20日 |
0.7.0 | 2022年8月28日 |
0.6.0-rc.2 | 2022年7月31日 |
0.0.10 | 2018年2月12日 |
#14 in 数学
28,824 每月下载量
在 45 个Crate 中使用 (29 个直接使用)
1MB
22K SLoC
纯Rust中的数学优化
网站 | 书籍 | 文档(最新版本) | 文档(主分支) | 示例(最新版本) | 示例(主分支)
argmin 是一个完全用 Rust 编写的数值优化库。
argmin 的目标是提供一系列优化算法,并具有一致的接口。它设计上类型无关,这意味着可以使用任何类型和/或数学后端,例如 nalgebra
或 ndarray
,甚至是你自己的。
观察器允许跟踪迭代的进度,无论是使用提供的其中一个进行屏幕或磁盘记录,还是通过实现你自己的。
可选的检查点机制有助于减轻不稳定计算环境中崩溃的负面影响。
由于 Rust 强大的泛型和特质的强大功能,大多数功能都可以通过你自己的定制实现进行交换。
argmin 是为了简化优化算法的实现而设计的,因此也可以用作开发新算法的工具箱。可以专注于算法本身,而终止处理、参数向量、种群、梯度、雅可比和赫斯矩阵等处理则由库负责。
算法
- 线搜索
- 回溯线搜索
- More-Thuente 线搜索
- Hager-Zhang 线搜索
- 信任区域法
- 柯西点法
- Dogleg 方法
- Steinhaug 方法
- 最速下降法
- 共轭梯度法
- 非线性共轭梯度法
- 牛顿法
- 牛顿法
- 牛顿-CG
- 拟牛顿法
- BFGS
- L-BFGS
- DFP
- SR1
- SR1-TrustRegion
- 高斯-牛顿法
- 带线搜索的高斯-牛顿法
- 黄金分割法
- Landweber 迭代
- Brent 的方法
- Nelder-Mead 方法
- 模拟退火
- 粒子群优化
与 argmin 兼容的外部求解器
实现 Solver
特质的求解器与 argmin 的 Executor
兼容,并可以利用检查点和观察器等特性。
许可证
许可协议如下
- Apache许可证,版本2.0,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义的,您有意提交以包含在工作中的任何贡献,将根据上述方式双授权,无任何额外条款或条件。
依赖
~1–11MB
~106K SLoC