Optimización en Ingenier´ıa

68
Optimizaci´ on en Ingenier´ ıa Dr. Carlos A. Coello Coello Optimizaci´ on en Ingenier´ ıa Dr. Carlos A. Coello Coello Departamento de Computaci´ on CINVESTAV-IPN Av. IPN No. 2508 Col. San Pedro Zacatenco exico, D.F. 07300 email: [email protected] Clase No. 10 2009

Transcript of Optimización en Ingenier´ıa

Page 1: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Optimizacion en Ingenierıa

Dr. Carlos A. Coello Coello

Departamento de Computacion

CINVESTAV-IPN

Av. IPN No. 2508

Col. San Pedro Zacatenco

Mexico, D.F. 07300

email: [email protected]

Clase No. 10 2009

Page 2: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo de las Direcciones Conjugadas de Powell

Si la funcion a resolverse con este metodo es cuadratica, serequieren exactamente (N − 1) ciclos a traves de los pasos del 2 al4. Puesto que a cada iteracion de este algoritmo se requieren(N + 1) busquedas unidireccionales, son necesarias (N2 − 1)busquedas en total para encontrar las N direcciones conjugadas.

Clase No. 10 2009

Page 3: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo de las Direcciones Conjugadas de Powell

Posteriormente, se requiere una busqueda unidireccional final paraobtener el punto mınimo. Por tanto, para encontrar el mınimo deuna funcion objetivo cuadratica, el metodo de las direccionesconjugadas requiere un total de N2 busquedas unidireccionales.Para otro tipo de funciones, el algoritmo puede requerir masiteraciones.

Clase No. 10 2009

Page 4: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo de las Direcciones Conjugadas de Powell

Una dificultad con este algoritmo es que, debido a que se usanmetodos aproximados para estimar los mınimos en cada direccion,el error acumulado de las diferentes busquedas realizadas puedehacer que nuestro resultado final no sea exacto. Por ende, lasdirecciones resultantes pueden no ser exactamente conjugadas entresı. Para calcular el valor de esta desviacion, suele verificarse laindependencia lineal de las direcciones conjugadas.

Clase No. 10 2009

Page 5: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo de las Direcciones Conjugadas de Powell

Si se encontrara que las direcciones de busqueda no son linealmenteindependientes, entonces podrıa crearse un conjuntocompletamente nuevo de direcciones de busqueda en el puntoactual. Para hacer mas simple la implementacion, pueden usarse lasdirecciones coordenadas nuevamente como direcciones de busquedaen el punto actual.

Clase No. 10 2009

Page 6: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo de las Direcciones Conjugadas de Powell

Como puede verse en el algoritmo, este metodo puede ser bastantecostoso (computacionalmente hablando), debido a la cantidad debusquedas unidireccionales necesarias por cada iteracion. Enterminos de uso de memoria, el algoritmo requiere almacenar(N + 1) puntos y N direcciones de busqueda a cualquier etapa de laiteracion.

Clase No. 10 2009

Page 7: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo de las Direcciones Conjugadas de Powell

A pesar su ineficiencia, toda la evidencia indica que el metodo dePowell (con el chequeo de dependencia lineal) es al menos tanconfiable como cualquier otro metodo de busqueda directa yusualmente mucho mas eficiente. Por tanto, si es permisible utilizarun algoritmo sofisticado, este suele ser el metodo que se recomiendaadoptar.

Clase No. 10 2009

Page 8: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodos Indirectos de Busqueda

(Metodos de Gradiente)

El gradiente de una funcion es un vector de n componentes dadopor:

∇f =

∂f/∂x1

∂f/∂x2

...

∂f/∂xn

(1)

Clase No. 10 2009

Page 9: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodos Indirectos de Busqueda

(Metodos de Gradiente)

El gradiente tiene una propiedad muy importante. Si nos movemosa lo largo de la direccion del gradiente desde cualquier punto en unespacio n-dimensional, el valor de la funcion se incrementa a lamayor velocidad posible. Por tanto, la direccion del gradiente esdenominada direccion del ascenso empinado.

Clase No. 10 2009

Page 10: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodos Indirectos de Busqueda

(Metodos de Gradiente)

Desafortunadamente, la direccion del ascenso empinado es unapropiedad local y no una global. Esto se ilustra con la figurasiguiente:

Clase No. 10 2009

Page 11: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodos Indirectos de Busqueda

(Metodos de Gradiente)

