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. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de las Direcciones Conjugadas de Powell
Si la función a resolverse con este método es cuadrática, se
requieren exactamente (N − 1) ciclos a través de los pasos del 2 al
4. Puesto que a cada iteración de este algoritmo se requieren
(N + 1) búsquedas unidireccionales, son necesarias (N 2 − 1)
búsquedas en total para encontrar las N direcciones conjugadas.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de las Direcciones Conjugadas de Powell
Posteriormente, se requiere una búsqueda unidireccional final para
obtener el punto mı́nimo. Por tanto, para encontrar el mı́nimo de
una función objetivo cuadrática, el método de las direcciones
conjugadas requiere un total de N 2 búsquedas unidireccionales.
Para otro tipo de funciones, el algoritmo puede requerir más
iteraciones.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de las Direcciones Conjugadas de Powell
Una dificultad con este algoritmo es que, debido a que se usan
métodos aproximados para estimar los mı́nimos en cada dirección,
el error acumulado de las diferentes búsquedas realizadas puede
hacer que nuestro resultado final no sea exacto. Por ende, las
direcciones resultantes pueden no ser exactamente conjugadas entre
sı́. Para calcular el valor de esta desviación, suele verificarse la
independencia lineal de las direcciones conjugadas.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de las Direcciones Conjugadas de Powell
Si se encontrara que las direcciones de búsqueda no son linealmente
independientes, entonces podrı́a crearse un conjunto
completamente nuevo de direcciones de búsqueda en el punto
actual. Para hacer más simple la implementación, pueden usarse las
direcciones coordenadas nuevamente como direcciones de búsqueda
en el punto actual.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de las Direcciones Conjugadas de Powell
Como puede verse en el algoritmo, este método puede ser bastante
costoso (computacionalmente hablando), debido a la cantidad de
búsquedas unidireccionales necesarias por cada iteración. En
términos de uso de memoria, el algoritmo requiere almacenar
(N + 1) puntos y N direcciones de búsqueda a cualquier etapa de la
iteración.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de las Direcciones Conjugadas de Powell
A pesar su ineficiencia, toda la evidencia indica que el método de
Powell (con el chequeo de dependencia lineal) es al menos tan
confiable como cualquier otro método de búsqueda directa y
usualmente mucho más eficiente. Por tanto, si es permisible utilizar
un algoritmo sofisticado, éste suele ser el método que se recomienda
adoptar.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Métodos Indirectos de Búsqueda
(Métodos de Gradiente)
El gradiente de una función es un vector de n componentes dado
por:



∂f /∂x1




 ∂f /∂x2
∇f =
..


.




 ∂f /∂xn
Clase No. 10








(1)







