- Golden section search
The golden section search is a technique for finding the
extremum (minimum or maximum) of aunimodal function by successively narrowing the range of values inside which the extremum is known to exist. The technique derives its name from the fact that the algorithm maintains the function values for triples of points whose distances form agolden ratio . The algorithm is closely related to a Fibonacci search (also described below) and to abinary search . Golden section search was introduced by Kiefer (1953), and Fibonacci search by Avriel and Wilde (1966).The diagram on the right illustrates a single step in the technique for finding a minimum. The functional values of are on the vertical axis, and the horizontal axis is the "x" parameter. The value of has already been evaluated at the three points: , , and . Since is smaller than either or , it is clear that a minimum lies inside the interval from to .
The next step in the minimization process is to "probe" the function by evaluating it at a new value of "x", namely . It is most efficient to choose somewhere inside the largest interval, i.e. between and . From the diagram, it is clear that if the function yields then a minimum lies between and and the new triplet of points will be , , and . However if the function yields the value then a minimum lies between and , and the new triplet of points will be , , and . Thus, in either case, we can construct a new narrower search interval that is guaranteed to contain the function's minimum.
Probe point selection
From the diagram above, it is seen that the new search interval will be either between and with a length of "a"+"c" , or between and with a length of "b" . The golden section search requires that these intervals be equal. If they are not, a run of "bad luck" could lead to the wider interval being used many times, thus slowing down the rate of convergence. To ensure that "b" = "a"+"c", the algorithm should choose .
However there still remains the question of where should be placed in relation to and . The golden section search chooses the spacing between these points in such a way that these points have the same proportion of spacing as the subsequent triple or . By maintaining the same proportion of spacing throughout the algorithm, we avoid a situation in which is very close to or , and guarantee that the interval width shrinks by the same constant proportion in each step.
Mathematically, to ensure that the spacing after evaluating is proportional to the spacing prior to that evaluation, if is and our new triplet of points is , , and then we want:
:
However, if is and our new triplet of points is , , and then we want:
:
Eliminating "c" from these two simultaneous equations yields:
:
or
:
where φ is the
golden ratio ::
The appearance of the golden ratio in the proportional spacing of the evaluation points is how this search
algorithm gets its name.Termination condition
In addition to a routine for reducing the size of the bracketing of the solution, a complete algorithm must have a termination condition. The one provided in the book "Numerical Recipes in C" is based on testing the gaps among , , and , terminating when within the relative accuracy bounds:
:
where is a tolerance parameter of the algorithm and "|x|" is the
absolute value of "x". The check is relative to the size of and because the fraction (non-exponent) part of afloating point number is of fixed precision.Fibonacci search
A very similar algorithm can also be used to find the
extremum (minimum or maximum) of asequence of values that has a single local minimum or local maximum. In order to approximate the probe positions of golden section search while probing only integer sequence indices, the variant of the algorithm for this case typically maintains a bracketing of the solution in which the length of the bracketed interval is aFibonacci number . For this reason, the sequence variant of golden section search is often called "Fibonacci search".;;;See also
*
Fibonacci search technique References
*citation
last1 = Avriel
first1 = Mordecai
last2 = Wilde
first2 = Douglass J.
title = Optimality proof for the symmetric Fibonacci search technique
journal =Fibonacci Quarterly
volume = 4
year = 1966
pages = 265–269
id = MathSciNet | id = 0208812*citation
last = Kiefer
first = J.
authorlink = Jack Kiefer (mathematician)
title = Sequential minimax search for a maximum
journal =Proceedings of the American Mathematical Society
volume = 4
year = 1953
pages = 502–506
id = MathSciNet | id = 0055639, doi|10.2307/2032161*citation
last1 = Press
first1 = W. H.
last2 = Teukolsky
first2 = S. A.
last3 = Vetterling
first3 = W. T.
last4 = Flannery
first4 = B. P.
title = Numerical Recipes in C, The Art of Scientific Computing
edition = second
publisher = Cambridge University Press, Cambridge
year = 1999
id = ISBN 0-521-43108-5
Wikimedia Foundation. 2010.