15 个不稳定版本 (5 个破坏性更新)
0.6.0 | 2024年4月22日 |
---|---|
0.5.1 | 2023年10月19日 |
0.4.0 | 2023年10月6日 |
0.3.3 | 2023年8月24日 |
0.1.2 | 2021年1月21日 |
#249 in 算法
每月下载量:277
在 4 个crate中使用 (直接使用2个)
1MB
17K SLoC
cobyla - 一个纯 Rust 实现
COBYLA 是一个用于最小化多变量函数的算法。该方法无需导数(只需要函数值)且考虑变量的约束。算法在以下文献中描述:
M.J.D. Powell, "通过线性插值模拟目标函数和约束函数的直接搜索优化方法",在《优化与数值分析数学及其应用》第275卷(Susana Gomez 和 Jean-Pierre Hennart 编著),Kluwer Academic Publishers,第51-67页(1994年)。
算法有两种形式
- 作为一个 argmin 求解器,Rust 代码是从 此处 的 C 代码生成的
- 作为一个函数
minimize
,Rust 代码是从 NLopt 项目(版本 2.7.1)的 C 代码生成的
在这两种情况下,首先使用 c2rust 进行了初始的转译,然后手动编辑了代码以使其工作。回调机制受到 NLopt 的 Rust 绑定(即 rust-nlopt)的启发
示例
cargo run --example paraboloid
相关项目
- rust-nlopt:NLopt 项目的 Rust 绑定
- argmin:纯 Rust 优化框架
- slsqp:SLSQP 算法的纯 Rust 实现
许可协议
该项目采用 MIT 许可协议发布。
依赖项
~4–11MB
~120K SLoC