2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Métodos Indirectos de Búsqueda
(Métodos de Gradiente)
El gradiente tiene una propiedad muy importante. Si nos movemos
a lo largo de la dirección del gradiente desde cualquier punto en un
espacio n-dimensional, el valor de la función se incrementa a la
mayor velocidad posible. Por tanto, la dirección del gradiente es
denominada dirección del ascenso empinado.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Métodos Indirectos de Búsqueda
(Métodos de Gradiente)
Desafortunadamente, la dirección del ascenso empinado es una
propiedad local y no una global. Esto se ilustra con la figura
siguiente:
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Métodos Indirectos de Búsqueda
(Métodos de Gradiente)
En la figura del acetato anterior, los vectores de gradiente ∇f
evaluado en los puntos 1, 2, 3 y 4, se encuentran en las direcciones
1-1’, 2-2’, 3-3’ y 4-4’, respectivamente. Por lo tanto, el valor de de
la función se incrementa a mayor velocidad en la dirección 1-1’ en
el punto 1, pero no en el punto 2. Análogamente, el valor de la
función se incrementa a una mayor velocidad en la dirección 2-2’
(3-3’) en el punto 2(3), pero no en el punto 3(4).
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Métodos Indirectos de Búsqueda
(Métodos de Gradiente)
En otras palabras, la dirección del ascenso empinado generalmente
varı́a de punto a punto, y si efectuamos movimientos infinitamente
pequeños a lo largo de la dirección del ascenso empinado, la ruta
será una curva como la delineada por 1-2-3-4 en la figura antes
indicada.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Métodos Indirectos de Búsqueda
(Métodos de Gradiente)
Puesto que el vector de gradiente representa la dirección del
ascenso empinado, el negativo del vector de gradiente denota la
dirección de descenso empinado. Por tanto, cualquier método que
haga uso del vector de gradiente puede esperarse que obtenga el
mı́nimo más rápido que uno que no lo use. Todos los métodos de
descenso hacen uso del vector de gradiente, ya sea de forma directa
o indirecta, para encontrar las direcciones de búsqueda.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Métodos Indirectos de Búsqueda
(Métodos de Gradiente)
Evaluación del Gradiente:
La evaluación del gradiente requiere el cálculo de las derivadas
parciales ∂f /∂xi , i = 2, . . . , n. Hay 3 situaciones en las cuales la
evaluación del gradiente presenta problemas:
1. La función es diferenciable en todos los puntos, pero el cálculo
de las componentes del gradiente ∂f /∂xi es impráctica o
imposible.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Métodos Indirectos de Búsqueda
(Métodos de Gradiente)
2. Las expresiones para las derivadas parciales ∂f /∂xi pueden
obtenerse, pero requieren mucho tiempo de cómputo para su
evaluación.
3. El gradiente ∇f no está definido en todos los puntos.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Métodos Indirectos de Búsqueda
(Métodos de Gradiente)
En el primer caso, podemos usar las fórmulas de diferencias finitas
para calcular numéricamente las derivadas de primer y segundo
orden:
(t)
(t)
(t)
(t)
∂f (x) f (xi + ∆xi ) − f (xi − ∆xi )
=
(t)
∂xi x(t)
2∆x
(2)
i
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Métodos Indirectos de Búsqueda
(Métodos de Gradiente)
(t)
(t)
(t)
(t)
(t)
∂ f (x) f (xi + ∆xi ) − 2f (xi ) + f (xi − ∆xi )
=
2
2
(t)
∂ xi x(t)
(∆x )2
2
(3)
i
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Métodos Indirectos de Búsqueda
(Métodos de Gradiente)
Puede verse que, para evaluar numéricamente la primera derivada
con respecto a cada variable, se requieren 2 evaluaciones de la
función objetivo. Para evaluar numéricamente la segunda derivada
con respecto a cada variable, se requieren 3 evaluaciones de la
función objetivo.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Métodos Indirectos de Búsqueda
(Métodos de Gradiente)
En la práctica, debe tenerse cuidado al elegir el valor de ∆i . Si este
valor es muy pequeño, la diferencia entre los diferentes puntos en
los cuales se evalúa la función puede ser muy pequeña y podrı́an
predominar los errores de redondeo. Por otra parte, si ∆xi es muy
grande, el error de truncamiento podrı́a predominar en el cálculo
del gradiente.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Métodos Indirectos de Búsqueda
(Métodos de Gradiente)
En el segundo caso (de los 3 antes mencionados), el uso de fórmulas
de diferencias finitas se preferirá siempre y cuando el cálculo del
gradiente exacto requiera más tiempo de cómputo.
En el tercer caso, no podemos usar las fórmulas de diferencias
finitas puesto que el gradiente no está definido en todos los puntos.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Métodos Indirectos de Búsqueda
(Métodos de Gradiente)
Por ejemplo, consideremos el ejemplo de la figura siguiente:
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Métodos Indirectos de Búsqueda
(Métodos de Gradiente)
Si usamos la fórmula de diferencias finitas que vimos antes para
evaluar la derivada df /dx en xm , obtenemos un valor de α1 para
una ∆x1 y un valor de α2 para una ∆x2 . Puesto que en realidad la
derivada no existe en el punto xm , el uso de las fórmulas de
diferencias finitas podrı́a hacer que nuestra implementación se
colapsara en el proceso de minimización.
En tales casos, la alternativa más viable es usar un método de
búsqueda directa de los que estudiamos anteriormente.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Descenso Empinado
(Método de Cauchy)
Este método fue propuesto originalmente por Augustin-Louis
Cauchy en 1847 para resolver sistemas de ecuaciones lineales.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Descenso Empinado
(Método de Cauchy)
El método de Cauchy se basa en el uso del gradiente negativo
−∇f . Puesto que esta dirección nos da el descenso máximo en los
valores de la función, el método se conoce también como de
descenso empinado. Esto se ilustra en la figura siguiente:
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Descenso Empinado
(Método de Cauchy)
A cada iteración de este método se calcula el gradiente y se efectúa
una búsqueda unidireccional en el valor negativo de la dirección
definida por dicho gradiente, a fin de encontrar el punto mı́nimo a
lo largo de dicha dirección. El siguiente punto se obtiene usando:
X (t+1) = X (t) − λ(t) ∇f (X (t) )
(4)
donde nos interesa obtener λ(t) conociendo X (t) y ∇f (X (t) ).
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Descenso Empinado
(Método de Cauchy)
El punto mı́nimo se vuelve luego el punto actual y la búsqueda
continúa a partir de él. El algoritmo continúa hasta que el
gradiente se hace cero o suficientemente pequeño. Algo interesante
de este método es que aunque garantiza que hay mejoras en el valor
de la función que se obtenga a cada iteración, en la práctica no es
un método muy efectivo porque la dirección de descenso empinado
es una propiedad local.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Descenso Empinado
(Método de Cauchy)
Algoritmo
Paso 1: Elegir un punto inicial X (0) y dos parámetros de terminación 1 y 2
Hacer k = 0
Paso 2: Calcular ∇f (X (k) )
Paso 3: IF ||∇f (X (k) )|| ≤ 1 THEN Terminar
ELSE GOTO Paso 4.
Paso 4: Efectuar una búsqueda unidireccional para encontrar λ(k) y calcular:
X (k+1) = X (k) − λ(k) ∇f (X (k) ) tal que f (X (k+1) ) sea mı́nima.
Para efectuar la búsqueda unidireccional puede usarse la tolerancia 2
directamente en el método de minimización adoptado.
Alternativamente,
puede checarse si |∇f (X (k+1) ) · ∇f (X (k) )| ≤ 2 .
Paso 5:
f (X (k+1) )−f (X (k) ) ¿Es ≤ 1 ? Si es ası́, Terminar.
f (X (k) )
ELSE k = k + 1. GOTO Paso 2.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Criterios de Convergencia
Para terminar el proceso iterativo del método de Cauchy, Rao
sugiere utilizar cualquiera de los 3 criterios siguientes de
convergencia:
1. Cuando el cambio en el valor de la función en dos iteraciones
consecutivas es muy pequeño:
f (x(k+1) ) − f (x(k) ) ≤ 1
(k)
f (x )
Clase No. 10
(5)
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Criterios de Convergencia
2. Cuando las derivadas parciales (componentes del gradiente) de
f son suficientemente pequeñas:
∂f ∂xi ≤ 2 ,
Clase No. 10
i = 1, 2, . . . , n
(6)
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Criterios de Convergencia
3. Cuando el cambio en las variables de diseño en dos iteraciones
consecutivas es suficientemente pequeño:
(k+1)
− x(k) ≤ 3
x
Clase No. 10
(7)
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Gradiente Conjugado
(Fletcher-Reeves)
Las propiedades de convergencia del método del descenso empinado
pueden mejorarse de manera significativa si se le modifica para
convertirlo en un método de gradiente conjugado (el cual puede ser
considerado como un método de direcciones conjugadas que
involucra el uso del gradiente de la función).
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Gradiente Conjugado
(Fletcher-Reeves)
Vimos anteriormente las condiciones para que un conjunto de
direcciones s(k) (k = 1, 2, . . . , r ≤ N ) y una matriz simétrica C de
N × N sean conjugadas. Además, hemos examinado estas
direcciones como transformaciones en la forma de una suma de
cuadrados perfectos para una función cuadrática.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Gradiente Conjugado
(Fletcher-Reeves)
En nuestro procedimiento previo concluimos que el buscar en cada
una de las N direcciones C conjugadas en turno, producirı́a el
mı́nimo para una cuadrática N -dimensional. Además, generamos el
conjunto de direcciones conjugadas usando solamente los valores de
la función objetivo.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Gradiente Conjugado
(Fletcher-Reeves)
En el método que veremos ahora, se usa una aproximación
cuadrática a f (x) junto con información del gradiente para generar
las direcciones conjugadas. Además, se insistirá en el uso del
descenso a cada iteración.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Gradiente Conjugado
(Fletcher-Reeves)
Consideremos dos puntos distintos cualquiera en el espacio de
diseño x(0) y x(1) , y el gradiente de la función objetivo cuadrática
que pasa por estos puntos:
∇f (x) = ∇q(x) = Cx + b = g(x)
(8)
donde, por conveniencia, usamos el sı́mbolo g(x) para el gradiente.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Gradiente Conjugado
(Fletcher-Reeves)
Por tanto:
Clase No. 10
g(x(0) ) = Cx(0) + b
(9)
g(x(1) ) = Cx(1) + b
(10)
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Gradiente Conjugado
(Fletcher-Reeves)
Ahora formamos el cambio en el gradiente de x(0) a x(1) :
∆g(x) = g(x(1) ) − g(x(0) ) = C(x(1) − x(0) )
(11)
∆g(x) = C∆x
(12)
la cual es la propiedad que deben explotar las cuadráticas.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Gradiente Conjugado
(Fletcher-Reeves)
En 1952, Hestenes y Stiefel publicaron una técnica iterativa
eficiente para resolver sistemas de ecuaciones lineales y que es
básicamente lo que hoy se conoce como el método de los gradientes
conjugados. Hestenes y Stiefel veı́an el conjunto de ecuaciones
lineales como elementos del vector de gradiente de una cuadrática
que buscaban minimizar.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Gradiente Conjugado
(Fletcher-Reeves)
Posteriormente, Fletcher y Reeves (1964) demostraron la
convergencia cuadrática de este método (es decir, que el método
termina en aproximadamente N pasos cuando se aplica a una
función cuadrática y se usa aritmética exacta), y lo extendieron a
funciones no cuadráticas.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Gradiente Conjugado
(Fletcher-Reeves)
Fried y Metzler (1978) han demostrado la utilidad de este método
cuando se aplica a conjuntos lineales resultantes de discretizaciones
con elementos finitos donde la matriz de coeficientes es dispersa
pero no de forma ordenada. Dichos autores enfatizan la facilidad de
implementación de este método en comparación con otras técnicas
usadas más comúnmente.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Gradiente Conjugado
(Fletcher-Reeves)
Tanto en el libro de Rao (1996) como en el de Reklaitis se muestra
la derivación del método. En este curso nos limitaremos a estudiar
el algoritmo correspondiente.
Sin embargo, es importante hacer notar la idea general del método.
Fletcher y Reeves (1964) sugirieron las siguientes direcciones
conjugadas de búsqueda y demostraron que s(k) es conjugada con
respecto a todas las direcciones previas de búsqueda s(i) para
i = 1, 2, . . . , (k − 1):
(k)
s
(k)
= −∇f (x
||∇f (x(k) )||2 (k−1)
s
)+
(k−1)
2
||∇f (x
)||
(13)
con s(0) = −∇f (x(0) ).
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Gradiente Conjugado
(Fletcher-Reeves)
Nótese que esta ecuación recursiva para la dirección de búsqueda
s(k) requiere sólo de derivadas de primer orden en los puntos x(k) y
x(k−1) . Se presupone que la dirección inicial de búsqueda s(0) es la
dirección de descenso empinado en el punto inicial. Posteriormente,
las direcciones subsecuentes de búsqueda se obtienen usando la
expresión recursiva arriba indicada.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Gradiente Conjugado
(Fletcher-Reeves)
Algoritmo
Paso 1: Elegir un punto inicial X (0) y tolerancias 1 , 2 y 3
Paso 2: Encontrar ∇f (X (0) ) y hacer: s(0) = −∇f (X (0) )
Paso 3: Encontrar λ(0) tal que: f (X (0) + λ(0) s(0) ) se minimice
con una tolerancia 1 .
Hacer X (1) = X (0) + λ(0) s(0) y k = 1
Calcular ∇f (X (1) )
s(k)
=
−∇f (X (k) )
Paso 4:
Hacer:
Paso 5:
Encontrar λ(k) tal que:
f (X (k) + λ(k) s(k) ) sea mı́nima con una tolerancia 1
Hacer X (k+1) = X (k) + λ(k) s(k)
Paso 6:
¿Es
||X (k+1) −X (k) ||
||X (k) ||
+
||∇f (X (k) )||2
s(k−1)
(k−1)
2
||∇f (X
)||
≤ 2 o ||∇f (X (k+1) )|| ≤ 3 ?
Si es ası́, terminar.
ELSE k = k + 1. GOTO Paso 4.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Gradiente Conjugado
(Fletcher-Reeves)
Como indicamos anteriormente, debido a su uso de direcciones
conjugadas de búsqueda, el método de Fletcher-Reeves debiera
converger en N iteraciones o menos para el caso de una función
cuadrática. Sin embargo, para cuadráticas mal condicionadas
(aquellas cuyos contornos son altamente excéntricos y
distorsionados), el método puede requerir mucho más de N
iteraciones para converger.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Gradiente Conjugado
(Fletcher-Reeves)
La razón de esto es el efecto acumulativo de los errores de
redondeo. Para evitar estos problemas, se recomienda reinicializar
el método periódicamente después de una cierta cantidad de pasos,
tomando como nueva dirección de búsqueda a la dirección de
descenso empinado.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Gradiente Conjugado
(Fletcher-Reeves)
A pesar de sus limitaciones, el método de Fletcher-Reeves es muy
superior al método del descenso empinado y a los métodos de
búsqueda mediante patrones. Sin embargo, es menos eficiente que el
método de Newton que veremos más adelante.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Gradiente Conjugado
(Fletcher-Reeves)
Miele y Cantrell (1969) propusieron una extensión del método de
Fletcher-Reeves en la que se usa la siguiente expresión:
X (k+1)
n
o
= X (k) + λ(k) −∇f (X (k) ) + γ (k) s(X (k−1) )
(14)
donde λ(k) y γ (k) se buscan directamente a cada iteración.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Gradiente Conjugado
(Fletcher-Reeves)
A este método se le conoce como del gradiente con memoria y
es bastante más eficiente que el de Fletcher-Reeves en términos del
número que iteraciones, pero requiere más evaluaciones de la
función objetivo y del gradiente. Por tanto, este método es
recomendable sólo cuando las evaluaciones de la función objetivo y
del gradiente no tienen un costo computacional muy elevado.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Gradiente Conjugado
(Fletcher-Reeves)
Una limitación importante del método de Fletcher-Reeves es que se
asumen una función objetivo cuadrática y búsquedas lineales
exactas. Se han propuesto, sin embargo, diversos métodos que
permiten relajar una o las dos limitantes antes descritas. Por
ejemplo, el método de Polak-Ribiere (1969) demanda búsquedas
lineales exactas pero asume un modelo más general para la función
objetivo.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Gradiente Conjugado
(Fletcher-Reeves)
Se han propuesto otros métodos similares en los que se presuponen
búsquedas lineales exactas pero se emplea un modelo de función
objetivo más general que el cuadrático. Por ejemplo, están los
métodos de Davison y Wong (1975), y el de Boland et al. (1979).
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Gradiente Conjugado
(Fletcher-Reeves)
En 1972, Crowder y Wolfe y posteriormente Powell, demostraron
que los métodos de gradiente conjugado estaban condenados a una
tasa lineal de convergencia en la ausencia de reinicializaciones
periódicas.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Gradiente Conjugado
(Fletcher-Reeves)
Una reinicialización se define como un procedimiento especial que
interrumpe la generación normal de direcciones de búsqueda como
el requerido para generar s(X (0) ). Existen varias razones por las
cuales uno podrı́a esperar que un algoritmo requiera una
reinicialización para ser robusto. La más obvia es evitar la
generación de una dirección que sea dependiente.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Gradiente Conjugado
(Fletcher-Reeves)
Powell (1977) demostró que el método de Polak-Ribiere también
tiene una tasa lineal de convergencia si no se usa reinicialización,
pero dicho método es superior al de Fletcher-Reeves para funciones
generales y presenta también menos sensibilidad a las búsquedas
lineales inexactas.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Gradiente Conjugado
(Fletcher-Reeves)
La formulación de procedimientos de reinicialización eficientes y el
desarrollo de métodos con mayor tolerancia a las búsquedas lineales
inexactas sigue siendo un área activa de investigación.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Gradiente Conjugado
(Fletcher-Reeves)
Beale (1972) proporciona un procedimiento de gradiente conjugado
similar al método de Fletcher-Reeves, pero en el cual se permite la
reinicialización sin el uso de la dirección de gradiente. Beale
muestra cómo puede usarse la dirección previa para la
reinicialización a fin de reducir el esfuerzo computacional total para
las funciones que requieren muchas reinicializaciones.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Gradiente Conjugado
(Fletcher-Reeves)
Powell (1977) examina cuidadosamente la estrategia de Beale y
otras técnicas de reinicialización y sugiere que se efectúe una
reinicialización a cada N iteraciones o cuando:
|g(X (k) )g(X (k−1) )| ≥ 0,2||g(X (k) )||2
Clase No. 10
(15)
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Gradiente Conjugado
(Fletcher-Reeves)
Powell demuestra que la estrategia de reinicialización de Beale
(usando el criterio de la ecuación (11)) funciona igualmente bien
con el método de Fletcher-Reeves y con el de Polak-Ribiere y
proporciona resultados numéricos que sugieren la superioridad de
este último.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Gradiente Conjugado
(Fletcher-Reeves)
Shanno (1978) ha estudiado la relación de las búsquedas lineales
inexactas y las estrategias de reinicialización con la eficiencia de los
métodos de gradiente conjugado.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Gradiente Conjugado
(Fletcher-Reeves)
Shanno muestra que la estrategia de reinicialización de Beale
usando el criterio de reinicialización de Powell permite un
decremento significativo en la precisión requerida por las búsquedas
lineales y, por tanto, incrementa de manera significativa la
eficiencia computacional del método del gradiente conjugado.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método del Gradiente Conjugado
(Fletcher-Reeves)
Shanno también proporciona resultados numéricos que indican la
superioridad del método de Polak-Ribiere con reinicialización y
búsquedas lineales inexactas.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de Newton
Vimos que el método de Cauchy es la mejor estrategia local basada
en gradientes, pero es importante hacer ver que el gradiente
negativo apunta directamente hacia el mı́nimo sólo cuando los
contornos de f son circulares y, por tanto, el gradiente negativo no
es una buena dirección global de búsqueda (en general) para
funciones no lineales.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de Newton
El método de Cauchy emplea aproximaciones lineales sucesivas a la
función objetivo y requiere calcular tanto el valor de la función
objetivo como el del gradiente a cada iteración. Esto nos lleva a
considerar el uso de información de orden superior, o sea, las
segundas derivadas, en un esfuerzo por construir una estrategia de
búsqueda más global.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de Newton
Consideremos la expansión de Taylor de la función objetivo:
1
f (X) = f (X (k) ) + ∇f (X (k) )T ∆x + ∆xT ∇2 f (X (k) )∆x + O(∆x3 )
2
(16)
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de Newton
Formamos una aproximación cuadrática a f (x) eliminando los
términos de orden mayor o igual a 3:
1
(k)
(k)
(k) T
¯
f (X; X ) = f (X ) + ∇f (X ) ∆x + ∆xT ∇2 f (X (k) )∆x (17)
2
donde usamos f¯(X; X (k) ) para denotar una función de
aproximación construida en X (k) , la cual es, ası́ mismo, una
función de X.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de Newton
Ahora usaremos esta aproximación cuadrática de f (x) para formar
una secuencia iterativa, forzando a X (k+1) , que es el siguiente
punto en la secuencia, a ser un punto donde el gradiente de la
aproximación es cero.
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de Newton
Por tanto:
∇f (X; X (k) ) = ∇f (X (k) ) + ∇2 f (X (k) )∆x = 0
(18)
h
i−1
∇f (X (k) )
∆x = − ∇2 f (X (k) )
(19)
y
Clase No. 10
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de Newton
Tenemos entonces que este esquema de aproximaciones cuadráticas
sucesivas produce el Método de Newton:
X (k+1)
Clase No. 10
h
i−1
∇f (X (k) )
= X (k) − ∇2 f (X (k) )
(20)
2009
Optimización en Ingenierı́a
Dr. Carlos A. Coello Coello
Método de Newton
Algoritmo
Paso 1: Elegir un punto inicial X (0) y dos parámetros de terminación 1 y 2
Hacer k = 0
Paso 2: Calcular ∇f (X (k) )
Paso 3: IF ||∇f (X (k) )|| ≤ 1 THEN Terminar
ELSE GOTO Paso 4.
Paso 4: Efectuar una búsqueda unidireccional para encontrar λ(k) y calcular:
X (k+1)
Paso 5:
λ(k)
−1
∇2 f (X (k) )
=
−
∇f (X (k) )
tal que f (X (k+1) ) sea mı́nima.
Para efectuar la búsqueda unidireccional puede usarse la tolerancia 2
directamente
en el método
de minimización adoptado.
¿Es
X (k)
f (X (k+1) )−f (X (k) ) ≤ ? Si es ası́, Terminar.
1
f (X (k) )
ELSE k = k + 1. GOTO Paso 2.
Clase No. 10
2009
Descargar