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. 7
2007
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de Operación Evolutiva (EVOP)
Esta técnica fue propuesta por el estadı́stico inglés George E.P. Box
en 1957. Su algoritmo, denominado Evolutionary Operation
(EVOP) se propuso en el contexto de optimización de producción
industrial.
Clase No. 7
2007
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de Operación Evolutiva (EVOP)
Este algoritmo requiere (2N + 1) puntos, de los cuales 2N son las
esquinas de un hipercubo, con centro en el otro punto. Se comparan
entre sı́ los (2N + 1) valores de la función y se identifica el mejor
punto entre ellos. En la siguiente iteración, se forma otro hipercubo
alrededor del mejor punto. Si en cualquier iteración, no se mejora el
punto actual, entonces se reduce el tamaño del hipercubo. Este
proceso continúa hasta que el hipercubo se vuelve muy pequeño.
Clase No. 7
2007
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de Operación Evolutiva (EVOP)
Algoritmo
Paso 1:
Paso 2:
Paso 3:
Paso 4:
Clase No. 7
Elegir un punto inicial x(0) y parámetros
de reducción de tamaño ∆i para todas las
variables de decisión, i = 1, 2, . . . , N .
Elegir una tolerancia .
Hacer x̄ = x(0)
IF ||∆|| < THEN Terminar
ELSE crear 2N puntos sumando y restando ∆i /2
de cada variable en el punto x̄
Calcular los valores de la función en los (2N + 1) puntos.
Encontrar el punto con el menor valor de la función.
Hacer que el punto mı́nimo sea x̄.
IF x̄ = x(0) , reducir los parámetros de
tamaño ∆i = ∆i /2. GOTO Paso 2.
ELSE x(0) = x̄. GOTO Paso 2.
2007
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de Operación Evolutiva (EVOP)
Nótese que en el algoritmo, x(0) siempre contiene al mejor punto.
Por tanto, al final de su ejecución, x(0) se vuelve nuestra mejor
aproximación al óptimo. Es evidente de este algoritmo que se
requiere evaluar 2N veces la función objetivo por cada iteración.
Por tanto, el número de evaluaciones de la función que se requieren
crece exponencialmente con N . Sin embargo, el algoritmo es fácil
de implementar y ha sido exitoso en la solución de muchos
problemas industriales.
Clase No. 7
2007
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de Operación Evolutiva (EVOP)
Puede verse fácilmente que en EVOP, la convergencia del algoritmo
depende del tamaño del hipercubo inicial, de su ubicación y del
parámetro de reducción de tamaño (∆i ) elegido.
Comenzar con una ∆i grande es bueno, pero la convergencia al
óptimo puede requerir más iteraciones y, por ende, más
evaluaciones de la función. Por otro lado, comenzar con un
hipercubo pequeño puede conducirnos a convergencia prematura a
un punto subóptimo, sobre todo en el caso de funciones altamente
no lineales.
Clase No. 7
2007
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de Operación Evolutiva (EVOP)
Aún con un hipercubo inicial grande, es importante indicar que el
algoritmo no garantiza convergencia a un óptimo local o global.
Vale la pena mencionar también que la reducción del parámetro de
paso (∆i ) en un factor de 2 que se muestra en el paso 4 del
algoritmo, no siempre es necesaria. Puede adoptarse una mayor o
menor reducción según se desee. Sin embargo, suele recomendarse
una reducción más pequeña (un factor más pequeño que dos y
mayor que uno) para lograr una mejor convergencia.
Clase No. 7
2007
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de la Caminata Aleatoria
Este método se basa en la generación de una secuencia de
aproximaciones mejoradas al mı́nimo, cada una de las cuales se
deriva de la aproximación previa.
Entonces, si xi es la aproximación al mı́nimo obtenida en la etapa
(o iteración) (i − 1), la nueva aproximación en la etapa i se obtiene
de:
xi+1 = xi + λui
(1)
donde λ es una longitud de paso (valor escalar), ui es un vector
aleatorio unitario generado en la i-ésima etapa.
Clase No. 7
2007
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de la Caminata Aleatoria
Algoritmo
Paso 1:
Paso 2:
Paso 3:
Paso 4:
Proporcionar punto inicial x1 , una
longitud inicial de paso suficientemente grande λ, una
longitud de paso mı́nimo permisible y un
máximo número permisible de iteraciones N
Calcular f1 = f (x1 )
Hacer i = 1
Generar n números aleatorios (n = número de variables
de decisión) r1 , r2 , . . . , rn , cada uno en el intervalo [−1, 1] y
formular el vector unitario
 u:
