SciML/BlackBoxOptim.jl
Black-box optimization for Julia
解决的问题
BlackBoxOptim.jl 提供了一种在无需了解函数导数(梯度)的情况下,找到函数全局最小值或最大值的方法。这对于函数过于复杂、不可微或未知的“黑箱”问题至关重要,传统基于梯度的优化方法无法适用。
工作原理
该包实现了多种(元)启发式和随机算法,通过探索搜索空间来寻找最优解。它同时支持单目标优化(寻找一个最优值)和多目标优化(寻找一组最优权衡,即帕累托前沿)。
包含的关键算法族包括:
- 差分进化(DE): 可扩展到高维空间的稳健优化器。
- 自然进化策略(NES): 随机搜索方法。
- 直接搜索: 包括坐标搜索和概率下降法。
- BorgMOEA: 专为多目标问题设计的算法。
适用人群
专为使用 Julia 的研究人员和开发者设计,适用于需要优化复杂、不可微函数,或传统确定性算法失效的情况。
主要亮点
- 无需梯度: 可在任何可评估的函数上运行。
- 支持多目标: 可使用 BorgMOEA 算法同时优化多个相互竞争的目标。
- 支持并行评估: 支持多线程和并行执行,加速计算成本高的函数的优化。
- 灵活配置: 允许用户指定搜索范围、初始候选点以及时间或评估预算。
相关
- 项目
SciML/Optimization.jlA unified Julia interface that brings together numerous local and global optimization packages into a single API, featuring integration with automatic differentiation.
- 项目
- 项目
- 项目
astroautomata/SymbolicRegression.jlA Julia library for symbolic regression that searches for human-readable mathematical expressions to fit datasets, optimizing the trade-off between accuracy and complexity.
- 项目
SciML/Surrogates.jlA Julia package for creating surrogate models that approximate expensive simulations, enabling efficient optimization of computationally costly functions.