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. 3
2009
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. 3
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
2009
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. 3
2009
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. 3
(b − a) = 2009
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. 3
2009
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. 3
2009
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. 3
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de la Sección Dorada
Clase No. 3
2009
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. 3
2009
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. 3
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de la Sección Dorada
Algoritmo
Paso 1:
Paso 2:
Paso 3:
Clase No. 3
Elegir un lı́mite inferior a y un lı́mite superior b.
Elegir una tolerancia Normalizar la variable x usando:
w = (x − a)/(b − a)
aw = 0, bw = 1, Lw = bw − aw
k=1
w1 = aw + (0,618)Lw
w2 = bw − (0,618)Lw
IF f (w1 ) < f (w2 ) aw = w2
ELSE bw = w1
Lw = bw − aw
IF |Lw | < TERMINAR
ELSE k = k + 1; GOTO Paso 2
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de la Sección Dorada
En el método de la sección dorada, el intervalo se reduce a
(0.618)n−1 después de n evaluaciones de la función objetivo. De tal
forma, el número de evaluaciones de la función objetivo que se
requieren para lograr una precisión deseada se calcula resolviendo
(para n) la siguiente ecuación:
(0,618)n−1 (b − a) = Clase No. 3
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de la Sección Dorada
Al igual que en la búsqueda de Fibonacci, sólo se requiere una
evaluación de la función objetivo por iteración y la eliminación
regional efectiva por evaluación de la función es exactamente
38.2 %, que es un valor más alto que en el método de división de
intervalos por la mitad. Esta cantidad es la misma que en la
búsqueda de Fibonacci para un valor grande de n. De hecho, para
un valor grande de n, el método de Fibonacci es equivalente a la
sección dorada.
Clase No. 3
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Comparación de los Métodos de Eliminación de
Regiones
Comparemos ahora las eficiencias relativas de los métodos de
eliminación de regiones que hemos visto hasta ahora. Denotemos el
intervalo de incertidumbre original como Lo y al intervalo de
incertidumbre final, después de N evaluaciones de la función
objetivo le llamaremos LN . Supongamos ahora que consideramos a
la reducción fraccional (RF ) del intervalo original como una
medida de mérito de los métodos de eliminación de regiones.
Tenemos entonces:
Clase No. 3
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Comparación de los Métodos de Eliminación de
Regiones
RF (N ) =
LN
Lo
La siguiente tabla muestra los intervalos finales de incertidumbre
de cada uno de los métodos que vimos:
Clase No. 3
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Comparación de los Métodos de Eliminación de
Regiones
Clase No. 3
Método
Fórmula
Búsqueda Exhaustiva
LN =
Div. intervalos por la mitad
LN =0.5
Fibonacci
LN =
Sección dorada
LN =(0.618)
2
N Lo
N/2
Lo
2
FN +1 Lo
N −1
Lo
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Comparación de los Métodos de Eliminación de
Regiones
Las reducciones fraccionales pueden obtenerse fácilmente:
Búsqueda exhaustiva:
RF (N ) =
LN
2Lo
2
=
=
Lo
N Lo
N
División de intervalos por la mitad:
LN
0,5N/2 Lo
RF (N ) =
=
= 0,5N/2
Lo
Lo
Clase No. 3
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Comparación de los Métodos de Eliminación de
Regiones
Fibonacci:
LN
2Lo
2
RF (N ) =
=
=
Lo
FN +1 Lo
FN +1
Sección Dorada:
LN
(0,618)N −1 Lo
=
= (0,618)N −1
RF (N ) =
Lo
Lo
Clase No. 3
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Comparación de los Métodos de Eliminación de
Regiones
La siguiente tabla muestra los valores de RF (N ) para distintos
valores de N . Estos valores son indicativos de la eficiencia de cada
método.
Método
N =5
N = 10
N = 15
N = 20
0.4
0.2
0.133
0.1
0.177
0.03125
0.0055
0.0009765
F6 =13
F11 =144
F16 =1597
F21 =17711
Fibonacci
0.1538
0.01389
0.00125
0.000113
Sección dorada
0.1459
0.01315
0.001185
0.00010685
Búsqueda Exhaustiva
Div. intervalos
por la mitad
Clase No. 3
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Comparación de los Métodos de Eliminación de
Regiones
De esta tabla se desprende que el método más eficiente es el de
Fibonacci, seguido por la sección dorada.
En la práctica, suele calcularse el número de iteraciones que se
requieren para obtener una precisión dada. Esto se puede obtener
usando:
LN = = precisión requerida. Si usamos Lo = 1, podemos obtener el
número de iteraciones que requiere cada método para lograr una
precisón dada. Ver la tabla siguiente:
Clase No. 3
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Comparación de los Métodos de Eliminación de
Regiones
Método
=0.1
=0.05
=0.01
=0.001
Búsqueda Exhaustiva
19
39
199
1999
Div. intervalos
7
9
14
20
6
8
11
16
por la mitad
Sección dorada
Clase No. 3
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Métodos de Aproximación Polinomial o
Estimación de Puntos
Los métodos de eliminación de regiones que vimos anteriormente,
sólo requieren que la función sea unimodal. Por tanto, son
aplicables tanto a funciones continuas como discontinuas, ası́ como
a problemas con variables discretas. La lógica de estos métodos se
basa en una simple comparación de valores de la función en 2
puntos diferentes. Además, esta comparación sólo toma en cuenta el
ordenamiento de los valores de la función y no involucra de manera
alguna a las magnitudes de la diferencia entre valores funcionales.
Clase No. 3
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Métodos de Aproximación Polinomial o
Estimación de Puntos
Los métodos de estimación de puntos sı́ toman en cuenta las
magnitudes relativas de los valores de la función y, en consecuencia,
suelen tener mejor desempeño que los métodos de eliminación de
regiones. Sin embargo, esta mejora en eficiencia se obtiene a partir
de requerir que las funciones a optimizarse sean sufientemente
“suaves”.
Clase No. 3
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Métodos de Aproximación Polinomial o
Estimación de Puntos
La idea básica de los métodos de estimación de puntos es que si la
función es suficientemente “suave”, entonces puede ser aproximada
mediante un polinomio, y dicho polinomio puede entonces usarse
para predecir la ubicación del óptimo. Para que esta estrategia sea
efectiva, es necesario que la función a optimizarse sea tanto
unimodal como continua.
Clase No. 3
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Métodos de Aproximación Polinomial o
Estimación de Puntos
El teorema de la aproximación de Weierstrass garantiza que, si la
función es continua en el intervalo considerado, entonces ésta puede
ser aproximada con la precisión deseada usando polinomios de un
orden suficientemente alto. Consecuentemente, si la función es
unimodal y se cuenta con un polinomio que la aproxime
razonablemente bien, entonces la ubicación del óptimo puede
predecirse razonablemente bien usando el polinomio en cuestión.
Clase No. 3
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Métodos de Aproximación Polinomial o
Estimación de Puntos
El teorema de Weierstrass también sugiere que se puede mejorar
nuestra aproximación del óptimo usando polinomios de
aproximación mediante alguno de los 2 mecanismos siguientes:
1.
Usando un polinomio de mayor orden, o
2.
Reduciendo el intervalo sobre el cual se aproximará el óptimo
de la función.
Clase No. 3
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Métodos de Aproximación Polinomial o
Estimación de Puntos
De entre estas 2 opciones, suele preferirse la segunda, porque el
álgebra de los polinomios de un orden superior a tres se complica
bastante y, debido a la premisa de unimodalidad, la reducción de
intervalos es mucho más fácil de realizarse.
Clase No. 3
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Métodos de Estimación Cuadrática
El método de interpolación lineal más simple es la aproximación
cuadrática. Se basa en la observación de que si una función alcanza
su mı́nimo en el interior de un intervalo, entonces debe ser al menos
cuadrática. Si es lineal, se supondrá que su óptimo se encuentra en
alguno de los extremos del intervalo. Por tanto, un esquema de
estimación cuadrática presupone que, dentro del intervalo dado, la
función puede ser aproximada mediante una cuadrática y dicha
aproximación mejorará conforme los puntos utilizados para
construir la aproximación se acercan al mı́nimo real.
Clase No. 3
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de las Estimaciones Cuadráticas Sucesivas
Este algoritmo fue propuesto por Powell (1964) y usa la búsqueda
cuadrática de manera iterativa para estimar el óptimo de una
función. El algoritmo comienza con tres puntos x1 , x2 y x3 , como la
búsqueda cuadrática vista previamente. Esto es porque cualquier
función cuadrática puede ser definida usando tres puntos.
Clase No. 3
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de las Estimaciones Cuadráticas Sucesivas
Clase No. 3
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de las Estimaciones Cuadráticas Sucesivas
El mı́nimo de la curva (x̄) se usa como uno de los puntos
candidatos para la siguiente iteración.
Para funciones no cuadráticas, el algoritmo requiere varias
iteraciones, mientras que para funciones cuadráticas el mı́nimo
exacto puede obtenerse con sólo una iteración.
Clase No. 3
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de las Estimaciones Cuadráticas Sucesivas
El método de Powell consiste en aplicar la búsqueda cuadrática
usando tres puntos x1 ,x2 y x3 y calcular x̄. El punto x̄ es un
estimado del mı́nimo de la función, el cual depende únicamente de
los 3 puntos elegidos. De entre los cuatro puntos utilizados por el
método (x1 ,x2 ,x3 y x̄), se retienen los 3 mejores y se obtiene una
nueva función interpolada q(x). El procedimiento continúa hasta
que dos estimaciones consecutivas se encuentran muy cerca entre sı́.
Clase No. 3
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de las Estimaciones Cuadráticas Sucesivas
Algoritmo
Paso 1:
Paso 2:
Paso 3:
Paso 4:
Clase No. 3
Hacer que x1 sea un punto inicial y ∆ sea el tamaño
del paso (o incremento). Pedir T OL1 y T OL2.
Calcular x2 = x1 + ∆
Evaluar f (x1 ) y f (x2 )
If f (x1 ) > f (x2 ) THEN x3 = x1 + 2∆
ELSE x3 = x1 − ∆.
Evaluar f (x3 ).
Determinar Fmin =min(f1 , f2 , f3 ) y Xmin
es el punto xi que corresponde a Fmin .
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de las Estimaciones Cuadráticas Sucesivas
Paso 5:
Paso 6:
Paso 7
Clase No. 3
Calcular x̄ usando x1 , x2 y x3 .
¿Es |Fmin − f (x̄)| ≤ T OL1 AND |Xmin − x̄| ≤ T OL2?
Si no se cumple, GOTO Paso 7
ELSE el óptimo es el mejor de los 4 puntos.
TERMINAR
Almacenar el mejor punto (Xmin o x̄) y
dos puntos que lo rodeen, si esto es posible.
Si no, almacena los 3 mejores puntos
Re-etiquetarlos de acuerdo a: x1 < x2 < x3 .
GOTO Paso 4.
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de las Estimaciones Cuadráticas Sucesivas
Algoritmo
Paso 1:
Paso 2:
Paso 3:
Paso 4:
Clase No. 3
Hacer que x1 sea un punto inicial y ∆ sea el tamaño
del paso (o incremento). Pedir T OL1 y T OL2.
Calcular x2 = x1 + ∆
Evaluar f (x1 ) y f (x2 )
If f (x1 ) > f (x2 ) THEN x3 = x1 + 2∆
ELSE x3 = x1 − ∆.
Evaluar f (x3 ).
Determinar Fmin =min(f1 , f2 , f3 ) y Xmin
es el punto xi que corresponde a Fmin .
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de las Estimaciones Cuadráticas Sucesivas
Paso 5:
Paso 6:
Paso 7
Clase No. 3
Calcular x̄ usando x1 , x2 y x3 .
¿Es |Fmin − f (x̄)| ≤ T OL1 AND |Xmin − x̄| ≤ T OL2?
Si no se cumple, GOTO Paso 7
ELSE el óptimo es el mejor de los 4 puntos.
TERMINAR
Almacenar el mejor punto (Xmin o x̄) y
dos puntos que lo rodeen, si esto es posible.
Si no, almacena los 3 mejores puntos
Re-etiquetarlos de acuerdo a: x1 < x2 < x3 .
GOTO Paso 4.
2009
Descargar