Module

for

Module for the Fibonacci Search

Bracketing Search Methods

An approach for finding the minimum of    in a given interval is to evaluate the function many times and search for a local minimum.  To reduce the number of function evaluations it is important to have a good strategy for determining where    is to be evaluated.  Two efficient bracketing methods are the golden ratio and Fibonacci searches.  To use either bracketing method for finding the minimum of  ,  a special condition must be met to ensure that there is a proper minimum in the given interval.

Definition (Unimodal Function)  The function    is unimodal on  ,  if there exists a unique number   such that

is decreasing on  ,
and

is increasing on  .

Fibonacci Search

In the golden ratio search two function evaluations are made at the first iteration and then only one function evaluation is made for each subsequent iteration.  The value of
remains constant on each subinterval and the search is terminated at the subinterval, provided that    or  where are the predefined tolerances.  The  Fibonacci search method differs from the golden ratio method in that the value of    is not constant on each subinterval.  Additionally, the number of subintervals (iterations) is predetermined and based on the specified tolerances.

The Fibonacci search is based on the sequence of Fibonacci numbers which are defined by the equations

for

Thus the Fibonacci numbers are

Exploration for Fibonacci Numbers

Assume we are given a function    that is unimodal on the interval  .  As in the golden ratio search a value is selected so that both of the interior points   will be used in the next subinterval and there will be only one new function evaluation.

If  ,  then the minimum must occur in the subinterval , and we replace   and   and continue the search in the new subinterval .   If  , then the minimum must occur in the subinterval , and we replace    and    and continue the search in the new subinterval .  These choices are shown in Figure 1 below.

If
, then squeeze from the right and               If , then squeeze from the left and
use the new interval  .                           use the new interval  .

Figure 1.  The decision process for the Fibonacci ratio search.

If    and only one new function evaluation is to be made in the interval ,  then we select      for the subinterval  .   We already have relabeled

and since
we will relabel it by

then we will have

(1)
.

The ratio is chosen so that    and   and subtraction produces

(2)

And the ratio is chosen so that

(3)        .

Now substitute (2) and (3) into (1) and get

(4)        .

Also the length of the interval has been shrunk by the factor .  Thus   and using this in (4) produces

(5)        .

Cancel the common factor   in (5) and we now have

(6)        .

Solving (6) for produces

(7)        .

Now we introduce the Fibonacci numbers    for the subscript  .  In equation (7), substitute   and get the following

Reasoning inductively, it follows that the Fibonacci search can be begun with

and

for  .

Note that the last step will be

,

thus no new points can be added at this stage (i.e. the algorithm terminates).  Therefore, the set of possible ratios is

.

There will be exactly  n-2  steps in a Fibonacci search!

The    subinterval is obtained by reducing the length of the    subinterval by a factor of  .  After    steps the length of the last subinterval will be

.

If the abscissa of the minimum is to be found with a tolerance of,  then we want .  It is necessary to use  n  iterations,  where  n  is the smallest integer such that

(8)        .

Note.  Solving the above inequality requires either a trial and error look at the sequence of Fibonacci numbers, or the deeper fact that the Fibonacci numbers can be generated by the formula

.

Knowing this fact may be useful, but we still need to compute all the Fibonacci numbers    in order to calculate the ratios  .

The interior points    and    of the subinterval    are found, as needed, using the formulas

(9)
,

(10)
.

Note.  The value of  n  used in formulas (9) and (10) is found using inequality (8).
Proof  Fibonacci Search  Fibonacci Search

Algorithm (Fibonacci Search for a Minimum).  To numerically approximate the minimum of    on the interval    by using a Fibonacci search.  Proceed with the method only if    is a unimodal function on the interval  .  Terminate the process after  n iterations have been completed, where  .

Computer Programs  Fibonacci Search  Fibonacci Search

Mathematica Subroutine (Fibonacci Search for a Minimum).

``````

``````

Each iteration requires the determination of two new interior points, one from the previous iteration and the second from formula (9) or (10).   When  ,  the two interior points will be concurrent in the middle of the interval.  In following example, to distinguish the last two interior points a small distinguishability constant, , is introduced. Thus when    is used in formula (9) or (10), the coefficients of    are    or  ,  respectively.

Example 1.  Find the minimum of the unimodal function    on the interval    using the Fibonacci search method.  Use the tolerance of    and the distinguishability constant
Solution 1.

Both the Fibonacci and golden ratio search methods can be applied in cases where is not differentiable.  It should be noted that when  n  is small the Fibonacci method
is more efficient than the golden ratio method.  However, for
n  large the two methods are almost identical.

Various Scenarios and Animations for the Fibonacci Search Method.

``````
``````

Example 2. Find the minimum of    on the interval  .
Solution 2.

Animations (Fibonacci Search  Fibonacci Search).  Internet hyperlinks to animations.

Fibonacci Search  Fibonacci Search  Internet hyperlinks to web sites and a bibliography of articles.

(c) John H. Mathews 2004