SciML/BlackBoxOptim.jl

Black-box optimization for Julia

何を解決するか

BlackBoxOptim.jl は、関数の微分(勾配)を知らなくても、関数のグローバル最小値または最大値を見つける方法を提供します。これは、関数が複雑すぎたり、微分不可能だったり、未知だったりするため、従来の勾配ベースの最適化が不可能な「ブラックボックス」問題において不可欠です。

動作方法

このパッケージは、探索空間を調査して最適解を見つけるためのさまざまな(メタ)ヒューリスティックおよび確率的アルゴリズムを実装しています。単一目的最適化(最良の値を1つ見つける)と多目的最適化(パレートフロンティアと呼ばれる最適なトレードオフの集合を求める)の両方をサポートしています。

主なアルゴリズムファミリーは以下の通りです:

  • 微分進化(DE): 高次元にスケーラブルな堅牢な最適化手法。
  • 自然進化戦略(NES): 確率的探索手法。
  • 直接探索: 座標探索や確率的勾配降下を含む。
  • BorgMOEA: 多目的問題に特化したアルゴリズム。

対象ユーザー

Julia を使用して複雑な微分不可能な関数や、従来の決定論的アルゴリズムが失敗する関数を最適化する必要がある研究者や開発者向けに設計されています。

特徴

  • 勾配不要: 評価可能な任意の関数で動作します。
  • 多目的対応: BorgMOEA アルゴリズムを使用して、複数の競合する目標を同時に最適化できます。
  • 並列評価: 計算コストの高い関数の最適化を高速化するために、マルチスレッドおよび並列実行をサポートしています。
  • 柔軟な設定: 探索範囲、初期候補点、時間または評価予算をユーザーが指定できます。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト