Está en la página 1de 31

2) EL MTODO DE BSQUEDA S2 O

SIMPLEX
3) EL MTODO DE PATRONES
DE BSQUEDA DE HOOKE-JEEVES
Patricia Cando
Pedro Fernndez
Este es un ingenioso mtodo de bsqueda propuesto por
Spendley, Hext y Himsworth en 1962 y posteriormente
mejorado por Nelder y Mead en 1965.

Es importante hacer notar que este mtodo no tiene
relacin alguna con el mtodo simplex que se usa en
programacin lineal.
El mtodo de Spendley, Hext y Himsworth se basa en la
observacin de que un diseo experimental de primer
orden requiere el menor nmero de puntos en el
denominado simplex regular.

En N dimensiones, un simplex regular es un poliedro
compuesto de N+1 puntos equidistantes, los cuales
forman sus vrtices. Por ejemplo, un tringulo equiltero
es un simplex en dos dimensiones; un tetraedro es un
simplex en tres dimensiones.
La principal propiedad del simplex empleado por el
algoritmo es que puede generarse un nuevo simplex
sobre cualquier cara del simplex previo, proyectando
cualquier vrtice elegido en una distancia apropiada a
travs del centroide de los vrtices restantes del viejo
simplex. El nuevo simplex se forma entonces
reemplazando el viejo vrtice por el punto proyectado
que se acaba de generar. De esta forma, cada nuevo
simplex se genera con una sola evaluacin de la funcin
objetivo.

La siguiente figura ilustra el proceso para 2 dimensiones:
Con N variables, se usan solo (N+1) puntos en el
simplex inicial.
Aunque existen algunas guas de diseo para elegir el
simplex inicial, lo ms importante es tomar en cuenta que
el simplex inicial no debe formar un hipercubo (N-
dimensional) de volumen cero. Por tanto, en una funcin
con 2 variables, los 3 puntos elegidos no deben yacer a
lo largo de una recta. Similarmente, en una funcin con 3
variables, los 4 puntos del simplex inicial no deben yacer
sobre un plano.
A cada iteracin, se encuentra primero el peor punto en
el simplex.
Posteriormente se forma un nuevo simplex a partir del viejo
usando ciertas reglas fijas que alejan la bsqueda del
peor punto en el simplex. La orientacin depende de los
valores relativos de la funcin en el simplex.
Pueden ocurrir cuatro situaciones diferentes
dependiendo de los valores de la funcin:

Primero, se determina el centroide (xo) de todos los
puntos, menos el peor. Posteriormente, se refleja el peor
punto en el simplex alrededor del centroide y se obtiene
un nuevo punto (xr).
Reflexin. Si xh es el vrtice correspondiendo al
valor ms elevado de la funcin objetivo entre los
vrtices del simplex, se puede esperar que el punto
xr obtenido a travs de la reflexin del punto xh en
hiperplano representado por los dems n puntos
asuma un valor ms pequeo. Si este es el caso,
se puede obtener un nuevo simplex a partir del
anterior, rechazando el punto xh e incorporando el
nuevo punto xr. Este proceso se puede observar en
la figura siguiente para los casos n = 2 y n = 3.
Le expresin matemtica de la reflexin es:
siendo que :



Donde


si ahora f(xl) < f(xr) < f(xh) entonces xh es substituido por
xr y se pasa al nuevo simplex. La utilizacin de apenas el
proceso de reflexin no es suficiente para
aproximarnos lo suficiente al mnimo.
Expansin. Si el proceso de reflexin proporciona un
punto tal que f(xr) < f(xl) se calcula


Donde es un coeficiente de expansin tal que


si en el proceso de expansin ocurre que f(xe) < f(xl)
entonces xh se substituye por xe y se prosigue con el
nuevo simplex. Si por otro lado f(xe) > f(xl) entonces el
proceso de expansin no llevo a buen puerto, y se
substituye xh por xr continuando el proceso.
Contraccin. Si el proceso de reflexin proporciona un
punto xr para el que se verifica f(xr) > f(xi) para todo i h
siendo f(xr) < f(xh), substituimos el punto xh por el punto
xr. As el nuevo punto ser xr. En este caso
contraeremos el simplex como sigue:
xc = xh + (1 )x0
donde 0 1 es el coeficiente de contraccin y se define
como




Si f(xr) > f(xh) utilizaremos nuevamente la ecuacin de
contraccin sin cambiar el punto xh. Si la contraccin
produce un punto xc para el que se verifica
f(xc)<mn (f(xh), f(xr)), sustituimos el punto xh por xc y
proseguimos con las operaciones de reflexin. Si de otro
modo ocurre que f(xc) mn (f(xh), f(xr)) el proceso de
contraccin fue un fracaso substituyendo xi por
(xi +xl)/2 volviendo al proceso de reflexiones. Este
proceso converge para un mnimo local siempre y
cuando se verifique:

