概要#
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の関数として指定します。