SciML/BlackBoxOptim.jl

Black-box optimization for Julia

解决的问题

BlackBoxOptim.jl 提供了一种在无需了解函数导数(梯度)的情况下,找到函数全局最小值或最大值的方法。这对于函数过于复杂、不可微或未知的“黑箱”问题至关重要,传统基于梯度的优化方法无法适用。

工作原理

该包实现了多种(元)启发式和随机算法,通过探索搜索空间来寻找最优解。它同时支持单目标优化(寻找一个最优值)和多目标优化(寻找一组最优权衡,即帕累托前沿)。

包含的关键算法族包括:

  • 差分进化(DE): 可扩展到高维空间的稳健优化器。
  • 自然进化策略(NES): 随机搜索方法。
  • 直接搜索: 包括坐标搜索和概率下降法。
  • BorgMOEA: 专为多目标问题设计的算法。

适用人群

专为使用 Julia 的研究人员和开发者设计,适用于需要优化复杂、不可微函数,或传统确定性算法失效的情况。

主要亮点

  • 无需梯度: 可在任何可评估的函数上运行。
  • 支持多目标: 可使用 BorgMOEA 算法同时优化多个相互竞争的目标。
  • 支持并行评估: 支持多线程和并行执行,加速计算成本高的函数的优化。
  • 灵活配置: 允许用户指定搜索范围、初始候选点以及时间或评估预算。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目