Considere el siguiente problema:
Min f(x1, x2) = (x1 + 2x2 7)^2 + (2x1 + x2 5)^2
El mtodo de patrones de bsqueda de Hooke-
Jeeves crea un conjunto de direcciones de
bsqueda de manera iterativa. Este mtodo se
propuso en 1966 y fue uno de los primeros
algoritmos en incorporar la historia previa de una
secuencia de iteraciones en la generacin de
una nueva direccin de bsqueda.


La idea bsica del algoritmo de Hooke-Jeeves es
combinar movimientos exploratorios del tipo una-
variable-a-la-vez con movimientos de patrones o
aceleraciones, los cuales se regulan mediante algunas
reglas heursticas.
Los movimientos exploratorios examinan la vecindad del
punto actual para encontrar el mejor punto alrededor del
mismo. Posteriormente, se usan estos dos puntos (el
actual y el mejor en su vecindad) para realizar un
movimiento de patrones.
MOVIMIENTO EXPLORATORIO

Supongamos que la solucin actual (el punto base) se denota
por xc. Supongamos tambin que la variable (xi)^c es
perturbada por i.
Hacer i = 1 y x = x^c.
Paso 1 : Encontrar f = f(x), f+ = f(xi + i) y f = f(xi i)
Paso 2 : Encontrar fmin = min(f, f+, f)
Hacer que x corresponda a fmin.
Paso 3 : Es i = N? Si no, hacer i = i + 1. GOTO Paso 1
ELSE x es el resultado. GOTO Paso 4.
Paso 4 : IF x x^c THEN reportar EXITO
ELSE reportar FRACASO
En el movimiento exploratorio, el punto actual es perturbado en
la direccin positiva y en la direccin negativa a lo largo de
cada variable, a razn de una variable a la vez. El mejor
punto obtenido se almacena.
Al final de la perturbacin de cada variable se
cambia el punto actual por el mejor punto
encontrado. Si el punto encontrado al final de todas
las perturbaciones de las variables es diferente al
punto original, el movimiento exploratorio se
considera exitoso. De lo contrario, se considera
fallido. Cualesquiera sea el caso, el mejor punto es
la salida producida por el movimiento exploratorio.
MOVIMIENTO DE PATRONES

Se obtiene un nuevo punto saltando del mejor
punto actual xc a lo largo de una direccin que
conecte el mejor punto previo x(k1) y el punto
base actual de la manera siguiente:


El mtodo de Hooke-Jeeves consiste de una
aplicacin iterativa de un movimiento exploratorio
en la vecindad del punto actual y de un salto
subsecuente usando el movimiento de patrones.
Si el movimiento de patrones no toma la solucin a
una mejor regin, entonces no se acepta y se
reduce el alcance de la bsqueda exploratoria.
Esto se repite hasta alcanzar convergencia (o sea,
cuando la norma euclidiana de se hace
suficientemente pequea).
ALGORITMO
Puede verse que la estrategia de bsqueda es simple
y muy directa.
El algoritmo requiere menos almacenamiento para
las variables; solo se requiere almacenar dos puntos
(x(k) y x(k+1)) a cada iteracin. Los clculos
numricos involucrados en el proceso son tambin
simples. Pero, debido a que la bsqueda depende en
gran medida de los movimientos a lo largo de las
direcciones coordenadas (x1,x2 y as sucesivamente)
durante el movimiento exploratorio, el algoritmo
puede converger prematuramente a una solucin
errnea, especialmente en el caso de funciones con
interacciones altamente no lineales entre las
variables.
El algoritmo puede quedar atrapado tambin en el
ciclo de generacin de movimientos aleatorios
entre los pasos 5 y 6 o entre los pasos 2 y 3. Otra
caracterstica de este algoritmo es que termina solo
tras buscar exhaustivamente la vecindad del punto
al que se ha convergido. Esto requiere un nmero
elevado de evaluaciones de la funcin objetivo para
poder converger a una solucin que tenga una
precisin razonable. La convergencia al optimo
depende del parmetro . Se recomienda usar
=2.
Este algoritmo es muy simple, los clculos que
requiere no son muy elaborados y sus
requerimientos de memoria son an menores que
los asociados con el mtodo de bsqueda simplex.
Debido a estos factores, el algoritmo de Hooke-
Jeeves ha gozado de una amplia aplicabilidad en
todas las reas de la ingeniera, especialmente en
combinacin con funciones de penalizacin.
Ntese, sin embargo, que debido a su dependencia
de los incrementos de coordenadas, el algoritmo
puede terminar prematuramente y, en la presencia
de no linealidades severas, este degenerar en
una secuencia de movimientos exploratorios sin
beneficio de la aceleracin de patrones.

Considere el siguiente problema:
Min f(x1, x2) = 100(x2 (x1)^2)^2 + (1 x1)^2