Búsqueda en una Dimensión

Anuncio
Búsqueda en una Dimensión
Departamento de Matemáticas, CSI/ITESM
1 de noviembre de 2009
Índice
14.1. Introducción . . . . . . . . . . .
14.2. Método de la Sección Dorada .
14.3. Ubicación del Intervalo . . . . .
14.4. Algoritmo Basado en la Sección
14.5. Ejemplos . . . . . . . . . . . .
14.6. Tarea . . . . . . . . . . . . . .
14.1.
. . . . .
. . . . .
. . . . .
Dorada
. . . . .
. . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
3
3
4
4
Introducción
Algunos de los métodos numéricos de búsqueda de óptimos de una función en varias variables se basan
en métodos de búsqueda de óptimos en una variable. Por ejemplo, el método de ascenso más rápido elige un
punto dado y determina la dirección de máximo crecimiento en tal punto. Esta dirección es la del gradiente de
la función en dicho punto. Ası́ y partiendo del punto y siguiendo esta dirección avanza para localizar el óptimo
en dicha dirección. Imaginese avanzando en lı́nea recta y tomando en cuenta sólo la evaluación de la función
para determinar el punto en la lı́nea con la mayor evaluación. Una vez alcanzado este punto, se determina la
dirección de máximo crecimiento en tal punto y se repite el proceso de búsqueda. Por su valor práctico, los
métodos de búsqueda en una dimensión son dignos de revisar.
Previo a revisar los métodos, es importante saber si el óptimo que buscamos existe y que no habrá más de
uno. Una función que efectivamente tiene un sólo óptimo recibe un nombre especial:
Definición
Una función es unimodal si sólo tiene un óptimo (relativo o absoluto). En caso que tenga varios
óptimos se dice multimodal.
Unimodal
Multimodal
En general, tener la certeza de que el óptimo buscado existe y es único, normalmente se asume que la función
es unimodal y se revisan las respuestas del que entrega la aplicación del algoritmo a problemas especı́ficos.
Veamos ahora uno de los métodos más usados para búsca de óptimos en una variable.
14.2.
Método de la Sección Dorada
El Método de la Sección Dorada es un método de búsqueda iterativo en una dimensión (1 variable) donde
se trata de ir aproximando un punto por medio de anidamiento. La estrategia de este método se basa en tres
puntos iniciales: dos considerados los extremos de un intervalo (x1 y x2 ) y el tercero (x3 ) entre los dos primeros
de tal suerte que relación entre la distancia de este punto interno al extremo x2 (x2 − x3 ) y la distancia entre
los extremos (x2 − x1 ) es siempre una constante:
√
5−1
x2 − x3
=
= τ = 0.618034 . . .
x2 − x1
2
Note que el punto x3 divide al segmento [x1 : x2 ] en dos partes: la parte [x1 : x3 ] es más pequeña que la parte
[x3 : x2 ]: el segmento [x3 : x2 ] es el 60.80 % de [x1 : x2 ], mientras que [x1 : x3 ] tiene una longitud que es el
38.19 %.
El método itera generando un siguiente punto x4 en [x3 : x2 ] (la parte más amplia) de manera que
se cumple:
x4 − x1
=τ
x2 − x1
Note que las fórmulas convenientes para el cálculo de x3 y x4 son:
x4 = (1 − τ ) x1 + τ x2 .
(1)
x3 = τ x1 + (1 − τ ) x2 .
(2)
y
Y la razón es porque en estas fórmulas no se requiere que x1 < x2 .
x4 −x1
x2 −x1
x2 −x3
x2 −x1
x3 −x1
x4 −x1
x2 −x4
x2 −x3
Observemos las siguientes razones:
=
((1−τ ) x1 +τ x2 )−x1
x2 −x1
=
τ x2 −τ x1
x2 −x1
=
x2 −(τ x1 +(1−τ ) x2 )
x2 −x1
=
τ x2 −τ x1
x2 −x1
=τ
=τ
=
(τ x1 +(1−τ ) x2 )−x1
(1−τ ) x1 +τ x2 −x1
=
(1−τ )(x2 −x1 )
τ (x2 −x1 )
=
x2 −((1−τ ) x1 +τ x2 )
x2 −τ x1 −(1−τ ) x2
=
(1−τ ) (x2 −x1 )
τ (x2 −x1 )
1−τ
τ
=
=
1−τ
τ
=τ
=τ
I1
I4
I5
I2
I3
I6
x1
x3 x4
τ
=
I3
I1
=
I4
I1
=
I2
I4
=
I5
I3
= 0.6180 . . .
1−τ
=
I2
I1
=
I5
I1
=
I6
I4
=
I6
I3
= 0.3819 . . .
x2
2
Dependiendo de la función a maximizar, el algoritmo escoge tres puntos de los cuatro disponibles de manera
que la situación se repite en las proporciones de los intervalos. En general, si Ii es la longitud del intervalo en
la iteración i se cumple que:
In = τ n−1 I1
Por tanto, conociendo el intervalo inicial (I1 ) y sabiendo a qué precisión se desea estimar el punto (In ), es fácil
estimar el total de iteraciones requeridas para que este método se aproxime al valor requerido:
n=1+
14.3.
ln(In ) − ln(I1 )
ln(τ )
Ubicación del Intervalo
El método de la sección dorada requiere de la ubicación de los tres primeros puntos x1 , x2 y x3 como se
describen anteriormente.
Cuando el método se aplica a la determinación de un máximo de una función f (x), los puntos deben
satisfacer:
f (x1 ) < f (x3 ) y f (x3 ) ≥ f (x2 ).
Es decir, la función sube y cae. Al procedimiento para encontrar tales puntos recibe el nombre de Ubicación
del Intervalo de Trabajo (Bracketing). La estrategia inicia a partir de un punto x1 y teniendo un incremento
de x inicial s. Se genera un siguiente punto
x3 = x1 + s.
Si f (x1 ) ≥ f (x3 ) habrá que buscar hacia atrás cambiando intercambiando los puntos y el signo del incremento.
Si f (x1 ) < f (x3 ), el incremento se agranda en la proporción τ por medio de la fórmula s = s/τ . Un siguiente
punto se genera hacia adelante
x2 = x3 + s.
Si f (x3 ) ≥ f (x2 ) los tres puntos buscados están determinados. Si f (x3 ) < f (x2 ), entonces el procedimiento se
repite tomando x1 = x3 y x2 = x3 . Observe que el intervalo de bracketing va creciendo en la proporción 1/τ .
La siguiente figura ilustra cómo se va agrandando el intervalo en el caso de bracketing.
Crecimiento del intervalo de Bracketing
f (x1 ) < f (x3 )
f (x1 )
f (x3 ) ≥ f (x2 )
f (x3 )
f (x2 )
(1 + τ1 ) s
1
τ
s
x1
x3
s
x2
3
14.4.
Algoritmo Basado en la Sección Dorada
Veamos ahora el algoritmo de búsqueda de el máximo de una función en una dimensión basado en la razón
dorada.
[1.] Inicie con un punto x1 y un incremento s; tome f1 ← f (x1 ).
[2.] Tome x3 ← x1 + s y f3 ← f (x3 ).
[3.] Si (f1 > f3 ), intercambie (x1 , f1 ) y (x3 , f3 ) y tome s ← −s.
[4.] Tome s ← s/τ , x2 ← x3 + s, y f2 ← f (x2 ).
[5.] Si (f3 > f2 ), vaya a [7.]
[6.] Tome (x1 , f1 ) ← (x3 , f3 ) y (x3 , f3 ) ← (x2 , f2 ) y vaya a [4.]
[7.] Tome x4 ← (1 − τ ) x1 + τ x2 y f4 ← f (x4 ).
[8.] Si (f3 ≥ f4 ), tome (x2 , f2 ) ← (x1 , f1 ) y (x1 , f1 ) ← (x4 , f4 ); vaya a [10.]
[9.] Tome (x1 , f1 ) ← (x3 , f3 ) y (x3 , f3 ) ← (x4 , f4 );
[10.] SiCriterio de paro = OK, termine; caso contrario vaya a [7.]
La siguiente figura aclara la elección del nuevo intervalo de anidamiento del óptimo. En ella los puntos en rojo
representan los nuevos punto del intervalo donde se reiniciará el ciclo. Note que se preservan las relaciones en
los nuevos intervalos.
Casos en la comparación de f4 vs f3
I1
I1
I4
I2
x1
14.5.
I5
I4
I3
I2
I5
I3
x3 x4
x2
x1
x3 x4
x1 x3
x2
x2
x3 x1
x2
Ejemplos
1. Aplique el algoritmo anterior para encontrar el máximo de la función
f (x) = −x2 − 1
partiendo de x1 = −1 y con un primer intervalo de s = 0.5.
2. Encuentre el punto óptimo (máximo) por el método de Mayor Ascenso combinado con el método de la
sección dorada a las funciones:
f (x, y, z) = −3 x2 − 2 x y − 6 x − 3 y 2 − 2 y − z 2
4
Partiendo de P (2, 2, 1) y tomando s = 1 en cada aplicación de la sección dorada.
14.6.
Tarea
1. Use el método de la sección dorada para determinar con una tolerancia de 0.05 la solución óptima de :
Max
x2 + 2 x
Sujeto a −3 ≤ x ≤ 5
2. Use el método de la sección dorada para determinar con una tolerancia de 0.05 la solución óptima de :
Max
x − ex
Sujeto a −1 ≤ x ≤ 3
3. Encuentre el punto máximo por el método de Mayor Ascenso combinado con el método de la sección
dorada a las funciones:
a) f (x, y) = −(x − 3)2 − (y − 1)2 partiendo de P (2, 2) y tomando s = 1 en cada aplicación de la sección
dorada.
b) f (x, y) = −3 x2 − 2 x y − 6 x − 3 y 2 − 2 y − 3 partiendo de P (2, 2) y tomando s = 1 en cada aplicación
de la sección dorada.
5
Descargar