En la figura del acetato anterior, los vectores de gradiente ∇fevaluado en los puntos 1, 2, 3 y 4, se encuentran en las direcciones1-1’, 2-2’, 3-3’ y 4-4’, respectivamente. Por lo tanto, el valor de dela funcion se incrementa a mayor velocidad en la direccion 1-1’ enel punto 1, pero no en el punto 2. Analogamente, el valor de lafuncion se incrementa a una mayor velocidad en la direccion 2-2’(3-3’) en el punto 2(3), pero no en el punto 3(4).

Clase No. 10 2009

Page 12: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodos Indirectos de Busqueda

(Metodos de Gradiente)

En otras palabras, la direccion del ascenso empinado generalmentevarıa de punto a punto, y si efectuamos movimientos infinitamentepequenos a lo largo de la direccion del ascenso empinado, la rutasera una curva como la delineada por 1-2-3-4 en la figura antesindicada.

Clase No. 10 2009

Page 13: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodos Indirectos de Busqueda

(Metodos de Gradiente)

Puesto que el vector de gradiente representa la direccion delascenso empinado, el negativo del vector de gradiente denota ladireccion de descenso empinado. Por tanto, cualquier metodo quehaga uso del vector de gradiente puede esperarse que obtenga elmınimo mas rapido que uno que no lo use. Todos los metodos dedescenso hacen uso del vector de gradiente, ya sea de forma directao indirecta, para encontrar las direcciones de busqueda.

Clase No. 10 2009

Page 14: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodos Indirectos de Busqueda

(Metodos de Gradiente)

Evaluacion del Gradiente:

La evaluacion del gradiente requiere el calculo de las derivadasparciales ∂f/∂xi, i = 2, . . . , n. Hay 3 situaciones en las cuales laevaluacion del gradiente presenta problemas:

1. La funcion es diferenciable en todos los puntos, pero el calculode las componentes del gradiente ∂f/∂xi es impractica oimposible.

Clase No. 10 2009

Page 15: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodos Indirectos de Busqueda

(Metodos de Gradiente)

2. Las expresiones para las derivadas parciales ∂f/∂xi puedenobtenerse, pero requieren mucho tiempo de computo para suevaluacion.

3. El gradiente ∇f no esta definido en todos los puntos.

Clase No. 10 2009

Page 16: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodos Indirectos de Busqueda

(Metodos de Gradiente)

En el primer caso, podemos usar las formulas de diferencias finitaspara calcular numericamente las derivadas de primer y segundoorden:

∂f(x)∂xi

x(t)

=f(x(t)

i + ∆x(t)i )− f(x(t)

i −∆x(t)i )

2∆x(t)i

(2)

Clase No. 10 2009

Page 17: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodos Indirectos de Busqueda

(Metodos de Gradiente)

∂2f(x)∂2x2

i

x(t)

=f(x(t)

i + ∆x(t)i )− 2f(x(t)

i ) + f(x(t)i −∆x(t)

i )

(∆x(t)i )2

(3)

Clase No. 10 2009

Page 18: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodos Indirectos de Busqueda

(Metodos de Gradiente)

Puede verse que, para evaluar numericamente la primera derivadacon respecto a cada variable, se requieren 2 evaluaciones de lafuncion objetivo. Para evaluar numericamente la segunda derivadacon respecto a cada variable, se requieren 3 evaluaciones de lafuncion objetivo.

Clase No. 10 2009

Page 19: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodos Indirectos de Busqueda

(Metodos de Gradiente)

En la practica, debe tenerse cuidado al elegir el valor de ∆i. Si estevalor es muy pequeno, la diferencia entre los diferentes puntos enlos cuales se evalua la funcion puede ser muy pequena y podrıanpredominar los errores de redondeo. Por otra parte, si ∆xi es muygrande, el error de truncamiento podrıa predominar en el calculodel gradiente.

Clase No. 10 2009

Page 20: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodos Indirectos de Busqueda

(Metodos de Gradiente)

En el segundo caso (de los 3 antes mencionados), el uso de formulasde diferencias finitas se preferira siempre y cuando el calculo delgradiente exacto requiera mas tiempo de computo.

En el tercer caso, no podemos usar las formulas de diferenciasfinitas puesto que el gradiente no esta definido en todos los puntos.

Clase No. 10 2009

Page 21: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodos Indirectos de Busqueda

(Metodos de Gradiente)

Por ejemplo, consideremos el ejemplo de la figura siguiente:

Clase No. 10 2009

Page 22: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodos Indirectos de Busqueda

(Metodos de Gradiente)