u=
Clase No. 7
1
1
2 +r 2 +...+r 2 ) 2
(r1
n
2

r1



 r2





.
.
.
rn










2007
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de la Caminata Aleatoria
Algoritmo
Las direcciones generadas con esta ecuación, se espera que tengan
un sesgo hacia las diagonales de un hipercubo unitario.
Para evitar este sesgo, se calcula la longitud del vector:
1
2)2
R = (r12 + r22 + . . . + rn
y los números aleatorios generados (r1 , r2 ,. . .,rn ) son aceptables
sólo si R ≤ 1, pero son desechados si R > 1. Si los números aleatorios
son aceptados, el vector no sesgado de números aleatorios u está dado
por la expresión antes indicada.
Paso 5: Calcular el nuevo vector y el valor correspondiente de la función:
x = xi + λu; f = f (x)
Paso 6: IF f < f1 THEN x1 = x; f1 = f . GOTO Paso 3.
ELSE GOTO Paso 7.
Clase No. 7
2007
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de la Caminata Aleatoria
Algoritmo
Paso 7:
Paso 8:
Paso 9:
Clase No. 7
IF i ≤ N THEN i = i + 1. GOTO Paso 4.
ELSE GOTO Paso 8.
Calcular la nueva longitud de paso reducida como λ = λ/2.
IF λ ≤ THEN GOTO Paso 9.
ELSE GOTO Paso 4.
Detener el procedimiento y reportar xopt = x1 , fopt = f1 .
2007
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de la Caminata Aleatoria
Algunas de las ventajas de los métodos de búsqueda aleatoria son
las siguientes:
Estos métodos funcionan aunque la función objetivo sea
discontinua y no diferenciable en alguno de sus puntos.
Estos métodos pueden usarse para encontrar el mı́nimo global
cuando la función objetivo posee varios mı́nimos relativos.
Clase No. 7
2007
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de la Caminata Aleatoria
Estos métodos son aplicables cuando otros métodos fallan
debido a dificultades locales tales como funciones con formas
determinadas y regiones de búsqueda difı́ciles de explorar.
Aunque estos métodos no son muy eficientes, pueden usarse en
las etapas iniciales de la optimización para detectar la región
donde es más probable encontrar el mı́nimo global. Una vez
localizada esta región, puede usarse una técnica más eficiente
para ubicar con mayor precisión el mı́nimo global.
Clase No. 7
2007
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
El Método de Búsqueda S 2 o Simplex
Este es un ingenioso método de búsqueda propuesto por Spendley,
Hext y Himsworth en 1962 y posteriormente mejorado por Nelder y
Mead en 1965.
Es importante hacer notar que este método no tiene relación
alguna con el método simplex que se usa en programación lineal.
La similitud del nombre es, sin embargo, desafortunada, pues suele
prestarse a confusiones.
Clase No. 7
2007
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
El Método de Búsqueda S 2 o Simplex
El método de Spendley, Hext y Himsworth se basa en la
observación de que un diseño experimental de primer orden
requiere el menor número de puntos en el denominado simplex
regular. En N dimensiones, un simplex regular es un polihedro
compuesto de N + 1 puntos equidistantes, los cuales forman sus
vértices. Por ejemplo, un triángulo equilátero es un simplex en dos
dimensiones; un tetrahedro es un simplex en tres dimensiones.
Clase No. 7
2007
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
El Método de Búsqueda S 2 o Simplex
La principal propiedad del simplex empleado por el algoritmo es
que puede generarse un nuevo simplex sobre cualquier cara del
simplex previo, proyectando cualquier vértice elegido en una
distancia apropiada a través del centroide de los vértices restantes
del viejo simplex. El nuevo simplex se forma entonces
reemplazando el viejo vértice por el punto proyectado que se acaba
de generar. De esta forma, cada nuevo simplex se genera con una
sola evaluación de la función objetivo.
Clase No. 7
2007
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
El Método de Búsqueda S 2 o Simplex
La siguiente figura ilustra el proceso para 2 dimensiones:
Clase No. 7
2007
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
El Método de Búsqueda S 2 o Simplex
En el método de búsqueda simplex, el número de puntos en el
punto inicial es mucho menor que el del método de operación
evolutiva (EVOP). Esto reduce el número de evaluaciones de la
función objetivo que se requieren a cada iteración.
Clase No. 7
2007
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
El Método de Búsqueda S 2 o Simplex
Con N variables, se usan sólo (N + 1) puntos en el simplex inicial.
Aunque existen algunas guı́as de diseño para elegir el simplex
inicial, lo más importante es tomar en cuenta que el simplex inicial
no debe formar un hipercubo (N -dimensional) de volumen cero.
Por tanto, en una función con 2 variables, los 3 puntos elegidos no
deben yacer a lo largo de una recta. Similarmente, en una función
con 3 variables, los 4 puntos del simplex inicial no deben yacer
sobre un plano.
Clase No. 7
2007
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
El Método de Búsqueda S 2 o Simplex
A cada iteración, 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 búsqueda del peor punto en el
simplex. La orientación depende de los valores relativos de la
función en el simplex.
Clase No. 7
2007
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
El Método de Búsqueda S 2 o Simplex
Pueden ocurrir cuatro situaciones diferentes dependiendo de los
valores de la función:
Clase No. 7
2007
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
El Método de Búsqueda S 2 o Simplex
Primero, se determina el centroide (xc ) 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 . La
operación de reflexión se ilustra en el inciso (a) de la figura del
acetato anterior.
Clase No. 7
2007
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
El Método de Búsqueda S 2 o Simplex
Si el valor de la función en este punto es mejor que el mejor punto
en el simplex, se considera que la reflexión ha llevado al simplex a
una buena región del espacio de búsqueda. Por lo tanto, se efectúa
una expansión a lo largo de la dirección del centroide al punto
reflejado (esto se muestra en el inciso (b) de la figura antes
mencionada).
Clase No. 7
2007
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
El Método de Búsqueda S 2 o Simplex
La cantidad de expansión se controla mediante el factor γ. Por otro
lado, si el valor de la función en el punto reflejado es peor que el
peor punto en el simplex, se considera que la reflexión condujo al
simplex a una mala región del espacio de búsqueda. En este caso, se
realiza una contracción en la dirección del centroide al punto
reflejado (esto se muestra en el inciso (c) de la figura antes citada).
Clase No. 7
2007
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
El Método de Búsqueda S 2 o Simplex
La cantidad de contracción es controlada por un factor β (se usa un
valor negativo de β). Finalmente, si el valor de la función en el
punto reflejado es mejor que el peor punto y peor que el segundo
peor punto en el simplex, se realiza una contracción con un valor
positivo de β (esto se muestra en el inciso (d) de la figura antes
citada).
Clase No. 7
2007
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
El Método de Búsqueda S 2 o Simplex
El escenerio por omisión, es el punto mismo reflejado. El nuevo
punto obtenido reemplaza al peor punto en el simplex y el
algoritmo continúa con el nuevo simplex. La variante del método de
búsqueda simplex que hemos descrito fue propuesta por Nelder y
Mead (1965).
Clase No. 7
2007
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
El Método de Búsqueda S 2 o Simplex
Algoritmo
Paso 1: Elegir γ > 1, β ∈ (0, 1) y una tolerancia .
Paso 2: Encontrar xh (el peor punto), xl (el mejor punto),
y xg (el segundo peor punto). Calcular:
PN +1
1
x (centroide).
xc = N
i=1,i6=h i
Paso 3:
Calcular el punto reflejado xr = 2xc − xh
Hacer xnew = xr
IF f (xr ) < f (xl ) THEN xnew = (1 + γ)xc − γxh (expansión)
ELSE IF f (xr ) ≥ f (xh ) THEN xnew = (1 − β)xc + βxh (contracción)
ELSE IF f (xg ) < f (xr ) < f (xh )
THEN xnew = (1 + β)xc − βxh (contracción)
Calcular f (xnew ) y reemplazar xh por xnew
Calcular Q =
Paso 4:
Clase No. 7
hP
N +1
i=1
(f (xi )−f (xc ))
N +1
2
i 12
IF Q ≤ THEN Terminar
ELSE GOTO Paso 2.
2007
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
El Método de Búsqueda S 2 o Simplex
Para crear un simplex inicial se puede usar el siguiente
procedimiento:
1.
Proporcionar un punto inicial x(0)
2.
Proporcionar un factor de escalamiento α.
3.
Para obtener los N vértices restantes del simplex en N
dimensiones, usar:
(i)
xj

 x(0) + δ
1
j
=
 x(0) + δ2
j
para i = 1, 2, . . . , N .
Clase No. 7
IF j = i
IF j 6= i
(2)
2007
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
El Método de Búsqueda S 2 o Simplex
Los incrementos δ1 y δ2 dependen sólo de N y del factor de
escalamiento α:
"
#
1
2
(N + 1) + N − 1
√
α
δ1 =
N 2
"
1
2
#
(N + 1) − 1
√
δ2 =
α
N 2
(3)
(4)
Nótese que el valor elegido de α dependerá del problema a
resolverse. Elegir α = 1, nos lleva a un simplex regular con lados de
longitud unitaria.
Clase No. 7
2007
Descargar