コンテンツにスキップ
Wikipedia

黄金分割探索

出典: フリー百科事典『ウィキペディア(Wikipedia)』

2024年5月22日 (水) 14:23; 240d:1a:3ce:c00:6066:2aea:3285:d5ec (会話) による版(日時は個人設定で未設定ならUTC)

240d:1a:3ce:c00:6066:2aea:3285:d5ec (会話)による2024年5月22日 (水) 14:23時点の版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
この記事は英語版の対応するページを翻訳することにより充実させることができます。(2024年5月)
翻訳前に重要な指示を読むには右にある[表示]をクリックしてください。
  • 英語版記事を日本語へ機械翻訳したバージョン(Google翻訳)。
  • 万が一翻訳の手がかりとして機械翻訳を用いた場合、翻訳者は必ず翻訳元原文を参照して機械翻訳の誤りを訂正し、正確な翻訳にしなければなりません。これが成されていない場合、記事は削除の方針G-3に基づき、削除される可能性があります。
  • 信頼性が低いまたは低品質な文章を翻訳しないでください。もし可能ならば、文章を他言語版記事に示された文献で正しいかどうかを確認してください。
  • 履歴継承を行うため、要約欄に翻訳元となった記事のページ名・版について記述する必要があります。記述方法については、Wikipedia:翻訳のガイドライン#要約欄への記入を参照ください。
  • 翻訳後、{{翻訳告知|en|Golden-section search|...}}ノートに追加することもできます。
  • Wikipedia:翻訳のガイドラインに、より詳細な翻訳の手順・指針についての説明があります。
黄金分割探索

黄金分割探索は、単峰関数極値(極大値または極小値)を求める方法の一つで、極値が存在するとわかっている範囲を逐次的に狭めていく方法である。この方法は、常に3点の関数値を保持し、それらの距離の比が黄金比であることからこの名で呼ばれている。フィボナッチ探索二分探索と密接な関係がある。フィボナッチ探索と黄金分割探索は(Kiefer 1953) によって考案された(Avriel & Wilde 1966 も参照)。

概略

[編集 ]

図は極小値を求めるための黄金分割探索の1ステップを表している。縦軸は f ( x ) {\displaystyle f(x)} {\displaystyle f(x)}の関数値、横軸はパラメータxを表す。3点 x 1 {\displaystyle x_{1}} {\displaystyle x_{1}} x 2 {\displaystyle x_{2}} {\displaystyle x_{2}} x 3 {\displaystyle x_{3}} {\displaystyle x_{3}} f ( x ) {\displaystyle f(x)} {\displaystyle f(x)}の値が評価されているものとする。 f 2 {\displaystyle f_{2}} {\displaystyle f_{2}} f 1 {\displaystyle f_{1}} {\displaystyle f_{1}} f 3 {\displaystyle f_{3}} {\displaystyle f_{3}}のどちらよりも小さいので、fが単峰関数であることから、極小は x 1 {\displaystyle x_{1}} {\displaystyle x_{1}}から x 3 {\displaystyle x_{3}} {\displaystyle x_{3}}の範囲のどこかに存在するということがわかる。

次のステップでは、新しいxで関数を評価し、関数形を探る。このx x 4 {\displaystyle x_{4}} {\displaystyle x_{4}}とする。 x 4 {\displaystyle x_{4}} {\displaystyle x_{4}}は、最も広い区間(この場合 x 2 {\displaystyle x_{2}} {\displaystyle x_{2}} x 3 {\displaystyle x_{3}} {\displaystyle x_{3}}の間)のどこかに決めると効率がよい。図から、もし新しい関数値が f 4 a {\displaystyle f_{4a}} {\displaystyle f_{4a}}であったとすると、極小は x 1 {\displaystyle x_{1}} {\displaystyle x_{1}}から x 4 {\displaystyle x_{4}} {\displaystyle x_{4}}の区間に存在することがわかる。この場合、次のステップでは3点は x 1 {\displaystyle x_{1}} {\displaystyle x_{1}} x 2 {\displaystyle x_{2}} {\displaystyle x_{2}} x 4 {\displaystyle x_{4}} {\displaystyle x_{4}}となる。一方、もし新しい関数値が f 4 b {\displaystyle f_{4b}} {\displaystyle f_{4b}}であった場合は、極小は x 2 {\displaystyle x_{2}} {\displaystyle x_{2}}から x 3 {\displaystyle x_{3}} {\displaystyle x_{3}}の区間に存在する。この場合、次の3点は x 2 {\displaystyle x_{2}} {\displaystyle x_{2}} x 4 {\displaystyle x_{4}} {\displaystyle x_{4}} x 3 {\displaystyle x_{3}} {\displaystyle x_{3}}となる。いずれの場合も、各ステップで極小が存在する範囲を狭められるということが保証されている。

評価点の選択

[編集 ]

