Optimización en Ingenier´ıa - Departamento de Computación

Anuncio
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Departamento de Computación
CINVESTAV-IPN
Av. IPN No. 2508
Col. San Pedro Zacatenco
México, D.F. 07300
email: [email protected]
Clase No. 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Búsqueda Exhaustiva
El primer método de acotamiento que estudiaremos es la
búsqueda exhaustiva, que es el más simple de todos. En este
método, el óptimo de una función es acotado calculando los valores
de la función en un conjunto de puntos equidistantes entre sı́.
Clase No. 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Búsqueda Exhaustiva
Clase No. 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Búsqueda Exhaustiva
Usualmente, la búsqueda comienza desde el lı́mite inferior de la
variable y se calculan 3 valores consecutivos de la función a la vez,
basándose en la premisa de unimodalidad de la función. Basándose
en los resultados de la comparación, la búsqueda se concluye o se
continúa reemplazando uno de los 3 puntos por uno nuevo. La
búsqueda continúa hasta que se acota el mı́nimo.
Clase No. 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Búsqueda Exhaustiva
Algoritmo
Paso 1:
Paso 2:
Paso 3:
Clase No. 2
x1 = a; ∆x = (b − a)/n
(n es el número de puntos intermedios)
x2 = x1 + ∆x; x3 = x2 + ∆x
IF f (x1 ) ≥ f (x2 ) ≤ f (x3 ) el mı́nimo se encuentra
en (x1 , x3 ). TERMINAR
ELSE x1 = x2 ; x2 = x3 ; x3 = x2 + ∆x
GOTO Paso 3
¿Es x3 ≤ b? Si lo es, ir al Paso 2
ELSE no existe un mı́nimo en (a, b) o un
punto extremo (a ó b) es el mı́nimo.
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Búsqueda Exhaustiva
Nótese que el intervalo final obtenido por este algoritmo es
2(b − a)/n. En promedio, se requieren (n/2 + 2) evaluaciones de la
función para obtener la precisión deseada. Es decir, que se necesitan
más evaluaciones para obtener una mejor precisión. Por ejemplo, si
a = 0, b = 10 y la precisión requerida es de 0,001, entonces tenemos:
2(10 − 0)/n = 0,001
(1)
de donde: n = 20, 000. Es decir, que se requieren al menos 20, 000
iteraciones para lograr una precisión de 0.001.
Clase No. 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de la Fase de Acotamiento
Este es otro método de acotamiento que se conoce en inglés como
bounding phase method. El algoritmo comienza con un valor
cualquiera y se inicia la búsqueda basándose en dos o más
evaluaciones de la función objetivo en la vecindad del punto inicial.
Posteriormente se adopta una estrategia de búsqueda exponencial
para alcanzar el óptimo.
Clase No. 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de la Fase de Acotamiento
Algoritmo
Paso 1:
Paso 2:
Paso 3:
Paso 4:
Clase No. 2
Elegir un punto inicial x(0) y un incremento ∆
Hacer k = 0
IF f (x(0) − |∆|) ≥ f (x(0) ) ≥ f (x(0) + |∆|), THEN
∆ es positivo
ELSE IF f (x(0) − |∆|) ≤ f (x(0) ) ≤ f (x(0) + |∆|), THEN
∆ es negativo
ELSE GOTO Paso 1
x(k+1) = x(k) + 2k ∆
IF f (x(k+1) ) < f (x(k) ) THEN k = k + 1 y
GOTO Paso 3
ELSE el mı́nimo se encuentra en el intervalo
(x(k−1) , x(k+1) )
TERMINAR
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de la Fase de Acotamiento
Observaciones:
La efectividad de este método depende del valor adoptado para el
incremento de ∆. Si ∆ es grande, se obtiene un intervalo inicial
grande y la precisión del acotamiento del mı́nimo es, en
consecuencia, pobre. Si se elige un ∆ pequeño, la precisión del
acotamiento mejorará, pero se requerirán más evaluaciones de la
función.
Una vez que se ha acotado la ubicación del óptimo, pueden
aplicarse esquemas más sofisticados de reducción de intervalos para
aproximar el óptimo.
Clase No. 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Métodos de Eliminación de Regiones
Se llama ası́ a los métodos de búsqueda que localizan el óptimo
mediante la eliminación sucesiva de subintervalos que reducen el
intervalo de búsqueda restante.
Nótese que prácticamente todos los métodos de búsqueda
unidimensionales presuponen unimodalidad de la función a
resolverse, al menos en el dominio de interés de la misma.
Clase No. 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Métodos de Eliminación de Regiones
Este tipo de métodos se basan en la llamada propiedad de
eliminación, definida por el siguiente teorema:
Teorema: Supongamos que f es estrictamente unimodal (o sea, es
unimodal y no tiene intervalos de longitud finita en los cuales la
función sea de valor constante) en el intervalo a ≤ x ≤ b con un
mı́nimo en x∗ . Hagamos que x1 y x2 sean 2 puntos en el intervalo,
de forma que a < x1 < x2 < b.
Clase No. 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Métodos de Eliminación de Regiones
Tenemos entonces que:
1.
Si f (x1 ) > f (x2 ), entonces el mı́nimo de f (x) no se encuentra
en el intervalo (a, x1 ) En otras palabras, x∗ ∈ (x1 , b).
2. Si f (x1 ) < f (x2 ), entonces el mı́nimo de f (x) no se encuentra
en el intervalo (x2 , b) En otras palabras, x∗ ∈ (a, x2 ).
Clase No. 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Métodos de Eliminación de Regiones
Nótese que cuando f (x1 ) = f (x2 ) podemos eliminar los 2 extremos
y x∗ ∈ (x1 , x2 ).
Clase No. 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Métodos de Eliminación de Regiones
Usando la propiedad de eliminación, puede organizarse la
búsqueda de manera que se encuentre el óptimo eliminando
recursivamente secciones del intervalo acotado originalmente. La
búsqueda termina cuando el subintervalo restante es reducido a una
longitud suficientemente pequeña.
Nótese que la mayor ventaja de este tipo de métodos es que no
requieren que la función sea diferenciable (sólo requieren evaluarla).
Clase No. 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de División de Intervalos por la Mitad
En este método de eliminación de regiones se consideran valores en
tres puntos diferentes (espaciados de forma equidistante) y se borra
exactamente una mitad del intervalo a cada iteración.
Clase No. 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de División de Intervalos por la Mitad
Estos 3 puntos se ilustran en la figura anterior. Dos de los valores
de la función se comparan a la vez y una cierta región se elimina.
Hay 2 escenarios posibles:
Caso 1: If f (x1 ) < f (xm ) el mı́nimo no puede encontrarse más
allá de xm . Por lo tanto, reducimos el intervalo de (a, b) a (a, xm ).
Dado que xm es el punto medio del espacio de búsqueda, esta
eliminación reduce el espacio de búsqueda a la mitad.
Clase No. 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de División de Intervalos por la Mitad
Caso 2: If f (x1 ) > f (xm ) el mı́nimo no puede encontrarse en el
intervalo (a, x1 ). Entonces comparamos los valores de la función en
xm y x2 para eliminar un 25 % del espacio de búsqueda (ya se
habı́a eliminado otro 25 % antes, porque x1 estaba a 1/4 de
distancia del lı́mite inferior de la búsqueda).
Clase No. 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de División de Intervalos por la Mitad
Este proceso continúa hasta que se encuentra un intervalo
suficientemente pequeño. Como a cada iteración se retiene
exactamente la mitad del espacio de búsqueda, se denomina al
algoritmo el método de división de intervalos por la mitad.
Clase No. 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de División de Intervalos por la Mitad
Algoritmo
Paso 1:
Paso 2:
Paso 3:
Paso 4:
Paso 5:
Clase No. 2
Elegir un lı́mite inferior a y un lı́mite superior b.
Definir tolerancia xm = (a + b)/2
Lo = L = b − a
Calcular f (xm )
x1 = a + L/4; x2 = b − L/4
Calcular f (x1 ) y f (x2 )
IF f (x1 ) < f (xm ) b = xm ; xm = x1 GOTO Paso 5
IF f (x2 ) < f (xm ) a = xm ; xm = x2 GOTO Paso 5
ELSE a = x1 ; b = x2 ; GOTO Paso 5
L=b−a
IF |L| < TERMINAR
ELSE GOTO Paso 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de División de Intervalos por la Mitad
Observaciones:
A cada etapa del algoritmo, se borra exactamente la mitad de
la longitud del intervalo de búsqueda.
El punto medio de los intervalos subsecuentes es siempre igual
a uno de los puntos previos x1 , x2 o xm . Por tanto, se
requieren, cuando mucho, dos evaluaciones de la función a cada
paso subsecuente.
Clase No. 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de División de Intervalos por la Mitad
Después de n evaluaciones de la función, el intervalo inicial de
búsqueda será reducido a ( 12 )n/2 Lo.
En consecuencia, el número de evaluaciones requeridas para
obtener una precisión deseada puede calcularse resolviendo:
(0,5)n/2 (b − a) = Clase No. 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de Búsqueda de Fibonacci
En este método de eliminación de regiones, el intervalo de búsqueda
se reduce de acuerdo a la serie que se atribuye a Leonardo Pisano
Fibonacci, un matemático del 1200 de nuestra era.
Clase No. 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de Búsqueda de Fibonacci
La propiedad de los números de Fibonacci es que, dados dos
números consecutivos Fn−2 y Fn−1 , el tercer número se calcula
usando:
Fn = Fn−1 + Fn−2
donde n = 2, 3, 4, ... Los primeros números de Fibonacci son:
F0 = 1, F1 = 1, F2 = 2, F3 = 3, F4 = 5, F5 = 8, F6 = 13 y
ası́ sucesivamente.
Clase No. 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de Búsqueda de Fibonacci
Los números de Fibonacci pueden usarse para crear un algoritmo
de búsqueda que requiera sólo una evaluación de la función objetivo
a cada iteración.
El principio de la búsqueda de Fibonacci es que de dos puntos
requeridos para el uso de la propiedad de eliminación de regiones,
uno es siempre el punto previo y el otro punto es nuevo. Por ende,
sólo se requiere una evaluación de la función a cada iteración.
Clase No. 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de Búsqueda de Fibonacci
En la iteración k, se eligen dos puntos intermedios, cada uno de los
cuales está a una distancia L∗k de cada extremo del espacio de
búsqueda (L = b − a). Cuando la propiedad de eliminación de
regiones elimina una porción del espacio de búsqueda, el espacio de
búsqueda restante es Lk .
Clase No. 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de Búsqueda de Fibonacci
Definiendo L∗k = (Fn−k+1 /Fn+1 )/L y Lk = (Fn−k+2 /Fn+1 )/L se
puede mostrar que:
Lk − L∗k = L∗k+1
lo que significa que uno de los dos puntos usados en la iteración k
se mantiene como uno de los puntos de referencia en la iteración
(k + 1). Ver la figura siguiente:
Clase No. 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de Búsqueda de Fibonacci
Puesto que los dos primeros números de Fibonacci son los mismos,
el algoritmo usualmente empieza con k = 2.
Clase No. 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de Búsqueda de Fibonacci
Algoritmo
Paso 1:
Paso 2:
Paso 3:
Paso 4:
Clase No. 2
Elegir un lı́mite inferior a y un lı́mite superior b.
L=b−a
Elegir un número deseado de iteraciones N
k=2
L∗k = (Fn−k+1 /Fn+1 ) ∗ L
x1 = a + L∗k ; x2 = b − L∗k
Calcular f (x1 ) ó f (x2 )
(el que no se haya evaluado antes)
Usar la propiedad de eliminación de regiones.
Establecer nuevos valores de a y b.
¿Es k > N ?
Si no, k = k + 1, GOTO Paso 2
ELSE TERMINAR
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de Búsqueda de Fibonacci
Observaciones:
La función a optimizarse debe ser unimodal en el intervalo
inicial de búsqueda.
Este método no puede localizar el óptimo exacto del problema.
Sólo proporciona un intervalo, el cual posiblemente sea muy
pequeño.
Debe especificarse el número de iteraciones a efectuarse.
Clase No. 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de Búsqueda de Fibonacci
Con la búsqueda de Fibonacci, el intervalo se reduce a
(2/Fn+1 ) ∗ L
después de n evaluaciones de la función objetivo. Por tanto,
para una precisión deseada , se requiere un número de
evaluaciones correspondientes a la ecuación
2
Fn+1
Clase No. 2
(b − a) = 2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de Búsqueda de Fibonacci
Nótese que debe calcularse la serie de Fibonacci hasta N + 1 al
usar este método.
A cada iteración, se elimina una proporción del espacio de
búsqueda de: (k = iteración actual)
Fn−k /Fn−k+2
Para valores grandes de n, este valor es cercano a 38,2 %, lo
cual es mejor que la reducción del método de división de
intervalos por la mitad, que elimina el 25 %.
Clase No. 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de la Sección Dorada
Uno de los problemas de la búsqueda de Fibonacci es que deben
calcularse y almacenarse los números de Fibonacci. Otro problema
es que a cada iteración la proporción de la región eliminada no es la
misma.
Para aliviar estas dos desventajas y mantener el cálculo de una sola
evaluación de la función objetivo por iteración, se usa el método de
la sección dorada.
Clase No. 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de la Sección Dorada
En este algoritmo, el espacio de búsqueda (a, b) se mapea
linealmente a un intervalo unitario (0, 1). Posteriormente, dos
puntos en τ desde cualquier extremo del espacio de búsqueda se
eligen en forma que a cada iteración la región eliminada sea de
(1 − τ ) con respecto a la iteración previa. Esto se puede lograr
igualando 1 − τ con (τ × τ ). Esto produce el número dorado:
τ =0.618.
Clase No. 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de la Sección Dorada
Clase No. 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de la Sección Dorada
El valor de τ tiene su historia. Los arquitectos de la Grecia antigua
creı́an que un edificio de dimensiones d y b, el cual cumpliera con la
relación
d+b
d
τ=
=
d
b
tendrı́a las propiedades más placenteras a los sentidos (ver figura
del siguiente acetato):
Clase No. 2
2008
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de la Sección Dorada
También se encuentra este concepto en la geometrı́a de Euclides.
Clase No. 2
2008
Descargar