Si usamos la formula de diferencias finitas que vimos antes paraevaluar la derivada df/dx en xm, obtenemos un valor de α1 parauna ∆x1 y un valor de α2 para una ∆x2. Puesto que en realidad laderivada no existe en el punto xm, el uso de las formulas dediferencias finitas podrıa hacer que nuestra implementacion secolapsara en el proceso de minimizacion.

En tales casos, la alternativa mas viable es usar un metodo debusqueda directa de los que estudiamos anteriormente.

Clase No. 10 2009

Page 23: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Descenso Empinado

(Metodo de Cauchy)

Este metodo fue propuesto originalmente por Augustin-LouisCauchy en 1847 para resolver sistemas de ecuaciones lineales.

Clase No. 10 2009

Page 24: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Descenso Empinado

(Metodo de Cauchy)

El metodo de Cauchy se basa en el uso del gradiente negativo−∇f . Puesto que esta direccion nos da el descenso maximo en losvalores de la funcion, el metodo se conoce tambien como dedescenso empinado. Esto se ilustra en la figura siguiente:

Clase No. 10 2009

Page 25: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Descenso Empinado

(Metodo de Cauchy)

A cada iteracion de este metodo se calcula el gradiente y se efectuauna busqueda unidireccional en el valor negativo de la direcciondefinida por dicho gradiente, a fin de encontrar el punto mınimo alo largo de dicha direccion. 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

Page 26: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Descenso Empinado

(Metodo de Cauchy)

El punto mınimo se vuelve luego el punto actual y la busquedacontinua a partir de el. El algoritmo continua hasta que elgradiente se hace cero o suficientemente pequeno. Algo interesantede este metodo es que aunque garantiza que hay mejoras en el valorde la funcion que se obtenga a cada iteracion, en la practica no esun metodo muy efectivo porque la direccion de descenso empinadoes una propiedad local.

Clase No. 10 2009

Page 27: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Descenso Empinado

(Metodo de Cauchy)

Algoritmo

Paso 1: Elegir un punto inicial X(0) y dos parametros de terminacion ε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 busqueda 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 busqueda unidireccional puede usarse la tolerancia ε2

directamente en el metodo de minimizacion adoptado.

Alternativamente, puede checarse si |∇f(X(k+1)) · ∇f(X(k))| ≤ ε2.

Paso 5: ¿Es

f(X(k+1))−f(X(k))

f(X(k))

∣≤ ε1? Si es ası, Terminar.

ELSE k = k + 1. GOTO Paso 2.

Clase No. 10 2009

Page 28: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Criterios de Convergencia

Para terminar el proceso iterativo del metodo de Cauchy, Raosugiere utilizar cualquiera de los 3 criterios siguientes deconvergencia:

1. Cuando el cambio en el valor de la funcion en dos iteracionesconsecutivas es muy pequeno:

f(x(k+1))− f(x(k))f(x(k))

≤ ε1 (5)

Clase No. 10 2009

Page 29: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Criterios de Convergencia

2. Cuando las derivadas parciales (componentes del gradiente) def son suficientemente pequenas:

∂f

∂xi

≤ ε2, i = 1, 2, . . . , n (6)

Clase No. 10 2009

Page 30: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Criterios de Convergencia

3. Cuando el cambio en las variables de diseno en dos iteracionesconsecutivas es suficientemente pequeno:

∣x(k+1) − x(k)∣

∣ ≤ ε3 (7)

Clase No. 10 2009

Page 31: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Gradiente Conjugado

(Fletcher-Reeves)

Las propiedades de convergencia del metodo del descenso empinadopueden mejorarse de manera significativa si se le modifica paraconvertirlo en un metodo de gradiente conjugado (el cual puede serconsiderado como un metodo de direcciones conjugadas queinvolucra el uso del gradiente de la funcion).

Clase No. 10 2009

Page 32: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Gradiente Conjugado

(Fletcher-Reeves)

Vimos anteriormente las condiciones para que un conjunto dedirecciones s(k) (k = 1, 2, . . . , r ≤ N) y una matriz simetrica C deN ×N sean conjugadas. Ademas, hemos examinado estasdirecciones como transformaciones en la forma de una suma decuadrados perfectos para una funcion cuadratica.

Clase No. 10 2009

Page 33: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Gradiente Conjugado

(Fletcher-Reeves)

En nuestro procedimiento previo concluimos que el buscar en cadauna de las N direcciones C conjugadas en turno, producirıa elmınimo para una cuadratica N -dimensional. Ademas, generamos elconjunto de direcciones conjugadas usando solamente los valores dela funcion objetivo.

