CMA-ES
多くの進化戦略と比較すると利用者が手作業で指定しないと正常に動作しないパラメータが少ない。
4次元以下の場合、Nelder-Mead法の方が速い場合もあるが、Nelder-Mead法は最小値ではなく極小値に収束することが多い。
ノイズがなく、導関数も既知の場合、準ニュートン法のBFGS法やNEWUOAの方が10倍速い。
目的関数の定義域の各次元のスケーリングは0〜10などに線形変換や指数関数などを使って揃える必要がある。また、ライブラリには定義域が有界の時にその範囲内に収めるための関数も提供されている。
C++版の libcmaes では導関数を利用して高速化を図ることもできる。
n次元の時、反復1回分の計算量は O ( n 2 ) {\displaystyle O(n^{2})} だが、変数間の依存関係を調べることを諦め、共分散行列の更新を対角要素だけに限定することで計算量を O ( n ) {\displaystyle O(n)} に減らすことができる。C言語版は diagonalCovarianceMatrix オプションで指定し、libcmaes はアルゴリズムを sepacmaes に指定することでその動作をする。