SciML/BlackBoxOptim.jl

Black-box optimization for Julia

解決的問題

BlackBoxOptim.jl 提供了一種在不需要了解函數的微分(梯度)的情況下,找到函數全域最小值或最大值的方法。這對於函數過於複雜、不可微或未知的「黑箱」問題至關重要,傳統基於梯度的優化方法無法適用。

工作原理

該套件實作了多種(元)啟發式與隨機演算法,透過探索搜尋空間來尋找最佳解。它同時支援單目標優化(尋找一個最佳值)與多目標優化(尋找一組最佳權衡,即帕累托前緣)。

包含的關鍵演算法族包括:

  • 差分進化(DE): 可擴展至高維空間的穩健優化器。
  • 自然進化策略(NES): 隨機搜尋方法。
  • 直接搜尋: 包含座標搜尋與機率下降法。
  • BorgMOEA: 專為多目標問題設計的演算法。

適用對象

專為使用 Julia 的研究人員與開發者設計,適用於需要優化複雜、不可微函數,或傳統決定性演算法失效的情況。

主要亮點

  • 無需梯度: 可在任何可評估的函數上運行。
  • 支援多目標: 可使用 BorgMOEA 演算法同時優化多個相互競爭的目標。
  • 支援平行評估: 支援多執行緒與平行執行,加速計算成本高的函數的優化。
  • 靈活配置: 允許使用者指定搜尋範圍、初始候選點以及時間或評估預算。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案