Clase No. 10 2009

Page 34: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Gradiente Conjugado

(Fletcher-Reeves)

En el metodo que veremos ahora, se usa una aproximacioncuadratica a f(x) junto con informacion del gradiente para generarlas direcciones conjugadas. Ademas, se insistira en el uso deldescenso a cada iteracion.

Clase No. 10 2009

Page 35: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Gradiente Conjugado

(Fletcher-Reeves)

Consideremos dos puntos distintos cualquiera en el espacio dediseno x(0) y x(1), y el gradiente de la funcion objetivo cuadraticaque 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

Page 36: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Gradiente Conjugado

(Fletcher-Reeves)

Por tanto:

g(x(0)) = Cx(0) + b (9)

g(x(1)) = Cx(1) + b (10)

Clase No. 10 2009

Page 37: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo 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 cuadraticas.

Clase No. 10 2009

Page 38: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Gradiente Conjugado

(Fletcher-Reeves)

En 1952, Hestenes y Stiefel publicaron una tecnica iterativaeficiente para resolver sistemas de ecuaciones lineales y que esbasicamente lo que hoy se conoce como el metodo de los gradientesconjugados. Hestenes y Stiefel veıan el conjunto de ecuacioneslineales como elementos del vector de gradiente de una cuadraticaque buscaban minimizar.

Clase No. 10 2009

Page 39: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Gradiente Conjugado

(Fletcher-Reeves)

Posteriormente, Fletcher y Reeves (1964) demostraron laconvergencia cuadratica de este metodo (es decir, que el metodotermina en aproximadamente N pasos cuando se aplica a unafuncion cuadratica y se usa aritmetica exacta), y lo extendieron afunciones no cuadraticas.

Clase No. 10 2009

Page 40: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Gradiente Conjugado

(Fletcher-Reeves)

Fried y Metzler (1978) han demostrado la utilidad de este metodocuando se aplica a conjuntos lineales resultantes de discretizacionescon elementos finitos donde la matriz de coeficientes es dispersapero no de forma ordenada. Dichos autores enfatizan la facilidad deimplementacion de este metodo en comparacion con otras tecnicasusadas mas comunmente.

Clase No. 10 2009

Page 41: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Gradiente Conjugado

(Fletcher-Reeves)

Tanto en el libro de Rao (1996) como en el de Reklaitis se muestrala derivacion del metodo. En este curso nos limitaremos a estudiarel algoritmo correspondiente.

Sin embargo, es importante hacer notar la idea general del metodo.Fletcher y Reeves (1964) sugirieron las siguientes direccionesconjugadas de busqueda y demostraron que s(k) es conjugada conrespecto a todas las direcciones previas de busqueda s(i) parai = 1, 2, . . . , (k − 1):

s(k) = −∇f(x(k)) +||∇f(x(k))||2

||∇f(x(k−1))||2s(k−1) (13)

con s(0) = −∇f(x(0)).

Clase No. 10 2009

Page 42: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Gradiente Conjugado

(Fletcher-Reeves)

Notese que esta ecuacion recursiva para la direccion de busquedas(k) requiere solo de derivadas de primer orden en los puntos x(k) yx(k−1). Se presupone que la direccion inicial de busqueda s(0) es ladireccion de descenso empinado en el punto inicial. Posteriormente,las direcciones subsecuentes de busqueda se obtienen usando laexpresion recursiva arriba indicada.

Clase No. 10 2009

Page 43: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo 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))

Paso 4: Hacer: s(k) = −∇f(X(k)) +||∇f(X(k))||2

||∇f(X(k−1))||2s(k−1)

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)||≤ ε2 o ||∇f(X(k+1))|| ≤ ε3?

Si es ası, terminar.

ELSE k = k + 1. GOTO Paso 4.

Clase No. 10 2009

Page 44: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Gradiente Conjugado

(Fletcher-Reeves)

Como indicamos anteriormente, debido a su uso de direccionesconjugadas de busqueda, el metodo de Fletcher-Reeves debieraconverger en N iteraciones o menos para el caso de una funcioncuadratica. Sin embargo, para cuadraticas mal condicionadas(aquellas cuyos contornos son altamente excentricos ydistorsionados), el metodo puede requerir mucho mas de Niteraciones para converger.

Clase No. 10 2009

Page 45: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Gradiente Conjugado

(Fletcher-Reeves)