図から、次のステップの区間は x 1 {\displaystyle x_{1}} {\displaystyle x_{1}}から x 4 {\displaystyle x_{4}} {\displaystyle x_{4}}(長さa+c)か x 2 {\displaystyle x_{2}} {\displaystyle x_{2}}から x 3 {\displaystyle x_{3}} {\displaystyle x_{3}}(長さb)のいずれかである。黄金分割探索では、この区間の長さが等しくなければならないという制約を置く。もし等しくなければ、運の悪い選択を繰り返すことで、収束速度が遅くなってしまう可能性がある。b = a+cを保証するためには、 x 4 {\displaystyle x_{4}} {\displaystyle x_{4}} x 4 = x 1 + ( x 3 x 2 ) {\displaystyle x_{4}=x_{1}+(x_{3}-x_{2})} {\displaystyle x_{4}=x_{1}+(x_{3}-x_{2})}のように選択すればよい。

しかしここで、 x 2 {\displaystyle x_{2}} {\displaystyle x_{2}} x 1 {\displaystyle x_{1}} {\displaystyle x_{1}} x 3 {\displaystyle x_{3}} {\displaystyle x_{3}}の間のどこに置けばよいのかという問題が残る。黄金分割探索では、3点の間隔の比が次の3点 x 1 , x 2 , x 4 {\displaystyle x_{1},x_{2},x_{4}} {\displaystyle x_{1},x_{2},x_{4}}あるいは x 2 , x 4 , x 3 {\displaystyle x_{2},x_{4},x_{3}} {\displaystyle x_{2},x_{4},x_{3}}の比に等しいようにとる。間隔の比を一定にすることで、 x 2 {\displaystyle x_{2}} {\displaystyle x_{2}} x 1 {\displaystyle x_{1}} {\displaystyle x_{1}} x 3 {\displaystyle x_{3}} {\displaystyle x_{3}}に非常に近いといった状況が起こるのを防ぎ、各ステップで間隔が一様に小さくなっていくことを保証できる。

数学的には、 f ( x 4 ) {\displaystyle f(x_{4})} {\displaystyle f(x_{4})}の評価の前後で間隔の比が変わらないということを保証するためには、 f ( x 4 ) {\displaystyle f(x_{4})} {\displaystyle f(x_{4})} f 4 a {\displaystyle f_{4a}} {\displaystyle f_{4a}}で次の3点が x 1 {\displaystyle x_{1}} {\displaystyle x_{1}} x 2 {\displaystyle x_{2}} {\displaystyle x_{2}} x 4 {\displaystyle x_{4}} {\displaystyle x_{4}}であった場合を考えると

c a = a b . {\displaystyle {\frac {c}{a}}={\frac {a}{b}}.} {\displaystyle {\frac {c}{a}}={\frac {a}{b}}.}

がいえる。一方、もし f ( x 4 ) {\displaystyle f(x_{4})} {\displaystyle f(x_{4})} f 4 b {\displaystyle f_{4b}} {\displaystyle f_{4b}}で次の3点が x 2 {\displaystyle x_{2}} {\displaystyle x_{2}} x 4 {\displaystyle x_{4}} {\displaystyle x_{4}} x 3 {\displaystyle x_{3}} {\displaystyle x_{3}}であった場合を考えると

c ( b c ) = a b . {\displaystyle {\frac {c}{(b-c)}}={\frac {a}{b}}.} {\displaystyle {\frac {c}{(b-c)}}={\frac {a}{b}}.}

がいえる。これらの式からcを除去すると、

( b a ) 2 = b a + 1 {\displaystyle \left({\frac {b}{a}}\right)^{2}={\frac {b}{a}}+1} {\displaystyle \left({\frac {b}{a}}\right)^{2}={\frac {b}{a}}+1}

すなわち

b a = φ {\displaystyle {\frac {b}{a}}=\varphi } {\displaystyle {\frac {b}{a}}=\varphi }

がいえる。ただし、φは黄金比

φ = 1 + 5 2 = 1.618033988 {\displaystyle \varphi ={\frac {1+{\sqrt {5}}}{2}}=1.618033988\ldots } {\displaystyle \varphi ={\frac {1+{\sqrt {5}}}{2}}=1.618033988\ldots }

である。

このように、間隔の比が黄金比になっていることがこのアルゴリズムの名称の由来である。

脚注

[編集 ]

参考文献

[編集 ]
非線形(無制約)
... 関数
勾配法
収束性
準ニュートン法
その他の求解法
... ヘッセ行列
非線形(制約付き)
一般
微分可能
凸最適化
凸縮小化
線型 および
二次
内点法
基底-交換
その他
組合せ最適化
系列範例
(Paradigms)
グラフ理論
最小全域木
最短経路問題
ネットワークフロー
(最大流問題)
メタヒューリスティクス

AltStyle によって変換されたページ (->オリジナル) /