黄金分割探索

黄金分割探索

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

概略

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

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

評価点の選択

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

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

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

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

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

c ( b c ) = 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}

すなわち

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

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

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

である。

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

脚注

[脚注の使い方]

参考文献

  • 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 
非線形(無制約)
… 関数 
勾配法
収束性
準ニュートン法
その他の求解法
ヘッセ行列
  • 最適化におけるニュートン法(英語版)
The graph of a strictly concave quadratic function is shown in blue, with its unique maximum shown as a red dot. Below the graph appears the contours of the function: The level sets are nested ellipses.
Optimization computes maxima and minima.
非線形(制約付き)
一般
微分可能
凸最適化
凸縮小化
  • 切除平面法(英語版、デンマーク語版、ドイツ語版、スペイン語版)
  • 簡約勾配法
  • 劣勾配法(英語版)
線型 および
二次
内点法
ベイズ-交換
  • 単体法
  • 改訂シンプレックス法(英語版)
  • 十字法(英語版)
  • レムケの主ピボット操作法(英語版)
組合せ最適化
系列範例
(Paradigms)
グラフ理論
最小全域木
最大フロー問題
メタヒューリスティクス
  • カテゴリ(最適化 • アルゴリズム) • ソフトウェア(英語版)