Métodos Clásicos de Optimización para Problemas No-Lineales sin Restricciones Dr. Gonzalo Hernández Oliva UChile - Departamento de Ingeniería Matemática 07 de Mayo 2006 Abstract En este apunte veremos una breve descripción de la teoría y métodos que se utilizan para enfrentar problemas de optimización no-lineales sin restrcciones. La no presencia de restricciones puede ser vista en un comienzo como una grave limitación, sin embargo, la razón del porque dedicamos tiempo a resolver este tipo de problemas desde el punto de vista de la optimización, es que existe toda una metodología que permite tratar problemas de optimización no-lineales con restriccciones como problemas de optimización no-lineales sin restricciones: Los Métodos de Penalización. 1 Introducción Nos interesa resolver el problema siguiente: Dada f : Rn → R, campo escalar 2 veces diferenciable con continuidad, encontrar x ∈ Rn , solución de: min f (x) x∈Rn (POSR) Encontrar una solución de este problema corresponde a encontrar un punto x que satisface: f (x) ≤ f (x) ∀x ∈ Rn Este punto x se denomina mínimo global de f sobre Rn . Desde un punto de vista práctico, encontrar el mínimo o máximo global de una función no-lineal cualquiera es un problema abierto en matemáticas. Los métodos existentes sólo obtienen mínimo locales. 1 Definición 0: Un punto x es un mínimo local de f en Rn si existe r > 0 talque: f (x) ≤ f (x) para kx − xk ≤ r El mínimo global de f será el mínimo local de menor valor de la función objetivo. Figura 1. Mínimos locales de una función de 2 variables Desde un punto de vista teórico, las condiciones más generales para que x sea mínimo local de f son las siguientes: Teorema 1: Un punto x es mínimo local de f si se verifican las siguientes condiciones: 1) x es un punto estacionario de f ⎡ ⎢ ⎢ − → ∇f (x) = 0 ⇐⇒ ⎢ ⎢ ⎣ ∂f (x) ∂x1 ∂f (x) ∂x2 .. . ∂f (x) ∂xn ⎤ ⎡ ⎥ ⎢ ⎥ ⎢ ⎥=⎢ ⎥ ⎣ ⎦ ⎤ 0 0 .. . ⎥ ⎥ ⎥ ⎦ 0 2) La matriz hessiana ∇2 f (x) de f en x es definida positiva: ⎡ ⎢ ⎢ ⎢ ∇2 f (x) = ⎢ ⎢ ⎣ ∂ 2 f (x) ∂x21 ∂ 2 f (x) ∂x1 ∂x2 .. . ∂ 2 f (x) ∂x1 ∂x2 ∂ 2 f (x) ∂x22 .. . ∂ 2 f (x) ∂x1 ∂xn 2 ∂ 2 f (x) ∂x2 ∂xn ··· ··· .. . ··· ∂ 2 f (x) ∂x1 ∂xn ∂ 2 f (x) ∂x2 ∂xn .. . ∂ 2 f (x) ∂x2n ⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ Dem: Se demuestra mediante la aproximación de Taylor de 2◦ Orden de la función f en torno a x.¥ Entonces, para obtener el mínimo local se debe resolver un sistema de ecuaciones no lineales, en general complejo. Surge de esta forma la necesidad de aplicar métodos numéricos. Consideraremos métodos numéricos llamados de descenso, que pueden ser clasificados en 3 grupos: ⎧ ⎪ ⎪ ⎪ ⎪ Primer Orden ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ Métodos Descenso Segundo Orden ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎩ Cuasi-Newton ⎧ ⎨ Método del Gradiente y Variedades Método del Gradiente Conjugado ⎩ Método de Fletcher-Reeves ½ ½ Métodos de Newton Variedades DFP: Davidon - Fletcher - Powell BFGS Todos los métodos numéricos que se utilizan en la actualidad reducen este problema a una secuencia de problemas unidimensionales. 2 Método de Gradiente o de Cauchy Sea f : Rn → R diferenciable. La derivada direccional de f en la dirección d ∈ Rn está dada por: Df (x; d) = ∇f (x)t d Para obtener la dirección de máximo descenso de la función f en un punto x ∈ Rn tal que ∇f (x) 6= 0, se debe resolver el problema: min ∇f (x)t d d∈Rn kdk2 = 1 La solución de este problema es: d=− ∇f (x) k∇f (x)k Y por lo tanto la dirección de máximo descenso de la función f es: d = −∇f (x) 3 Definición 2: El vector d ∈ Rn es una dirección de descenso de f , función diferenciable, en el punto x ∈ Rn si: ∇f (x)t · d < 0 ⇐⇒ (−∇f (x))t · d > 0 A través del método del gradiente, se busca definir una sucesión de puntos que tenga la dirección de máximo descenso de la función f . Definición 3: Las curvas de nivel θ de f están definidas por: ϕ(f, θ) = {x ∈ Rn tal que: f (x) = θ} Lema 4: Sea d ∈ Rn una dirección de descenso de la función f en el punto x. Se define la función unidimensional: hx,d : R+ → R α → hx,d (α) = f (x + αd) − f (x) para x, d ∈ Rn fijos Luego, si α minimiza hx,d sobre R+ , entonces: hx,d (α) < hx,d (α = 0) = 0 ⇔ f (x + αd) < f (x) donde α verifica: h0x,d (α) = 0 ⇐⇒ ∇f (x + αd)t d = 0 Dem: Directa de las definiciones hechas para hx,d .¥ hx,d(0) _ _ α1 α2 α hx,d(α ) = f( x + αd ) - f(x) para d dirección de descenso hx,d(α) Figura 2. Función Unidimensional hx,d De acuerdo a los resultados anteriores, se define la iteración canónica del Método del Gradiente o Máximo Descenso, según: 4 METODO DEL GRADIENTE O MAXIMO DESCENSO Etapa 0: Etapa 1: Etapa 2: Seleccionar un punto inicial x0 ∈ Rn k=0 Calcular ∇f (xk ) Si k∇f (xk )k = 0 =⇒ ST OP Si no, seguir a Etapa 2. k d = −∇f (xk ) Calcular: αk solución del problema uni-dimensional: minhxk ,dk (α) = f (xk + αdk ) − f (xk ) α≥0 xk+1 = xk + αk dk k = k + 1 y volver a Etapa 1. Curvas de Nivel de f f(x2) f(xo) do d1 f(x1) Figura 3. Esquema iteración del método del Gradiente Ejemplo: Se quiere resolver el problema de optimización bi-dimensional, ver ref. [1]: min (x1 ,x2 )∈R2 (x1 − 2)4 + (x1 − 2x2 )2 En la siguiente tabla se muestran 7 iteraciones del método del gradiente a partir de x0 = (0.00, 3.00) ° ° °∇f (xk )° k xk f (xk ) ∇f (xk ) αk 0 (0.00, 3.00) 52.00 (−44.00, 24.00) 50.12 0.062 1 (2.70, 1.51) 0.34 (0.73, 1.28) 1.47 0.24 2 (2.52, 1.20) 0.09 (0.80, −0.48) 0.93 0.11 3 (2.43, 1.25) 0.04 (0.18, 0.28) 0.33 0.31 4 (2.37, 1.16) 0.02 (0.30, −0.20) 0.36 0.12 5 (2.33, 1.18) 0.01 (0.08, 0.12) 0.14 0.36 6 (2.30, 1.14) 0.009 (0.15, −0.08) 0.17 0.13 7 (2.28, 1.15) 0.007 (0.05, 0.08) 0.09 5 Observaciones: 1) En cada etapa αk , llamado el paso del método en la etapa (k + 1)-ésima, debe verificar: ∇f (xk + αdk ) · dk = 0 que en general será una ecuación difícil de resolver exactamente en α. Por esta razón se utilizan pasos αk que serán aproximaciones del paso exacto, determinados por algún método de elección de paso, como se verá más adelante. 2) Dadas las condiciones de optimalidad sobre f (i.e. existencia única de la solución del problema (P)) se tiene que el método posee una convergencia global, i.e. para cualquier punto inicial la iteración del método converge, a la solución de (POSR). 3) La rapidez de convergencia del método es lineal: Si xk es la sucesión de puntos determinados por el método del gradiente, se tiene que ∃λ ∈ (0, 1) tal que: ¯ ¯ ¯ ¯ ¯ k ¯ k+1 ¯ ¯ − x¯ ≤ λ ¯x − x¯ ¯x donde x es un punto estacionario de f : ∇f (x) = 0. Este punto estacionario depende el punto inicial utilizado. 4) Dos direcciones consecutivas generadas por el método del gradiente son ortogonales, ver figura 3. En efecto: supongamos que estamos en la iteración k + 1 del método; la determinación del paso exacto αk obtiene el hecho anterior, pues: αk = arg minf (xk + αdk ) α≥0 Ahora bien, si αk = 0, significa que estamos en el óptimo en xk y el método finaliza. Si αk > 0, αk debe verificar la ecuación: ¯ df (xk + αdk ) ¯¯ = 0 ⇔ ∇f (xk +αk dk )t dk = 0 ⇔ ∇f (xk )t dk = −(dk+1 )t dk = 0 ¯ dα α=αk 5) Se llama método del gradiente o de Cauchy, o de máximo descenso, a la iteración del método anterior con la elección del paso αk exacto. 6) Existen otros métodos de gradiente que no consideran la elección del paso exacto, sino que un paso elegido según reglas que dan una buena aproximación del paso exacto; o que consideran un paso constante para todas las iteraciones. Luego, en general, se considera un algoritmo del gradiente con elección de paso variable según algún criterio: ½ 0 x ∈ Rn dk = −∇f (xk ) , λk ≥ 0 xk+1 = xk + λk dk 6 3 Métodos de Direcciones Conjugadas Por tener velocidad lineal, la convergencia del método del gradiente es lenta, aún en el caso de funciones cuadráticas. Luego, se busca un método de convergencia más rápida. Una manera posible de acelerar esta convergencia es utilizar la noción de direcciones conjugadas u ortogonales. 3.1 Método del Gradiente Conjugado Sea (PC) el problema de optimización cuadrático definido por: 1 min q(x) = xt Qx − bt x 2 donde Q es una matriz definida positiva x∈Rn (PC) Definición 5: Un conjunto de direcciones {d1 , ..., dk } de Rn , no nulas; k ≤ n se dirá Qconjugado 2 a 2 si: ½ 1 si i = j i t j (d ) Qd = δ ij i, j = 1, ..., k donde δ ij = 0 en otro caso Por ejemplo, si Q = I, las direcciones son ortonormales. Proposición 6: Si {d1 , ..., dk } es un conjunto Q-conjugado, entonces {d1 , ..., dk } es de rango máximo, i.e. los vectores di son linealmente independientes. Dem: En efecto, sean αi ∈ R; i = 1, ..., k, tal que: k X αi di = 0 i=1 premultiplicando por (dj )t Q 6= 0, se tiene que: k X αi (dj )t Qdi = i=1 k X αi δ ij = αj i=1 ∀j = 1, .., k Luego αj = 0 ∀j = 1, ..., k.¥ El método de direcciones conjugadas para (PC), suponiendo que no se tienen las direcciones conjugadas ya calculadas, es el siguiente: 7 METODO DEL GRADIENTE CONJUGADO Etapa 1: Seleccionar un punto inicial x0 ∈ Rn k=0 g 0 = ∇q(x0 ) = Qx0 − b d0 = −∇q(x0 ) Etapa 2: (g k )t dk (dk )t Qdk k+1 x °= xk + αk°dk Si °xk+1 − xk ° ≈ 0 =⇒ ST OP Si no, seguir a Etapa 2. Etapa 0: αk = − g k+1 = ∇q(xk+1 ) = Qxk+1 − b (g k+1 )t Qdk ρk = (dk )t Qdk k+1 d = −g k+1 + ρk dk k = k + 1 y volver a Etapa 1. Teorema 7: El método del gradiente conjugado es un método de direcciones conjugadas. Si no termina en xk , entonces: i) hg 0 , ..., g k i = hg 0 , Qg 0 , ..., Qk g 0 i ii) hd0 , ..., dk i = hg 0 , Qg 0 , ..., Qk g 0 i iii) (dk )t Qdi = 0 ∀ i = 0, ..., k − 1 iv) αk = (g k )t g k kg k k2 = (dk )t Qdk kdk k2Q v) ρk = (g k+1 )t g k+1 kg k+1 k2 = (g k )t g k kg k k2 Dem: La demostración se deja propuesta. Se puede ver en refs. [1, 2]¥ Observación: Como las direcciones conjugadas son Q-ortogonales entre si, el método del gradiente conjugado converje en a lo más n iteraciones. 3.2 Método de Fletcher-Reeves Corresponde a la versión del método del gradiente conjugado en el caso de una función f general. La iteración se define de la siguiente manera: 8 METODO DE FLETCHER-REEVES Etapa 0: Etapa 1: Seleccionar un punto inicial x0 ∈ Rn k=0 d0 = −∇f (x0 ) Calcular αk solución del problema unidimensional: αk = arg minf (xk + αdk ) α≥0 Etapa 2: xk+1°= xk + αk°dk Si °xk+1 − xk ° ≈ 0 =⇒ ST OP Si no, seguir a Etapa 2. Calcular ∇f (xk+1 ) ∇f (xk+1 )t ∇f (xk+1 ) ρk = ∇f (xk )t ∇f (xk ) k+1 = −∇f (xk+1 ) + ρk dk d k = k + 1 y volver a Etapa 1. Ejemplo: Volviendo al problema de optimización bi-dimensional anterior, ver ref. [1]: min (x1 ,x2 )∈R2 (x1 − 2)4 + (x1 − 2x2 )2 En la siguiente tabla se muestran 3 iteraciones del método de Fletcher-Reeves a partir de x0 = (0.00, 3.00) ° ° °∇f (xk )° k xk f (xk ) ∇f (xk ) αk 0 (0.00, 3.00) 52.00 (−44.00, 24.00) 50.12 0.062 1 (2.54, 1.21) 0.10 (0.87, −0.48) 0.99 0.11 2 (2.25, 1.10) 0.008 (0.16, −0.20) 0.32 0.10 3 (2.19, 1.09) 0.0017 (0.05, −0.04) 0.06 0.11 4 Métodos Aproximados de Elección de Paso Su utilizan para lograr una buena elección del paso en cada iteración de un método de optimización como alternativa a la determinación del paso exacto. Sea k la iteración de un método de optimización cualquiera y se quiere determinar un paso para la sucesión minimizante: xk+1 = xk + tk dk Donde tk ≥ 0, dk es una dirección de descenso en xk de la función objetivo f , i.e: (−∇f (xk ))t dk > 0 La idea del algoritmo para determinación del paso tk , será calcular un intervalo [tg , td ], 0 ≤ tg ≤ td en el cual se pueda escoger tk ∈ [tg , td ] y se asegure una buena elección en todo el intervalo. 9 ALGORITMO GENERAL DE CÁLCULO DE PASO Etapa 0: Etapa 1: Etapa 2: Inicialmente tg = td = 0. Sea t > 0 un paso tentativo inicial. Analizamos t: - Si el criterio (a) se satisface: tk = t - Si el criterio (b) se satisface entonces el paso t es muy grande. Se define td = t, y se sigue a la etapa 2. - Si criterio (c) se satisface entonces el paso t es muy pequeño. Se define tg = t, y se sigue a la etapa 2. Nuevo paso tentativo: - Si td = 0, se define un nuevo t, mayor que tg : t = 10tg Y se vuelve a la etapa 1. - Si td 6= 0, se define un nuevo t en el intervalo (tg , td ). La elección más utilizada es: tg + td t= 2 Y se vuelve a la etapa 1. La Regla de Goldstein determina los criterios (a), (b) y (c) en el algoritmo general de determinación de paso. Sea: h(t) = f (xk + tdk ) − f (xk ) Para t ≥ 0 se tiene que: h0 (t) = ∇f (xk + tdk )t dk h0 (0) = ∇f (xk )t dk < 0 h(t) ≤ 0 h(0) tg td t t h'(0)m1 t h'(0) t h'(0)m2 h(t) Figura 4. Regla de Elección de Paso de Goldstein 10 REGLA DE GOLDSTEIN Sean 0 < m1 < m2 < 1. Los criterios (a),(b) y (c) según esta regla son: Criterio (a): Criterio (b): Criterio (c): m2 h0 (0)t ≤ h(t) ≤ m1 h0 (0)t h(t) > m1 h0 (0)t h(t) < m2 h0 (0)t En la práctica, se prueba con distintos valores para m1 y m2 . 5 Métodos de 2o Orden: Newton - Kantorovich El método de Newton es un método numérico que se utiliza para encontrar ceros de una función. Sea F : Rn → Rn un campo vectorial de clase ζ 1 (Rn ). Un punto x ∈ Rn será un cero de F si: F (x) = 0 El método de Newton para este problema es el siguiente: METODO DE NEWTON-KANTOROVICH Etapa 0: Etapa 1: Etapa 2: Seleccionar un punto inicial x0 ∈ Rn k=0 Calcular F°(xk ) ° k ° Si F (x )° ≈ 0 =⇒ ST OP £ ¤−1 Si no, calcular ∇F (xk ), ∇F (xk ) y seguir a Etapa 2. Calcular: £ ¤−1 xk+1 = xk − ∇F (xk ) F (xk ) k = k + 1 y volver a Etapa 1. Este método se puede aplicar a la búsqueda de los ceros del gradiente de una función f : Rn → R, suficientemente regular. Es decir, se buscan los puntos estacionarios de f . METODO DE OPTIMIZACION DE NEWTON Etapa 0: Etapa 1: Etapa 2: Seleccionar un punto inicial x0 ∈ Rn k=0 Calcular ∇f°(xk ) ° ° Si ∇f (xk )° ≈ 0 =⇒ ST OP £ ¤−1 Si no, calcular ∇2 f (xk ), ∇2 f (xk ) y seguir a Etapa 2. Calcular: £ ¤−1 ∇f (xk ) xk+1 = xk − ∇2 f (xk ) k = k + 1 y volver a Etapa 1. 11 Ejemplo: En la tabla siguiente se aplica el método de Newton al problema de optimización bi-dimensional a partir de x0 = (0.00, 3.00), ver ref. [1]: min (x1 ,x2 )∈R2 (x1 − 2)4 + (x1 − 2x2 )2 k xk f (xk ) ∇f (xk ) 0 (0.00, 3.00) 52.00 (−44.00, 24.00) 1 2 (0.67, 0.33) (1.11, 0.56) 3.13 0.63 (−9.39, −0.04) (−2.84, −0.04) 3 (1.41, 0.70) 0.12 (−0.80, −0.04) 4 (1.61, 0.80) 0.02 (−0.22, −0.04) 5 (1.74, 0.87) 0.005 (−0.07, −0.00) 2 k ∙ ∇ f (x ) ¸ 50.0 −4.0 −4.0 8.0 ∙ ∙ 23.23 −4.0 −4.0 8.0 ∙ ∙ ∙ 11.5 −4.0 −4.0 8.0 6.18 4.0 −4.0 8.0 3.83 −4.0 −4.0 8.0 2.81 −4.0 −4.0 8.0 ¸ ¸ ¸ ¸ ¸ £ ¤−1 − ∇2 f (xk ) ∇f (xk ) (0.67, −2.67) (0.44, 0.23) (0.30, 0.14) (0.20, 0.10) (0.13, 0.07) (0.09, 0.04) Observaciones: 1) La dirección del Método de Newton: h i−1 ∇f (xk ) dk = − ∇2 f (xk ) es una dirección de descenso si y sólo si: ∇2 f (xk ) es definida positiva, es decir: (−∇f (xk ))dk > 0 ⇐⇒ ∇2 f (xk ) es definida positiva (1) 2) El método de Newton en cada iteración, considera una aproximación cuadrática de la función objetivo, y define el nuevo punto de la sucesión minimizante como el óptimo de la aproximación cuadrática de la función objetivo. Cerca de un óptimo local de f , la aproximación exacta. 3) El punto inicial x0 no puede ser arbitrario, ya que para que el método converja, la dirección dk debe ser de descenso. Esta corresponde a la principal desventaja 12 del método: su convergencia local. Sin embargo, su rapidez de convergencia es su mayor ventaja, posee convergencia de velocidad cuadrática, es decir: kxk+1 − xk ≤ λkxk − xk2 para λ < 1 4) El principal problema del Método de Newton es que la matriz ∇2 f (xk ) debe ser definida positiva. Si se parte de un punto x0 suficientemente cercano a un mínimo local, esto se verifica. En general se desconoce toda información acerca de la solución óptima del problema, y por lo tanto no se tiene un buen criterio para escoger x0 . 5) Esto sugiere, que un buen método de minimización es una combinación del Método del Gradiente y del Método de Newton: Inicialmente se aplica el Método del Gradiente que tiene convergencia global de velocidad lineal y luego se aplica el Método del Newton que tiene convergencia local de velocidad cuadrática. 6 Métodos Cuasi-Newton En cada iteración del método de Newton es necesario calcular la inversa de la matriz hessiana de f en xk de manera exacta, lo que es costoso computacionalmente, O(n3 ) operaciones aritméticas. Por esto razon, se propone un método iterativo de la forma: xk+1 = xk − tk S k g k g k = ∇f (xk ) (2) £ ¤−1 donde S k es una matriz que aproxima a ∇2 f (xk ) y tk ≥ 0 minimiza f sobre k k x − λg para λ ≥ 0 (paso exacto o aproximado). Se presentarán 2 métodos que permiten construir iterativamente la matriz S k de manera que se verifiquen las siguientes condiciones: i) Definida Positiva: Si S k es definida positiva =⇒ S k+1 también lo es £ ¤−1 ii) Aproximación de la matriz hessiana inversa de f : xk −→ x , S k −→ ∇2 f (x) para k −→ ∞. La forma de construir estos métodos asegura: • Convergencia Global • Rapidez de convergencia mayor que lineal • Convergencia a un mínimo local 13 METODO DFP (Davidon-Fletcher-Powell) Etapa 0: Etapa 1: Etapa 2: Seleccionar un punto inicial x0 ∈ Rn Inicializar S0 = In×n k=0 k k Calcular ° k ° g = ∇f (x ) ° ° Si g ≈ 0 =⇒ ST OP Si no, calcular xk+1 = xk − tk S k g k donde tk ≥ 0 se escoge según regla de Goldstein y seguir a Etapa 2. Calcular: pk = xk+1 − xk q k = g k+1 − g k pk (pk )t S k q k (q k )t S k S k+1 = S k + k t k − (p ) q (q k )t S k q k k = k + 1 y volver a Etapa 1. METODO BFGS (Broyden-Fletcher-Goldfarb-Shanno) Etapa 0: Etapa 1: Etapa 2: Seleccionar un punto inicial x0 ∈ Rn Inicializar S0 = In×n k=0 k k Calcular ° k ° g = ∇f (x ) Si °g ° ≈ 0 =⇒ ST OP Si no, calcular xk+1 = xk − tk S k g k donde tk ≥ 0 se escoge según regla de Goldstein y seguir a Etapa 2. Calcular: pk = xk+1 − xk q k = g k+1 − g k £ k k t t ¤ ¸ ∙ p (q ) S + S k q k (pk )t (q k )t S k q k pk (pk )t k+1 k S =S + 1+ − (pk )t q k (pk )t q k (pk )t q k k = k + 1 y volver a Etapa 1. References [1] M. Bazaraa, H. D. Sherali and C. M. Shetty, Nonlinear Programming: Theory and Algorithms, Second Edition, John Wiley and Sons, 1993. [2] D. G. Luenberger, Linear and Nonlinear Programming, Second Edition, John Wiley and Sons, 1984. 14