| この記事は 英語版の対応するページを翻訳することにより充実させることができます。(2024年5月)翻訳前に重要な指示を読むには右にある[表示]をクリックしてください。 - 英語版記事を日本語へ機械翻訳したバージョン(Google翻訳)。
- 万が一翻訳の手がかりとして機械翻訳を用いた場合、翻訳者は必ず翻訳元原文を参照して機械翻訳の誤りを訂正し、正確な翻訳にしなければなりません。これが成されていない場合、記事は削除の方針G-3に基づき、削除される可能性があります。
- 信頼性が低いまたは低品質な文章を翻訳しないでください。もし可能ならば、文章を他言語版記事に示された文献で正しいかどうかを確認してください。
- 履歴継承を行うため、要約欄に翻訳元となった記事のページ名・版について記述する必要があります。記述方法については、Wikipedia:翻訳のガイドライン#要約欄への記入を参照ください。
- 翻訳後、
{{翻訳告知|en|Golden-section search|…}} をノートに追加することもできます。 - Wikipedia:翻訳のガイドラインに、より詳細な翻訳の手順・指針についての説明があります。
|
黄金分割探索 黄金分割探索は、単峰関数の極値(極大値または極小値)を求める方法の一つで、極値が存在するとわかっている範囲を逐次的に狭めていく方法である。この方法は、常に3点の関数値を保持し、それらの距離の比が黄金比であることからこの名で呼ばれている。フィボナッチ探索や二分探索と密接な関係がある。フィボナッチ探索と黄金分割探索は(Kiefer 1953) によって考案された(Avriel & Wilde 1966 も参照)。
図は極小値を求めるための黄金分割探索の1ステップを表している。縦軸は
の関数値、横軸はパラメータxを表す。3点
、
、
で
の値が評価されているものとする。
は
と
のどちらよりも小さいので、fが単峰関数であることから、極小は
から
の範囲のどこかに存在するということがわかる。
次のステップでは、新しいxで関数を評価し、関数形を探る。このxを
とする。
は、最も広い区間(この場合
と
の間)のどこかに決めると効率がよい。図から、もし新しい関数値が
であったとすると、極小は
から
の区間に存在することがわかる。この場合、次のステップでは3点は
、
、
となる。一方、もし新しい関数値が
であった場合は、極小は
から
の区間に存在する。この場合、次の3点は
、
、
となる。いずれの場合も、各ステップで極小が存在する範囲を狭められるということが保証されている。
評価点の選択[編集]
図から、次のステップの区間は
から
(長さa+c)か
から
(長さb)のいずれかである。黄金分割探索では、この区間の長さが等しくなければならないという制約を置く。もし等しくなければ、運の悪い選択を繰り返すことで、収束速度が遅くなってしまう可能性がある。b = a+cを保証するためには、
を
のように選択すればよい。
しかしここで、
を
と
の間のどこに置けばよいのかという問題が残る。黄金分割探索では、3点の間隔の比が次の3点
あるいは
の比に等しいようにとる。間隔の比を一定にすることで、
が
や
に非常に近いといった状況が起こるのを防ぎ、各ステップで間隔が一様に小さくなっていくことを保証できる。
数学的には、
の評価の前後で間隔の比が変わらないということを保証するためには、
が
で次の3点が
、
、
であった場合を考えると
![{\displaystyle {\frac {c}{a}}={\frac {a}{b}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/8aa1c1f87ad4003e8a54575de04e1f05634e3dfd)
がいえる。一方、もし
が
で次の3点が
、
、
であった場合を考えると
![{\displaystyle {\frac {c}{(b-c)}}={\frac {a}{b}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/02d156cdd0a195e041c0ded8a7b1234c4ccd2837)
がいえる。これらの式からcを除去すると、
![{\displaystyle \left({\frac {b}{a}}\right)^{2}={\frac {b}{a}}+1}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3f4e1b92ec581878bb0c8684a8384c6a6004b357)
すなわち
![{\displaystyle {\frac {b}{a}}=\varphi }](https://wikimedia.org/api/rest_v1/media/math/render/svg/206c071ae537b0ce658a881ccc37ea98524e9406)
がいえる。ただし、φは黄金比
![{\displaystyle \varphi ={\frac {1+{\sqrt {5}}}{2}}=1.618033988\ldots }](https://wikimedia.org/api/rest_v1/media/math/render/svg/be2a97fe2b4153b271368977e3b5ebd209b123d5)
である。
このように、間隔の比が黄金比になっていることがこのアルゴリズムの名称の由来である。
参考文献[編集]
- Kiefer, J. (1953), “Sequential minimax search for a maximum”, Proceedings of the American Mathematical Society 4 (3): 502–506, doi:10.2307/2032161, JSTOR 2032161, MR0055639, https://jstor.org/stable/2032161
- Avriel, Mordecai; Wilde, Douglass J. (1966), “Optimality proof for the symmetric Fibonacci search technique”, Fibonacci Quarterly 4: 265–269, MR0208812
- Press, WH; Teukolsky, SA; Vetterling, WT; Flannery, BP (2007), “Section 10.2. Golden Section Search in One Dimension”, Numerical Recipes: The Art of Scientific Computing (3rd ed.), New York: Cambridge University Press, ISBN 978-0-521-88068-8, http://apps.nrbook.com/empanel/index.html#pg=492