CMA-ES/pycma

Python implementation of CMA-ES

何を解決するか

pycma は、困難な数値最適化問題を解決するために設計された、共分散行列適応進化戦略(CMA-ES)の Python 実装です。非凸、悪条件、多峰性、粗い、またはノイズのある問題に対して特に適しており、従来の勾配ベースの手法が導関数が不要なため失敗する可能性がある状況を想定しています。

動作方法

このライブラリは、探索空間を効果的に探索するために共分散行列を適応させるランダム化探索戦略である CMA-ES アルゴリズムを実装しています。以下の複雑な状況に対応可能です:

  • 境界制約:特定のオプションまたは専用ラッパー(BoundDomainTransform)で処理。
  • 混合整数探索:連続探索空間内での整数変数のサポート。
  • 制約:線形および非線形制約の両方を扱える能力。
  • ノイズ処理:ノイズのある目的関数を管理するための組み込みメカニズム。

対象ユーザー

連続的および混合整数の数値最適化に取り組む研究者やエンジニア向けです。特に、導関数が利用できない「ブラックボックス」関数や、非常に不規則な探索空間を扱う場合に適しています。

特徴

  • 導関数不要:勾配を必要としないため、粗いまたはノイズのある地形に適しています。
  • 柔軟な制約:境界、線形、非線形制約をサポート。
  • 混合整数サポート:連続変数と整数変数の両方を最適化可能。
  • CMA-ES のバリエーションpurecma および CompactGA などの関連ツールを含む。

関連

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