La razon de esto es el efecto acumulativo de los errores deredondeo. Para evitar estos problemas, se recomienda reinicializarel metodo periodicamente despues de una cierta cantidad de pasos,tomando como nueva direccion de busqueda a la direccion dedescenso empinado.

Clase No. 10 2009

Page 46: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Gradiente Conjugado

(Fletcher-Reeves)

A pesar de sus limitaciones, el metodo de Fletcher-Reeves es muysuperior al metodo del descenso empinado y a los metodos debusqueda mediante patrones. Sin embargo, es menos eficiente que elmetodo de Newton que veremos mas adelante.

Clase No. 10 2009

Page 47: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Gradiente Conjugado

(Fletcher-Reeves)

Miele y Cantrell (1969) propusieron una extension del metodo deFletcher-Reeves en la que se usa la siguiente expresion:

X(k+1) = X(k) + λ(k){

−∇f(X(k)) + γ(k)s(X(k−1))}

(14)

donde λ(k) y γ(k) se buscan directamente a cada iteracion.

Clase No. 10 2009

Page 48: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Gradiente Conjugado

(Fletcher-Reeves)

A este metodo se le conoce como del gradiente con memoria yes bastante mas eficiente que el de Fletcher-Reeves en terminos delnumero que iteraciones, pero requiere mas evaluaciones de lafuncion objetivo y del gradiente. Por tanto, este metodo esrecomendable solo cuando las evaluaciones de la funcion objetivo ydel gradiente no tienen un costo computacional muy elevado.

Clase No. 10 2009

Page 49: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Gradiente Conjugado

(Fletcher-Reeves)

Una limitacion importante del metodo de Fletcher-Reeves es que seasumen una funcion objetivo cuadratica y busquedas linealesexactas. Se han propuesto, sin embargo, diversos metodos quepermiten relajar una o las dos limitantes antes descritas. Porejemplo, el metodo de Polak-Ribiere (1969) demanda busquedaslineales exactas pero asume un modelo mas general para la funcionobjetivo.

Clase No. 10 2009

Page 50: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Gradiente Conjugado

(Fletcher-Reeves)

Se han propuesto otros metodos similares en los que se presuponenbusquedas lineales exactas pero se emplea un modelo de funcionobjetivo mas general que el cuadratico. Por ejemplo, estan losmetodos de Davison y Wong (1975), y el de Boland et al. (1979).

Clase No. 10 2009

Page 51: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Gradiente Conjugado

(Fletcher-Reeves)

En 1972, Crowder y Wolfe y posteriormente Powell, demostraronque los metodos de gradiente conjugado estaban condenados a unatasa lineal de convergencia en la ausencia de reinicializacionesperiodicas.

Clase No. 10 2009

Page 52: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Gradiente Conjugado

(Fletcher-Reeves)

Una reinicializacion se define como un procedimiento especial queinterrumpe la generacion normal de direcciones de busqueda comoel requerido para generar s(X(0)). Existen varias razones por lascuales uno podrıa esperar que un algoritmo requiera unareinicializacion para ser robusto. La mas obvia es evitar lageneracion de una direccion que sea dependiente.

Clase No. 10 2009

Page 53: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Gradiente Conjugado

(Fletcher-Reeves)

Powell (1977) demostro que el metodo de Polak-Ribiere tambientiene una tasa lineal de convergencia si no se usa reinicializacion,pero dicho metodo es superior al de Fletcher-Reeves para funcionesgenerales y presenta tambien menos sensibilidad a las busquedaslineales inexactas.

Clase No. 10 2009

Page 54: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Gradiente Conjugado

(Fletcher-Reeves)

La formulacion de procedimientos de reinicializacion eficientes y eldesarrollo de metodos con mayor tolerancia a las busquedas linealesinexactas sigue siendo un area activa de investigacion.

Clase No. 10 2009

Page 55: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Gradiente Conjugado

(Fletcher-Reeves)

Beale (1972) proporciona un procedimiento de gradiente conjugadosimilar al metodo de Fletcher-Reeves, pero en el cual se permite lareinicializacion sin el uso de la direccion de gradiente. Bealemuestra como puede usarse la direccion previa para lareinicializacion a fin de reducir el esfuerzo computacional total paralas funciones que requieren muchas reinicializaciones.

Clase No. 10 2009

Page 56: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Gradiente Conjugado

(Fletcher-Reeves)

Powell (1977) examina cuidadosamente la estrategia de Beale yotras tecnicas de reinicializacion y sugiere que se efectue unareinicializacion a cada N iteraciones o cuando:

