Numerical Recipesの元のバージョンにおけるこの「下り坂シンプレックスアルゴリズム」の説明は、特に明快で役立つものです。したがって、その関連部分を引用します。背景は次のとおりです。
1次元の最小化では、最小値をブラケットすることが可能でした...。ああ!多次元空間には類似の手順はありません。...私たちにできる最善のことは、アルゴリズムに最初の推測を与えることです。つまり、最初に試すポイントとしての独立変数のベクトルです。次に、アルゴリズムは、(少なくとも局所的な)最小値に遭遇するまで、次元の地形の想像を絶する複雑さを通り抜けて、独自の方法で下り坂を作ると想定されています。NN
ダウンヒルシンプレックス法は、単一の点だけでなく、点から開始して、初期シンプレックスを定義する必要があります。[これらの点を最初の開始点にすることができます]ここで、は単位のベクトルであり、はあなたの推測である定数です問題の特徴的な長さスケールの。...N+1P0
Pi=P0+λei(10.4.1)
eiNλ
ほとんどのステップでは、シンプレックスの反対側の面を通過して、関数が最大になるシンプレックスのポイント(「最高ポイント」)を低いポイントに移動します。...
次に、当面の問題について、アルゴリズムを終了します。 アカウントの一般性に注意してください。作成者は、多次元オプティマイザーを終了するための直感的で有用なアドバイスを提供し、それがこの特定のアルゴリズムにどのように適用されるかを具体的に示します。最初の段落は私たちの前の質問に答えます:
終了基準は微妙な場合があります...。通常、多次元アルゴリズムの1つの「サイクル」または「ステップ」を識別できます。次に、そのステップで移動したベクトル距離の大きさが、ある許容値よりもわずかに小さいときに終了することができTOL
ます。または、終了ステップでの関数値の減少が、許容値よりもわずかに小さいことを要求することもできますFTOL
。...
上記の基準のいずれかが、何らかの理由でどこにも到達できなかった単一の異常なステップによってだまされる可能性があることに注意してください。したがって、最小値を見つけたと主張した時点で、多次元最小化ルーチンを再起動することはしばしば良い考えです。この再起動では、補助入力量を再初期化する必要があります。滑降シンプレックス法では、例えば、次の再初期化すべきであるのの式で再びシンプレックスの頂点をと、記載最小の頂点の1つです。NN+1(10.4.1)P0
再起動は非常に高価になることはありません。結局のところ、アルゴリズムは再起動ポイントに一度収束したので、すでにそこからアルゴリズムを開始しています。
[290-292ページ。]
コードは、このテキストに付随する数値レシピは「分数小さい」の意味を明確に:値の差としきい値よりも(関数の引数または値のいずれかの値)「分別小さい」である場合xyT>0
|x|−|y|f(x,y)=2|x|−|y||x|+|y|<T(1)
。f(x,y)=(|x|+|y|)/2
の左側は、「相対絶対差」として知られています。一部のフィールドでは、「相対パーセント誤差」と呼ばれるパーセントで表されます。その他のオプションと用語については、相対的な変化と差異に関するWikipediaの記事を参照してください。(1)
参照
ウィリアムH.プレス他 、数値レシピ:科学的コンピューティングの芸術。 ケンブリッジ大学出版局(1986)。最新版については、http://numerical.recipes/にアクセスしてください。