概要#

CMA-ESとは#

CMA-ES(Covariance Matrix Adaptation Evolution Strategy)は、 連続変数を対象としたブラックボックス最適化アルゴリズムです。

目的関数の勾配を必要としないため、以下のような問題に適用できます。

  • 目的関数の微分が困難な問題

  • 数値シミュレーションを含む問題

  • 複雑な非線形性を持つ問題

  • 多峰性を持つ問題

  • 目的関数がブラックボックスとして与えられる問題

本モジュールでは、C++で実装されたCMA-ES計算ルーチンを Pythonから利用できるインターフェースを提供します。

主な特徴#

本モジュールでは、以下の機能を利用できます。

  • CMA-ESによるブラックボックス最適化

  • 変数ごとの上下限の指定

  • 最小化・最大化の切り替え

  • 初期解の指定

  • 集団サイズの指定

  • 重み付き親個体数の指定

  • 最大反復回数の指定

  • 最大計算時間の指定

  • 乱数シードの指定

  • 最適化過程のログ出力間隔の指定

  • 配列形式および辞書形式による変数指定

最適化問題#

本モジュールでは、次の形式の最適化問題を扱います。

\[\operatorname{minimize}_{\boldsymbol{x}} f(\boldsymbol{x})\]

または、

\[\operatorname{maximize}_{\boldsymbol{x}} f(\boldsymbol{x})\]

ここで、\(f\) はユーザーが定義する目的関数です。

目的関数はPythonの関数として指定します。