CMA-ES/pycma

Python implementation of CMA-ES

何を解決するか

pycma は、共分散行列適応進化戦略(CMA-ES)の Python 実装であり、ランダムで勾配を必要としない数値最適化アルゴリズムです。非凸、悪条件、多峰性、粗い、またはノイズのある最適化問題を、連続的および混合整数探索空間の両方で解決することを目的としています。

動作方法

このライブラリは、勾配情報を必要とせずに、与えられた目的関数の最適解を見つけるためのツールを提供します。複数の複雑な現実世界の制約を処理できます:

  • 境界制約:bounds オプションまたは専用の BoundDomainTransform ラッパーで管理。
  • 線形および非線形制約:fmin2 または fmin_con2 関数の特定の引数で処理。
  • ノイズ:noise_handler を使ってノイズ環境での安定性を維持。
  • 混合整数問題:integer_variables インデックスリストを通じて整数変数をサポート。

対象ユーザー

伝統的な勾配ベースの手法が失敗する、または目的関数が「ブラックボックス」であるような複雑な数学関数の最適化が必要な研究者やエンジニア向けです。

特徴

  • 勾配不要:勾配を必要としないため、粗いまたはノイズのある地形に適しています。
  • 混合整数対応:連続変数と整数変数を同時に最適化できます。
  • 制約処理:境界、線形、非線形制約の組み込みサポート。
  • 柔軟なインターフェース:高レベルの fmin インターフェースと、カスタム制御に適した低レベルの ask-and-tell インターフェースの両方を提供。
  • 並列化:OOOptimizer の n_jobs パラメータにより並列実行をサポート。

関連

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