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