導関数なしのオプティマイザには、主に2種類のテスト関数があるようです。
- Rosenbrock関数 ff。のようなワンライナー 、開始点付き
- 補間器を使用した実データ点のセット
10d Rosenbrockを実際の10d問題と比較することは可能ですか?
さまざまな方法で比較することができます。局所的な最小値の構造を記述する
か、Rosenbrockおよびいくつかの実際の問題に対してオプティマイザABCを実行します。
しかし、これらは両方とも難しいようです。
(たぶん、理論家と実験者はまったく異なる2つの文化なので、キメラを求めていますか?)
こちらもご覧ください:
- scicomp.SEの質問:アルゴリズム/ルーチンをテストするための優れたデータセット/テスト問題はどこで入手できますか?
- フッカー、「ヒューリスティックのテスト:すべてが間違っています」は痛烈です:「競争に重点を置いていることは、どのアルゴリズムが優れているが理由ではないことを教えてくれます。」
(2014年9月に追加された):
以下のプロットは、10個のランダムな開始点から8Dに14のテスト機能に3つのDFOアルゴリズムを比較:BOBYQA PRAXIS SBPLXをからNLOpt
14 N次元のテスト機能、パイソンを下gist.github このからのMatlab A.によってHedar ×各機能のバウンディングボックス内の10一様乱数startpoints。
たとえば、Ackleyでは、最上行にSBPLXが最適であり、PRAXISがひどいことを示しています。Schwefelでは、右下のパネルにSBPLXが5番目のランダムな開始点で最小値を見つけていることが示されています。
全体として、BOBYQAは1で最高であり、PRAXISは5で、SBPLX(〜Nelder-Mead with restarts)は13のテスト機能のうち7つで、Powersumは最高です。YMMV!特に、ジョンソン氏は、「グローバル最適化では、関数値(ftol)またはパラメーター許容値(xtol)を使用しないことをお勧めします。」
結論:1頭の馬や1つのテスト機能にすべてのお金をかけないでください。