|g(X(k))g(X(k−1))| ≥ 0,2||g(X(k))||2 (15)

Clase No. 10 2009

Page 57: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Gradiente Conjugado

(Fletcher-Reeves)

Powell demuestra que la estrategia de reinicializacion de Beale(usando el criterio de la ecuacion (11)) funciona igualmente biencon el metodo de Fletcher-Reeves y con el de Polak-Ribiere yproporciona resultados numericos que sugieren la superioridad deeste ultimo.

Clase No. 10 2009

Page 58: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Gradiente Conjugado

(Fletcher-Reeves)

Shanno (1978) ha estudiado la relacion de las busquedas linealesinexactas y las estrategias de reinicializacion con la eficiencia de losmetodos de gradiente conjugado.

Clase No. 10 2009

Page 59: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Gradiente Conjugado

(Fletcher-Reeves)

Shanno muestra que la estrategia de reinicializacion de Bealeusando el criterio de reinicializacion de Powell permite undecremento significativo en la precision requerida por las busquedaslineales y, por tanto, incrementa de manera significativa laeficiencia computacional del metodo del gradiente conjugado.

Clase No. 10 2009

Page 60: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo del Gradiente Conjugado

(Fletcher-Reeves)

Shanno tambien proporciona resultados numericos que indican lasuperioridad del metodo de Polak-Ribiere con reinicializacion ybusquedas lineales inexactas.

Clase No. 10 2009

Page 61: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo de Newton

Vimos que el metodo de Cauchy es la mejor estrategia local basadaen gradientes, pero es importante hacer ver que el gradientenegativo apunta directamente hacia el mınimo solo cuando loscontornos de f son circulares y, por tanto, el gradiente negativo noes una buena direccion global de busqueda (en general) parafunciones no lineales.

Clase No. 10 2009

Page 62: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo de Newton

El metodo de Cauchy emplea aproximaciones lineales sucesivas a lafuncion objetivo y requiere calcular tanto el valor de la funcionobjetivo como el del gradiente a cada iteracion. Esto nos lleva aconsiderar el uso de informacion de orden superior, o sea, lassegundas derivadas, en un esfuerzo por construir una estrategia debusqueda mas global.

Clase No. 10 2009

Page 63: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo de Newton

Consideremos la expansion de Taylor de la funcion objetivo:

f(X) = f(X(k)) +∇f(X(k))T∆x+12

∆xT∇2f(X(k))∆x+O(∆x3)

(16)

Clase No. 10 2009

Page 64: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo de Newton

Formamos una aproximacion cuadratica a f(x) eliminando losterminos de orden mayor o igual a 3:

f(X;X(k)) = f(X(k)) +∇f(X(k))T∆x+12

∆xT∇2f(X(k))∆x (17)

donde usamos f(X;X(k)) para denotar una funcion deaproximacion construida en X(k), la cual es, ası mismo, unafuncion de X.

Clase No. 10 2009

Page 65: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo de Newton

Ahora usaremos esta aproximacion cuadratica de f(x) para formaruna secuencia iterativa, forzando a X(k+1), que es el siguientepunto en la secuencia, a ser un punto donde el gradiente de laaproximacion es cero.

Clase No. 10 2009

Page 66: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo de Newton

Por tanto:

∇f(X;X(k)) = ∇f(X(k)) +∇2f(X(k))∆x = 0 (18)

y

∆x = −[

∇2f(X(k))]−1

∇f(X(k)) (19)

Clase No. 10 2009

Page 67: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo de Newton

Tenemos entonces que este esquema de aproximaciones cuadraticassucesivas produce el Metodo de Newton:

X(k+1) = X(k) −[

∇2f(X(k))]−1

∇f(X(k)) (20)

Clase No. 10 2009

Page 68: Optimización en Ingenier´ıa

Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello

Metodo de Newton

Algoritmo

Paso 1: Elegir un punto inicial X(0) y dos parametros de terminacion ε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 busqueda unidireccional para encontrar λ(k) y calcular:

X(k+1) = X(k) − λ(k)[

∇2f(X(k))]−1∇f(X(k))

tal que f(X(k+1)) sea mınima.

Para efectuar la busqueda unidireccional puede usarse la tolerancia ε2

directamente en el metodo de minimizacion adoptado.

Paso 5: ¿Es

f(X(k+1))−f(X(k))

f(X(k))

∣≤ ε1? Si es ası, Terminar.

ELSE k = k + 1. GOTO Paso 2.

Clase No. 10 2009