METODO DE BUSQUEDA DE FIBONACCI

Fibonacci fué el más grande de los matemáticos Europeos de la edad media, su nombre fué Leonardo Fibonacci de Pisa, ya que nació en Pisa, alrededor de 1175 después de Cristo. A él se llamaba Fibonacci, abreviatura de Bonacci o quizás "hijo de la buena fortuna".

Fué el primero en introducir el sistema numérico Hindú-Arábico en Europa (el sistema basado en los diez dígitos, con su punto decimal y un símbolo para el cero). Escribió un libro sobre como hacer aritmética en el sistema decimal, titulado “Liber Abacci” ( “Libro del Abaco” o “libro de Cálculo”), terminado en 1202. Falleció en 1240. Hoy día, existe una estatua suya en Pisa (gracias a Nicholas Farhi de la Universidad de Winchester). Entre otros de sus trabajos se encuentra la "Secuencia de Conejo de Fibonacci."

Fué el matemático Francés Edouard Lucas (1842-1891) que dió el nombre de números de Fibonacci a la serie de números mencionados por Fibonacci en su libro.

El método de búsqueda de Fibonacci es utilizado para obtener un punto óptimo en funciones no diferenciables sin utilizar derivadas es decir, que no sean derivables en el intervalo (a,b). Este método es muy eficiente para aproximar, bajo cierto margen de error, un punto máximo o mínimo en funciones unimodales (la función tiene un solo óptimo local o relativo) de una sola variable. Con este método se conoce ya el rango inicial de búsqueda y en cada evaluación el método tiende a acorralar el punto óptimo.

El intervalo inicial de incertidumbre es y se define como el siguiente incremento:

donde n, es el número de iteraciones que se desea realizar (en función a la tolerancia de error que se desea) y es el número de Fibonacci para n evaluaciones y se define así: La secuencia de números de Fibonacci es por lo tanto: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ..... Se tiene:


Se supone que se quiere minimizar a la función unimodal F(x). Entonces:

si ,rechazamos el intervalo y si , rechazamos el intervalo Gráficamente se tiene que, si originalmente la función es como la que se ilustra en la Figura 1, en la segunda iteración se rechaza el intervalo . En forma gráfica tenemos:

Figura 1

A continuación (ver figura 2), se calcula el siguiente incremento D2 :

Figura 2

donde,

y se define X3 como

En caso de que se hubiera rechazado el intervalo , entonces . Se tiene en la segunda evaluación lo siguiente: si , rechazamos el intervalo o si , rechazamos el intervalo

En este caso se rechaza, queriendo decir que el óptimo se encuentra en el intervalo . Así se genera un nuevo incremento. El proceso se repite hasta llegar al número n de iteraciones prefijadas. Para un proceso de maximización se sigue un mecanismo análogo al ya mencionado. La efectividad en este caso, 1/Fn , mide la tolerancia del error en el entorno o vencidad del punto óptimo. Así, por ejemplo, si se desea un error menor al 1%, se necesitan 11 evaluaciones de este método, puesto que < 0.01 = 1%.

El método de Fibonacci adolece de dos graves defectos:

  1. únicamente sirve para para funciones unimodales.
  2. únicamente sirve para para funciones de una sola variable

Si la función de una sola variable es bimodal (que la función tiene dos óptimos locales o relativos) o multimodal (quiere decir que la función tiene varios óptimos locales o relativos), este método sólo localizará un óptimo local o relativo. Su gran ventaja es que se le utiliza como una subrutina de búsqueda en los métodos de optimización de problemas no restringidos en funciones de varias variables. A continuación se proporciona una tabla que nos indica la efectividad del Método de Búsqueda de Fiobonacci, en función al número de iteraciones:

nF(n)Efectividad=1/F(n)
1 11.0000000
2 20.5000000
3 30.3333333
4 50.2000000
5 80.1250000
6 130.0769230
7 210.0476190
8 340.0294117
9 550.0181818
10 890.0112359
11 1440.0069444
12 2330.0042918
13 3770.0026525
14 6100.0016393
15 9870.0010131
16 15970.0006261
17 25840.0003869
18 41810.0002391
19 67650.0001478
20109460.0000913