Optimización con restricciones Prof. Cesar de Prada ISA-UVA [email protected] Indice z z Restricciones Problemas con restricciones de igualdad – z Problemas generales NLP – z z z 2 Multiplicadores de Lagrange Condiciones de Karush-Kuhn-Tucher (KKT) Programación cuadrática QP Método de Wolfe, SLP Funciones de penalización Cesar de Prada ISA-UVA Restricciones En la mayor parte de los problemas de toma de decisiones están presentes ligaduras entre las variables o limitaciones en las mismas 9Unas debidas a las ecuaciones del modelo 9Otras al rango permisible de unas variables 9Otras debidas a reglas de operación, existencias, etc. Por ello un problema de optimización a menudo se formula como: min J (x) x h(x) = 0 g(x) ≤ 0 3 Problema de optimización no-lineal con restricciones NLP Cesar de Prada ISA-UVA Restricciones La presencia de restricciones limita el espacio de búsqueda pero, al mismo tiempo, dificulta el encontrar la solución óptima porque se pierden algunos de los criterios de optimalidad como que el gradiente es nulo en el óptimo x2 x1 Una política conducente a calcular el óptimo sin restricciones y luego limitarlo al contorno de la región factible lleva a soluciones incorrectas Región factible 4 Cesar de Prada ISA-UVA Restricciones de igualdad Hay una categoría de problemas en los cuales las variables de decisión están sujetas solo a un conjunto de ecuaciones de igualdad: min J (x) min J ( x1 , x2 ,..., xn ) h ( x) = 0 h1 ( x1 , x2 ,..., xn ) = 0 ⎫ h2 ( x1 , x2 ,..., xn ) = 0 ⎪⎪ ⎬ n>m .... ⎪ hm ( x1 , x2 ,..., xn ) = 0⎪⎭ x 5 Si es posible despejar m variables en función de las n-m restantes y sustituirlas en J, es posible transformar el problema en uno de optimización sin restricciones con n-m variables x Cesar de Prada ISA-UVA Restricciones de igualdad min ( x1 x2 + x 22 )⎫⎪ x2 x1 , x 2 ⇒ x = ⎬ 1 log x2 x1 log x2 = x2 ⎪⎭ ⇒ min x2 x 22 log x2 + x22 El procedimiento es similar si partiendo de los valores de x1,x2,…,xn-m se puede evaluar J(x1,x2,…,xn) por medio de una rutina de cálculo. En ese caso se puede aplicar un algoritmo de optimización sin restricciones sobre las variables x1,x2,…,xn-m Sin embargo, en muchos casos, debido a la no-linealidad de las ecuaciones hi, no es posible aislar y despejar m variables y el procedimiento no puede emplearse, o su uso implica el uso del método de Newton para resolver las ecuaciones en una rutina de cálculo. 6 Cesar de Prada ISA-UVA Multiplicadores de Lagrange Para problemas de optimización con restricciones de igualdad, el método de los multiplicadores de Lagrange proporciona condiciones necesarias que deben cumplirse en el óptimo. La idea es convertir el problema en otro sin restricciones ampliado en m variables λj (los multiplicadores de Lagrange) tal que su solución coincida en las variables x con el primitivo y cumpla las restricciones h(x) = 0 min J (x) ⎫⎪ x ⎬ h( x) = 0 ⎪⎭ ⇒ min L(x, λ ) = min J (x) + λ' h(x) x, λ x, λ Para todos los x que cumplan las restricciones h(x)=0 se verifica: min L(x, λ ) = min J (x) x, λ x Si x* es optimo para el problema original, minimiza J(x*) y cumple h(x*) = 0, luego también tiene que ser una solución del problema de la Lagrangiana L 7 Cesar de Prada ISA-UVA Multiplicadores de Lagrange min L(x, λ ) = min J (x) + λ' h(x) x, λ x, λ L(x,λ) Lagrangiana La solución del problema ampliado sin restricciones es: ∂L(x, λ ) = 0, ∂x x* , λ * ∂L(x, λ ) =0 ∂λ x* , λ * ⇒ h(x * ) = 0 Que puede resolverse mediante el método de Newton. Si tiene solución, después hay que comprobar mediante el Hessiano de L que la solución x*,λ* corresponde verdaderamente a un mínimo de L respecto a x 8 Cesar de Prada ISA-UVA Cualificación de las restricciones * ∂J ( x * ) ∂ h x ( ) + λ *' =0 ∂x ∂x ⎡ ∂J ( x) ⎢ ∂x ⎣ 1 h( x * ) = 0 ∂J (x) ∂J (x) ⎤ + [λ1 L ⎥ ∂x 2 ∂x n ⎦ λ2 ⎡ ∂h 1 (x) ⎢ ∂x 1 ⎢ ⎢ ∂h 2 (x) L λ m ]⎢ ∂x 1 ⎢ M ⎢ ∂h m (x) ⎢ ⎣ ∂x 1 ∂h 1 (x) ∂h 1 (x) ⎤ L ∂x 2 ∂x n ⎥ ⎥ ∂h 2 ( x) ∂h 2 ( x) ⎥ L ∂x 2 ∂x n ⎥ = 0 M M M ⎥ ∂h m (x) ∂h m (x) ⎥ L ⎥ ∂x 2 ∂x n ⎦ Para que haya solución óptima, debe cumplirse que los gradientes ∇xhj sean linealmente independientes, lo que se conoce como cualificación de las restricciones 9 Cesar de Prada ISA-UVA Cualificación de las restricciones ∂h 1 (x) ∂h 2 (x) ∂h m (x) ∂J ( x) + λ1 + λ2 + ... + λ m =0 ∂x 1 ∂x 1 ∂x 1 ∂x 1 ∂h (x) ∂h (x) ∂h (x) ∂J (x) + λ1 1 + λ2 2 + ... + λ m m =0 ∂x 2 ∂x 2 ∂x 2 ∂x 2 ...... h( x) = 0 Para que haya solución óptima, debe cumplirse que los gradientes ∇xhj sean linealmente independientes, lo que se conoce como cualificación de las restricciones 10 Cesar de Prada ISA-UVA Ejemplo 1 x2 min x1 + x 2 ⎫⎪ x1 , x 2 ⎬ 2 2 x1 + x 2 = 4 ⎪⎭ x1 Cumple la cualificación de las restricciones pues solo hay una x1+x2=c min L( x 1 , x 2 , λ ) = min x 1 + x 2 + λ( x 21 + x 22 − 4) x1 , x 2 , λ x1 , x 2 , λ ∂L(x, λ ) = 1 + 2λ x 1 = 0 ∂x 1 ∂L(x, λ ) = x 21 + x 22 − 4 = 0 ∂λ ⎫ x 1 = −1 / 2 λ ⎫ λ* = ±1 /( 2 2 ) ⎪ ⎪ 1 + 2 λ x 2 = 0 ⎬ x 2 = −1 / 2 λ ⎬ x1 = m 2 / 2 ⎪ ⎪ x 21 + x 22 − 4 = 0⎭ 1 / 4λ2 + 1 / 4λ2 = 4⎭ x 2 = m 2 / 2 Cesar de Prada ISA-UVA 1 + 2λ x 1 = 0 11 ∂L(x, λ ) = 1 + 2λ x 2 = 0 ∂x 2 Ejemplo 1 min L( x 1 , x 2 , λ ) = min x 1 + x 2 + λ ( x 21 + x 22 − 4) x1 , x 2 ,λ x1 , x 2 ,λ ∂L(x, λ ) = x 21 + x 22 − 4 ∂λ ∂L(x, λ ) = 1 + 2λ x 1 ∂x 1 ∂L(x, λ ) = 1 + 2λ x 2 ∂x 2 ⎡ ∂ 2L ⎢ ∂x 2 1 H x (x, λ ) = ⎢ 2 ⎢ ∂ L ⎢ ∂x x ⎣ 2 1 ⎡ 2 0⎤ ∂ 2L ⎤ ⎢ ⎥ PD 2λ 0 ⎤ ∂x 1 x 2 ⎥ ⎡ 0 2 ⎣ ⎦ ⎥ = ⇒ ⎢ 0 2λ ⎥ * * ∂ 2L ⎥ 0 ⎤ ND ⎡− 2 ⎣ ⎦ x ,λ ⎢ ⎥ ∂x 22 ⎥⎦ x* , λ * − 0 2 ⎣ ⎦ Basta que el mínimo sea respecto a las variables x Este corresponde a λ*=sqrt(2)/2: x1*= - sqrt(2)/2, x2* = - sqrt(2)/2 12 Cesar de Prada ISA-UVA Interpretación económica de los multiplicadores de Lagrange * * * min J (x) ⎫⎪ ⇒ min L(x, λ ) = min J (x) + λ' [h(x) − b ] L ( x , λ ) = J ( x ) x x, λ x, λ ⎬ h( x) = b ⎪⎭ ¿Cómo varía J(x*) si b cambia en una unidad? ⎫ ∂J (x * ) ∂J (x * ) ∂x * = ⎪⎪ ∂b ∂x * ∂b ⎬ * * * ∂ (h(x ) − b) ∂h(x ) ∂x ⎪ Multiplicando por λ*’ y sumando: − I = 0= ⎪⎭ ∂b ∂x * ∂b * * ⎡ ∂L(x * , λ * ) ⎤ ∂x * ∂J (x * ) ⎡ ∂J (x * ) * ∂h ( x ) ⎤ ∂x * * * ' ' λ ' λ ' − = λ + λ =⎢ − = − * * ⎥ * ⎢ ⎥ ∂b ∂x ⎦ ∂b ⎣ ∂x ⎣ ∂x ⎦ ∂b 13 Los multiplicadores de Lagrange óptimos (precios sombra) dan las sensibilidades opuestas de J* respecto a las restricciones b Cesar de Prada ISA-UVA Multiplicadores de Lagrange / Precios sombra de LP Programación Lineal, LP: max J = c' x Programación no Lineal con restricciones de igualdad x Ax = b x≥0 ¿Cómo varia J(x*) si b cambia en una unidad? La respuesta (max) usando la teoría de la dualidad de LP es la solución del dual z, denominada precio sombra ∂J = z* ∂b * 14 min J (x) ⎫⎪ x ⎬ h( x) = b ⎪⎭ La respuesta (min) usando los multiplicadores de Lagrange es -λ, ∂J * = −λ * ' ∂b Cesar de Prada ISA-UVA Programación no-lineal NLP min J (x) x h(x) = 0 g(x) ≤ 0 15 min x 12 − x2 ⎫ x1 , x 2 ⎪ x1 + x2 = 2 ⎪ ⎬ 2 2 x1 + x1 ≤ 4 ⎪ ⎪ x1 − 1 ≥ 0 ⎭ El caso general incluye restricciones de igualdad y desigualdad en las variables de decisión x. Suponiendo que las funciones J, g y h son continuamente diferenciables, es posible encontrar condiciones necesarias y (en ciertos casos ) suficientes de óptimo del problema NLP denominadas condiciones de Karush-Kunt-Tucker (KKT) (o solo KTC, Kunt-Tacker Conditions) x2 Conjunto factible 2 x1 x1+x2=2 x1=1 Cesar de Prada ISA-UVA Condiciones de optimalidad KKT min J (x) x h(x) = 0 g(x) ≤ 0 La idea fundamental en el desarrollo de las condiciones KKT parte de la Lagrangiana, considerando que, si una restricción de desigualdad está activa en el óptimo, entonces puede tratarse como una de igualdad asignándosele un multiplicador de Lagrange μ, y si no está activa entonces puede ignorarse con lo que su multiplicador μ debe hacerse cero. De esta forma μ o g deben ser cero. L ( x, λ , μ ) = J ( x ) + ∑ λ j h j ( x ) + ∑ μ i g i ( x ) j μ i g i ( x) = 0 i Por otra parte si aumentamos el lado derecho de g(x) ≤ 0 la región factible aumenta y, por tanto, J(x) puede tener un valor menor, de forma que la sensibilidad, medida por -μ, debe ser negativa, o sea μ ≥ 0. 16 Cesar de Prada ISA-UVA Condiciones de optimalidad KKT min J (x) x h(x) = 0 g(x) ≤ 0 17 De esta forma, el óptimo del problema NLP debe cumplir las condiciones de óptimo de la Lagrangiana L(x,λ,μ), mas las condiciones adicionales. Para funciones continuamente diferenciables J, h y g, las condiciones necesarias de óptimo respecto a las variables x son: ∂J ∂h ∂g ⎫ + λ' + μ' = 0⎪ ∂x ∂x ∂x ⎪ h(x) = 0 ⎪ ⎪ g(x) ≤ 0 ⎬ ⎪ μ i g i (x) = 0 ⎪ μ≥0 ⎪ ⎪⎭ ∇ x J ( x) + ∑ λ j ∇ x h j ( x) + ∑ μ i ∇ x g i ( x) = 0 j h j ( x) = 0 g i ( x) ≤ 0 μ i g i ( x) = 0 μi ≥ 0 i Además,∇xgi y ∇xhj para las restricciones activas en el óptimo, deben ser támbién linealmente independientes, Cesar de Prada ISA-UVA Cualificación de las restricciones La exigencia de que ∇xgi y ∇xhj (para las restricciones activas en el óptimo) sean linealmente independientes, (a fin de que el sistema de ecuaciones tenga solución) se conoce como cualificación de las restricciones y puede no ser fácil de verificar. En ciertos casos se cumple siempre: 9Cuando las restricciones son lineales [∇ x h (x) ⎡λ ⎤ ∇ x g(x)]⎢ ⎥ = −∇ x J (x) ⎣μ ⎦ 9Cuando las desigualdades son convexas y las igualdades lineales y hay un punto factible en el interior de la región marcada por las desigualdades. 18 Cesar de Prada ISA-UVA En el óptimo Problema con restricciones de desigualdad ∇ x g i ( x) ∇ x J ( x) i ∇ x g i ( x) Optimo Restricciones activas 19 ∇ x J ( x) = − ∑ μ i ∇ x g i ( x) Dado que, en el óptimo, para las restricciones activas μ >0 el gradiente de J, que es una combinación lineal de los gradientes de gj (activas), debe estar en un semiplano distinto a estos últimos Cesar de Prada ISA-UVA Condiciones KKT de suficiencia de primer orden min J (x) x h(x) = 0 g(x) ≤ 0 Si la función J es convexa, las restricciones gi convexas y las restricciones de igualdad hj son lineales, entonces la región factible es convexa y si existe una solución de las condiciones KKT, entonces dicha solución es el óptimo global del problema NLP ∇ x J ( x) + ∑ λ j ∇ x h j ( x) + ∑ μ i ∇ x g i ( x) = 0 j i h j ( x) = 0 g i ( x) ≤ 0 μ i g i ( x) = 0 20 μi ≥ 0 Cesar de Prada ISA-UVA x*(1,1) Ejemplo 2 Conjunto factible x2 min x 1 − x2 ⎫ x1 , x 2 ⎪ x1 + x2 = 2 ⎪ ⎬ 2 2 x1 + x2 ≤ 4 ⎪ ⎪ − x1 + 1 ≤ 0 ⎭ 2 2 x1 x1+x2=2 ¿Cumple las condiciones de suficiencia de primer orden? Si x1=1 L( x, λ , μ) = x12 − x2 + λ ( x1 + x2 − 2) + μ1 ( x12 + x22 − 4) + μ 2 ( − x1 + 1) ∇ x J (x) + ∑ λ j ∇ x h j (x) + ∑ μ i ∇ x g i (x) = 0 2 x1 + λ + μ1 2 x1 − μ 2 = 0 j h j ( x) = 0 g i ( x) ≤ 0 μ i g i ( x) = 0 21 μi ≥ 0 − 1 + λ + μ1 2 x 2 = 0 i ⇒ x1 + x2 = 2 μ1 ≥ 0 μ 2 ≥ 0 x 12 + x 22 ≤ 4 μ1 ( x 12 + x 22 − 4) = 0 − x1 + 1 ≤ 0 μ 2 (− x1 + 1) = 0 Cesar de Prada ISA-UVA Ejemplo 2 μ2 − λ 2(1 + μ1 ) 1− λ x2 = 2μ1 μ2 − λ 1− λ + =2 2(1 + μ1 ) 2μ1 x1 = ⎫ ⎪ − 1 + λ + μ1 2 x 2 = 0 ⎪ ⎪ x1 + x2 = 2 μ1 ≥ 0 μ 2 ≥ 0 ⎬ x 12 + x 22 ≤ 4 μ1 ( x 12 + x 22 − 4) = 0⎪⎪ ⎪⎭ − x1 + 1 ≤ 0 μ 2 (− x1 + 1) = 0 2 x1 + λ + μ1 2 x1 − μ 2 = 0 22 ⎡⎛ μ − λ ⎞ 2 ⎛ 1 − λ ⎞ 2 ⎤ 2 ⎟⎟ − 4⎥μ1 = 0 ⎟⎟ + ⎜⎜ ⎢⎜⎜ ⎢⎣⎝ 2(1 + μ1 ) ⎠ ⎝ 2μ1 ⎠ ⎥⎦ ⎡ − μ2 + λ ⎤ ⎢ 2(1 + μ ) + 1⎥μ 2 = 0 ⎣ ⎦ 1 Cesar de Prada ISA-UVA ⎧ μ2 − λ 1 − λ μ = μ = + =2 si 0 , 0 ⎨ Deben examinarse todas las 1 2 ⎩ 2(1 + μ1 ) 2μ1 alternativas para encontrar ⎧ μ2 − λ + 1 − λ = 2 posibles soluciones ⎪⎪ 2(1 + μ ) 2μ 1 1 ⎫ si μ1 = 0, μ 2 ≠ 0 ⎨ − μ2 + λ ⎪ μ2 − λ ⎪ +1 = 0 ⎪ x1 = ⎪⎩ 2(1 + μ1 ) 2(1 + μ1 ) ⎪ ⎧⎛ − λ ⎞ 2 ⎛ 1 − λ ⎞ 2 1− λ ⎪ x2 = ⎟ +⎜ ⎟ −4=0 ⎪⎪⎜ ⎪ 2(1 + μ1 ) ⎠ ⎝ 2μ1 ⎠ 2μ1 ⎪⎪ si μ 2 = 0, μ1 ≠ 0 ⇒ ⎨⎝ μ2 − λ 1 − λ 1− λ −λ ⎪ ⎬ + =2 + =2 ⎪ 2(1 + μ1 ) 2μ1 2 ( 1 ) 2 + μ μ ⎪ ⎩ 1 1 2 2 ⎪ ⎡⎛ μ − λ ⎞ ⎛ 1 − λ ⎞ ⎤ 2 ⎟ − 4⎥μ1 = 0 ⎪ ⎟ +⎜ ⎢⎜ μ2 − λ 1 − λ ⎧ + =2 ⎪ ⎢⎣⎝ 2(1 + μ1 ) ⎠ ⎝ 2μ1 ⎠ ⎥⎦ ⎪ 2 ( 1 ) 2 + μ μ 1 1 ⎪ ⎪ ⎡ − μ2 + λ ⎤ 2 2 ⎪ + μ = 1 0 ⎪⎛ μ 2 − λ ⎞ ⎛ 1 − λ ⎞ ⎢ 2(1 + μ ) ⎥ 2 ⎪ si 0 , 0 μ ≠ μ ≠ ⎟ +⎜ ⎟ −4 =0 ⎨⎜ ⎣ ⎦ 1 ⎭ 1 2 2 ( 1 ) 2 + μ μ ⎝ 1 ⎠ 1 ⎠ ⎪⎝ − μ2 + λ ⎪ +1 = 0 ⎪ 2(1 + μ1 ) ⎩ 23 Cesar de Prada ISA-UVA Detalle de la resolución μ2=0, μ1≠0 2 2 −λ 1− λ ⎫ ⎛ − λ ⎞ ⎛1 − λ ⎞ = − 2 ⎜⎜ ⎟⎟ + ⎜⎜ ⎟⎟ − 4 = 0⎪ 2μ1 2(1 + μ1 ) ⎪ ⎝ 2(1 + μ1 ) ⎠ ⎝ 2μ1 ⎠ 2 2 ⎬ −λ 1− λ ⎪ ⎛⎜ 2 − 1 − λ ⎞⎟ + ⎛⎜ 1 − λ ⎞⎟ = 4 =2 + ⎪⎭ ⎜⎝ 2μ1 ⎟⎠ ⎜⎝ 2μ1 ⎟⎠ 2(1 + μ1 ) 2μ1 ⎛1 − λ ⎞ ⎧ λ =1 1 − λ ⎛1 − λ ⎞ ⎟⎟ = 4 ⎟⎟ − 4 + ⎜⎜ ((1 − λ ) − 4μ1 )(1 − λ ) = 0⎨ 4 + ⎜⎜ 2μ1 ⎝ 2μ1 ⎠ ⎩1 − λ = 4μ1 ⎝ 2μ1 ⎠ −1 = 2 1 + μ1 = −1 / 4 μ1 = −5 / 4 NF λ =1→ 2(1 + μ1 ) 2 1 − λ = 4μ1 → 24 2 4μ1 − 1 4μ1 + =2 2(1 + μ1 ) 2μ1 x1 = 0, x2 = 2 NF 4μ1 − 1 + 2 = 2 → μ1 = 1 / 4, λ = 0 2(1 + μ1 ) Cesar de Prada ISA-UVA Ejemplo 2 ⎫ ⎪ μ2 − λ ⎪ x1 = 2(1 + μ1 ) ⎪ ⎪ si μ = 0, μ = 0 {λ = 1, x = −1 / 2, x = 5 / 2 NF 1− λ 1 2 1 2 x2 = ⎪ 2μ1 si μ1 = 0, μ 2 ≠ 0 {λ = 1, μ 2 = 3, x1 = 1, x2 = 1 ⎪ ⎪ μ2 − λ 1− λ ⎧μ1 = 1 / 4, λ = 0, x1 = 0, x2 = 2 NF ⎬ + =2 2(1 + μ1 ) 2μ1 ⎪ si μ1 ≠ 0, μ 2 = 0 ⎨ μ1 = −5 / 4, λ = 1 NF ⎩ 2 2 ⎪ ⎡⎛ μ − λ ⎞ ⎛ 1 − λ ⎞ ⎤ 2 ⎟⎟ + ⎜⎜ ⎟⎟ − 4⎥μ1 = 0⎪ si μ1 ≠ 0, μ 2 ≠ 0 {λ = 1; μ1 = 0, μ 2 = 3, x1 = 1, x2 = 1 ⎢⎜⎜ ⎪ ⎢⎣⎝ 2(1 + μ1 ) ⎠ ⎝ 2μ1 ⎠ ⎥⎦ Solución óptima ⎪ ⎡ − μ2 + λ ⎤ ⎪ ⎢ 2(1 + μ ) + 1⎥μ 2 = 0 ⎪⎭ ⎣ ⎦ 1 25 Cualificación de las restricciones min x 12 − x2 ⎫ x1 , x 2 ⎪ x1 + x2 = 2 ⎪ ⎬ 2 2 x1 + x2 ≤ 4 ⎪ ⎪ − x1 + 1 ≤ 0 ⎭ Optimo: x1=1,x2=1,λ=1,μ1=0,μ2=3 Restricciones activas ∇xh(x*), ∇xg(x*) (activas) ⎡1⎤ ⎡− 1⎤ ⎡1 − 1⎤ ∇ x h = ⎢ ⎥ ∇ x g = ⎢ ⎥ rango ⎢ =2 ⎥ ⎣1⎦ ⎣0⎦ ⎣1 0 ⎦ 26 Son linealmente independientes, luego se cumple la cualificación de las restricciones Cesar de Prada ISA-UVA Sensibilidad min J (x) x h(x) = b g(x) ≤ c A partir de la interpretación de las condiciones KKT como multiplicadores de Lagrange, se puede establecer la siguiente relación para las sensibilidades: ∂J ( x* ) ∂J (x* ) * = −λ ' = −μ * ' ∂b ∂c La cual nos permite deducir como cambia la función de costo cuando las restricciones se relajen en una unidad, lo cual es importante en problemas de toma de decisiones. 27 Cesar de Prada ISA-UVA Ejemplo 2 Optimo: x1=1,x2=1,λ=1,μ1=0,μ2=3, J=0 min J ( x1 , x2 ) = min x 12 − x2 ⎫ x1 , x 2 x1 , x 2 ⎪ ⎪ x1 + x2 = 2 Restricciones ¿Como varia el valor óptimo ⎬ 2 2 activas x1 + x2 ≤ 4 ⎪ de la función de coste J si se ⎪ aumenta el término derecho − x1 + 1 ≤ 0 ⎭ de las restricciones en una unidad? Sensibilidades: -1,0,-3 28 Si aumentasen una unidad cada una manteniendo las otras, la primera mejoraría en una unidad el costo J, no influiría en la segunda y la tercera mejoraría J en tres unidades Cesar de Prada ISA-UVA Condiciones de segundo orden Las condiciones de KKT son expresiones de primer orden que pueden dar lugar a máximos, mínimos o puntos de silla de la Lagrangiana L(x,λ, μ) en (x*,λ*,μ*). Las condiciones de segundo orden permiten determinar si se trata de un mínimo respecto a las variables x y proporcionan condiciones suficientes para la optimalidad de la solución. Vienen dadas por la condición sobre el Hessiano: * z ' ∇ 2x L(x * , λ * , μ * ) z > 0 29 ⎡ ∇ h( x ) ⎤ z=0 ∀z | ⎢ x * ⎥ ⎣∇ x g act (x )⎦ De modo que el Hessiano de L respecto a x es PD para todos los vectores z ortogonales a los gradientes de las restricciones activas en x*. Estos vectores dan origen al plano tangente a dichas restricciones. Para la necesidad basta con que el Hessiano sea PSD. (gact son restricciones activas) Cesar de Prada ISA-UVA Lagrangiana L( x, λ , μ) = x12 − x2 + λ ( x1 + x2 − 2) + μ1 ( x12 + x22 − 4) + μ 2 ( − x1 + 1) ⎧2 x1 + λ + μ1 2 x1 − μ 2 = 0 ∇ x J (x) + ∑ λ j ∇ x h j (x) + ∑ μi ∇ x gi (x) = 0 ⎨ j i ⎩ − 1 + λ + μ1 2 x 2 = 0 Ejemplo 2 min x 12 − x2 ⎫ x1 , x 2 ⎪ x1 + x2 = 2 ⎪ ⎬ 2 2 x1 + x2 ≤ 4 ⎪ ⎪ − x1 + 1 ≤ 0 ⎭ Optimo: x1=1,x2=1,λ=1,μ1=0,μ2=3 ⎡ ∇ x h( x * ) ⎤ z=0 ∀z | ⎢ z ' ∇ L(x , λ , μ )z > 0 * ⎥ ⎣∇ x g act (x )⎦ ⎡z ⎤ Restricciones [ 1 1]⎢ 1 ⎥ = 0 z1 + z 2 = 0 activas Vectores ⎣ z2 ⎦ 2 x Hessiano respecto a x ⎡ ∂L2 ⎢ ∂x 2 1 Hx = ⎢ 2 ⎢ ∂L ⎢⎣ ∂x2 ∂x1 30 ∂L2 ⎤ ∂x1∂x2 ⎥ ⎡2 + 2μ1 ⎥=⎢ 2 ∂L ⎥ ⎣ 0 ∂x22 ⎥⎦ * * * ⎡ z1 ⎤ [− 1 0]⎢ ⎥ = 0 − z1 = 0 ⎣ z2 ⎦ 0 ⎤ ⎡2 * [ ] z z H z z ' = − x ⎢0 2μ1 ⎥⎦ ⎣ ⎡2 [0 z ]⎢ Cumple necesidad pero ⎣0 no la suficiencia de planos tangentes 0⎤ ⎡ z ⎤ 2 z = 2 >0 ⎢ ⎥ ⎥ 0⎦ ⎣ − z ⎦ 0 ⎤ ⎡0 ⎤ =0 ⎢ ⎥ ⎥ 0⎦ ⎣ z ⎦ Cesar de Prada ISA-UVA Ejemplo 3 x12-x2 ≤ 4 -x1+x2 ≤ 2 x2 min ( x1 + 3) + x ⎫ x1 , x 2 ⎪⎪ x1 − x1 + x2 − 2 ≤ 0 ⎬ x12 − x2 − 4 ≤ 0 ⎪⎪ ⎭ L( x, λ , μ) = ( x1 + 3) 2 + x22 + μ1 ( − x1 + x2 − 2) + μ 2 ( x12 − x2 − 4) 2( x1 + 3) + μ1 ( −1) + μ 2 2 x1 = 0 ∇ x J ( x) + ∑ λ j ∇ x h j ( x) + ∑ μ i ∇ x g i ( x) = 0 2 x + μ (1) + μ ( −1) = 0 2 j h j ( x) = 0 g i ( x) ≤ 0 μ i g i ( x) = 0 31 μi ≥ 0 2 2 i 2 1 2 (− x1 + x2 − 2)μ1 = 0 μ1 ≥ 0 ( x12 − x2 − 4)μ 2 = 0 μ 2 ≥ 0 − x1 + x2 − 2 ≤ 0 x12 − x2 − 4 ≤ 0 Cesar de Prada ISA-UVA Ejemplo 3 2( x1 + 3) + μ1 (−1) + μ 2 2 x1 = 0⎫ ⎪ 2 x2 + μ1 (1) + μ 2 ( −1) = 0 ⎪ (− x1 + x2 − 2)μ1 = 0 μ1 ≥ 0 ⎪⎪ ⎬ ( x12 − x2 − 4)μ 2 = 0 μ 2 ≥ 0 ⎪ ⎪ − x1 + x2 − 2 ≤ 0 ⎪ 2 ⎪⎭ x1 − x2 − 4 ≤ 0 si μ1 = 0, μ 2 = 0 32 μ1 − 6 ⎫ ⎪ 2(1 + μ 2 ) ⎪ μ 2 − μ1 ⎪ x2 = 2 ⎪⎪ ⎛ 6 − μ1 ⎞ μ − μ1 ⎬ ⎜⎜ + 2 − 2 ⎟⎟μ1 = 0 ⎪ 2 ⎝ 2(1 + μ 2 ) ⎠ ⎪ 2 ⎛⎛ μ − 6 ⎞ μ − μ ⎞ 2 1 ⎜⎜ 1 ⎟μ = 0⎪⎪ ⎟ 4 − − ⎜ ⎜⎝ 2(1 + μ 2 ) ⎟⎠ ⎟ 2 2 ⎪⎭ ⎝ ⎠ → x1 = −3, x2 = 0 x1 = NF ⎧ 6 − μ1 − μ1 si μ1 ≠ 0, μ 2 = 0 ⎨ + − 2 = 0 → μ1 = 1, x1 = −5 / 2, x2 = −1 / 2 NF 2 ⎩ 2 Cesar de Prada ISA-UVA Ejemplo 3 μ2 36 ⎧ ⎪ 4(1 + μ ) 2 − 2 = 4 2 ⎪⎪ 3 2 ⎨μ 2 + 10μ 2 + 17μ 2 = 10 ⎪μ = −7.58, − 2.87, 0.46 ⎪ 2 ⎪⎩ x1 = −2.06, x2 = 0.23 NF μ − μ1 6 − μ1 + 2 −2=0 2(1 + μ 2 ) 2 μ1 − 6 ⎫ ⎪ 2(1 + μ 2 ) ⎪ si μ1 = 0, μ 2 ≠ 0 μ 2 − μ1 ⎪ x2 = 2 ⎪⎪ ⎛ 6 − μ1 ⎞ μ 2 − μ1 ⎬ ⎜⎜ + − 2 ⎟⎟μ1 = 0 ⎪ 2 ⎧ ⎝ 2(1 + μ 2 ) ⎠ ⎪ ⎪ ⎛ ⎛ μ − 6 ⎞2 μ − μ ⎞ ⎪ ⎪ 2 1 ⎜⎜ 1 ⎟ μ ≠ μ ≠ si 0 , 0 2 ⎟⎟ − ⎨ − 4 μ 2 = 0⎪ 1 2 ⎜ ⎜ ⎝ 2(1 + μ 2 ) ⎠ ⎟ 2 ⎪⎛⎜ μ1 − 6 ⎞⎟ − μ 2 − μ1 − 4 = 0 ⎪⎭ ⎝ ⎠ ⎪⎩⎜⎝ 2(1 + μ 2 ) ⎟⎠ 2 2 ⎛ μ 2 − μ1 ⎞ μ − μ1 − 2⎟ − 2 = 4 → (μ 2 − μ1 ) 2 = 10(μ 2 − μ1 ) ⎜ 2 ⎝ 2 ⎠ Optimo, por ser la ⎧ μ 2 = μ1 → μ1 = 2 / 5, μ 2 = 2 / 5, x1 = −2, x2 = 0 región convexa y ⎪ J convexa ⎨μ − μ = 10 → 6 − μ1 + 6 = 0 → μ = −14.4 NF 2 1 1 11 + μ1 33 ⎪⎩ Cesar de Prada ISA-UVA x1 = Cualificación de las restricciones min ( x1 + 3) 2 + x22 ⎫ x1 , x 2 ⎪⎪ − x1 + x2 − 2 ≤ 0 ⎬ x12 − x2 − 4 ≤ 0 ⎪⎪ ⎭ Optimo: x1=-2,x2=0,μ1=2/5,μ2=2/5, J=1 Restricciones activas ∇xh(x*), ∇xg(x*) (activas) ⎡2( −2)⎤ ⎡− 1 − 4⎤ ⎡− 1⎤ =2 ∇ x g1 = ⎢ ⎥ ∇ x g 2 = ⎢ rango ⎢ ⎥ ⎥ ⎣ −1 ⎦ ⎣ 1 − 1⎦ ⎣1⎦ 34 Son linealmente independientes, luego se cumple la cualificación de las restricciones Cesar de Prada ISA-UVA Sensibilidad min ( x1 + 3) 2 + x22 ⎫ x1 , x 2 ⎪⎪ − x1 + x2 − 2 ≤ 0 ⎬ x12 − x2 − 4 ≤ 0 ⎪⎪ ⎭ Sensibilidades: -2/5,-2/5 Optimo: x1=-2,x2=0,μ1=2/5,μ2=2/5, J=1 Restricciones activas ¿Como varia el valor óptimo de la función de coste J si se aumenta el término derecho de las restricciones en una unidad? Si aumentasen una unidad cada una manteniendo la otra, J mejoraría en 2/5 en cada caso 35 Cesar de Prada ISA-UVA L( x, λ , μ) = ( x1 + 3) 2 + x22 + μ1 ( − x1 + x2 − 2) + μ 2 ( x12 − x2 − 4) Lagrangiana 2( x + 3) + μ1 ( −1) + μ 2 2 x1 = 0 ∇ x J ( x ) + ∑ λ j ∇ x h j ( x ) + ∑ μ i ∇ x g i ( x ) = 0 ⎧⎨ 1 j i ⎩2 x2 + μ1 (1) + μ 2 ( −1) = 0 Ejemplo 3 Optimo: x1=-2,x2=0,μ1=2/5,μ2=2/5, J=1 Condiciones de 2º orden ⎡ ∇ x h( x * ) ⎤ ∀z | ⎢ z=0 * ⎥ ⎣∇ x g act (x )⎦ z ' ∇ L(x , λ , μ )z > 0 min ( x1 + 3) + x ⎫ x1 , x 2 ⎪⎪ − x1 + x2 − 2 ≤ 0 ⎬ Restricciones ⎡ z1 ⎤ activas [ ] ⎪ 1 1 − ⎢ z ⎥ = 0 − z1 + z 2 = 0 Vectores x12 − x2 − 4 ≤ 0 ⎪ de planos ⎣ 2⎦ ⎭ tangentes z ⎡ 1⎤ [ ] 2 ( 2 ) 1 − − ⎢ z ⎥ = 0 − 4 z1 − z 2 = 0 Hessiano respecto a x ⎣ 2⎦ 2 2 ⎡ ∂L ∂L ⎤ ⎥ ⎡2 + 2μ 0⎤ ⎢ ∂x 2 ⎡14 / 5 0⎤ ⎡ z ⎤ ∂ x ∂ x 2 * 2 1 2⎥ [ ] z ' z = 14 /5 > 0 H x = ⎢ 12 H z z z = = x 2 ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ∂L ⎥ ⎣ 0 2⎦ 0⎦ ⎣ z ⎦ ⎢ ∂L ⎣ 0 ⎢⎣ ∂x2 ∂x1 ∂x22 ⎥⎦ ⎡14 / 5 0⎤ ⎡ z ⎤ 2 [z − 4 z ]⎢ = 14 /5 > 0 z ⎢ ⎥ ⎥ 0⎦ ⎣ − 4 z ⎦ ⎣ 0 Cumple la suficiencia 2 36 2 2 2 x * * * Cesar de Prada ISA-UVA Ejemplo 4 V=20V R + - 10Ω Encontrar el valor de R de modo que se maximice la potencia absorbida en dicha resistencia i 400 R ⎫ ⎫ min 2⎪ R (R + 10) ⎬ ⎬ 20 = IR + 10 I ⎭ ⎪⎭ R≥0 P = I 2R 37 Cesar de Prada ISA-UVA Solución de problemas NLP z z 38 La solución analítica de un problema NLP utilizando las condiciones KKT solo es posible en casos sencillos Existen varias alternativas prácticas para abordar la solución numérica de un problema NLP. – Explotar la estructura particular del mismo (QP, Wolfe,..) – Transformar el problema en otro equivalente sin restricciones (Funciones de penalización) – Sucesión de problemas aproximados mas sencillos (SLP, Cutting Plane,..) – Resolución aproximada secuencial de las condiciones KKT (SQP) – Métodos tipo gradiente (GRG) – Etc. Cesar de Prada ISA-UVA Programación Cuadrática (QP) Al igual que existen muchos problemas prácticos de interés tipo LP, otro tipo particular de problemas de optimización con restricciones que tienen mucha aplicación son los denominados de Programación Cuadrática, o QP, en que la función de costo es cuadrática en las variables de decisión y las restricciones son lineales. 1 min J (x) = c' x + x' Qx x 2 Ax = b x≥0 Q (n x n) simétrica 39 Se pueden encontrar formulaciones equivalentes que expresan el problema en términos de restricciones de desigualdad, como maximización, etc. Para ello se utilizan las mismas técnicas de variables de holgura, cambios de signo, etc. Que en la LP A (m x n) rango m < n Cesar de Prada ISA-UVA Programación cuadrática x2 x2 x* x* x1 x1 A diferencia de la programación lineal, en el caso de la programación cuadrática el óptimo puede encontrarse en el interior o en el contorno de la región factible 40 Cesar de Prada ISA-UVA Programación cuadrática (QP) 1 min J (x) = c' x + x' Qx x 2 Ax − b = 0 −x≤0 Técnicas de solución: 9Mediante las condiciones KKT 9Conjuntos activos 9Métodos mas generales (Wolfe) 41 9Otros Al ser A de rango m, los gradientes ∇xh = A, ∇xg = -I son independientes y se cumple la cualificación de las restricciones Si la matriz Q es positiva semi-definida, entonces J es convexa, y como la región factible, si existe, también lo es, una solución local del problema es un óptimo global y puede encontrarse resolviendo las condiciones KKT Si Q no es PSD, entonces pueden existir óptimos locales o no existir solución y las condiciones KKT solo son necesarias. Cesar de Prada ISA-UVA Resolución mediante KKT (DantzingWolfe) 1 min J (x) = c' x + x' Qx x 2 Ax − b = 0 −x≤0 42 Lagrangiana: 1 L( x, λ , μ) = c' x + x ' Qx + λ ' ( Ax − b) − μ' x 2 Se puede encontrar una solución factible del conjunto de ecuaciones lineales en (x,λ,μ) como un problema LP en dichas variables con el algoritmo simplex tipo I, y mantener la condición μ’x=0 imponiendo como regla de cambio de pivote que no esten simultáneamente en la base columnas con componentes del vector (x,λ,μ) distintas de cero en x y en μ Condiciones KKT: c + Qx + A ' λ − μ = 0 Ax = b x ≥ 0, μ ≥ 0 μ' x = 0 Ecuaciones lineales excepto por μ’x = 0, ó x ó μ son cero. Cesar de Prada ISA-UVA Resolución mediante KKT c + Qx + A ' λ − μ = 0⎫ λ =σ−δ ⎪ Ax = b ⎬ ⇒ σ ≥ 0, δ ≥ 0 ⎪ z ' = (x, σ, δ, μ) x ≥ 0, μ ≥ 0 ⎭ μ' x = 0 La condición μ’x=0 se impone a traves de reglas sobre las columnas en las operaciones de pivote ⎡x⎤ c + Qx + A ' (σ − δ) − μ = 0⎫ ⎡Q A' − A' − I ⎤ ⎢σ ⎥ ⎡− c⎤ ⎢ ⎥= ⎪⎢ ⎥ Ax = b ⎬ ⎣A 0 0 0 ⎦ ⎢δ ⎥ ⎢⎣ b ⎥⎦ ⎪ ⎢μ ⎥ z≥0 z≥0 ⎭ ⎣ ⎦ max − (1,1,...1) ν ⎫ ⎪ Problema tipo Fase I del simplex cuya solución ⎬ óptima, si ν*=0, da la solución de las ⎡ν⎤ [I M ]⎢ ⎥ = β, z ≥ 0, ν ≥ 0⎪ condiciones KKT ⎣z ⎦ ⎭ Cesar de Prada ISA-UVA z, ν 43 Conjuntos activos (Active set) Está indicado para problemas formulados en términos de desigualdades lineales. El método hace uso del hecho 1 que, en un determinado paso del algoritmo, las min J (x) = c' x + x' Qx 2 restricciones activas (cuyos índices forman el conjunto x activo Λ) hay que considerarlas como igualdades, Ax ≤ b = 0 mientras que las no activas pueden eliminarse de la formulación momentáneamente En cada paso del algoritmo el problema a resolver es del tipo: 1 ⎫ min J (x) = c' x + x' Qx ⎪ x 2 ⎬ PΛ ⎪⎭ a i ' x − βi = 0 i ∈ Λ 44 En el que no existen restricciones tipo ≤ , y puede resolverse mas facilmente, p.e. por sustitución o multiplicadores de Lagrange Cesar de Prada ISA-UVA Método de los conjuntos activos 1. 2. 3. 4. 5. 45 Escoger xk y calcular Λ x2 Resolver el problema , PΛ, asociado θk con igualdades en Λ. Sea θk la solución y λk sus multiplicadores de Lagrange xk+1 Calcular xk+1=xk+αk(θk-xk) Si θk no xk verifica una restricción que no está en Λ (αk <1) añadir el índice a Λ x1 Si los λk que corresponden a desigualdades son todos ≥ 0, entonces θk es óptimo. En caso ⎛ contrario eliminar el índice p βi − a i ' x k ⎞⎟ ⎜ correspondiente al menor de ellos de α k = min 1, min ⎜ i∉Λ a ' (θ − x k ) ⎟ Λ ⎝ ai '( θk −xk )<0 i k ⎠ Hacer k=k+1 y volver a 2 Cesar de Prada ISA-UVA Ejemplo QP (Dinámico) w e PID u K e − ds τs + 1 + y w min K p ,Ti ,Td y 2 e ( t ) ∫ dt MISE K p ≥ 0, Ti ≥ 0, Td ≥ 0 error = w - y ( función lineal de Kp , Ti, Td ) 46 Cesar de Prada ISA-UVA Método de Wolfe min J (x) x Ax ≤ b x≥0 El algoritmo de Wolfe está orientado a resolver problemas algo mas generales que los de tipo QP: Aquellos en los que la función de costo no tiene por que ser cuadrática, aunque se mantienen las restricciones lineales Se resuelve mediante una sucesión de problemas LP aproximados En concreto sustituye J(x) por una aproximación de primer orden, y usa el resultando de este problema para definir un dirección de búsqueda factible en la que se mejora J(x) respetando las restricciones 47 Cesar de Prada ISA-UVA Método de Wolfe min J (x) x Ax ≤ b x≥0 Partiendo de un xk factible, se resuelve el problema linealizado en xk de tipo LP: min J (x k ) + ∇ x J (x k )(x − x k ) x Ax ≤ b xk xk+1 x$ x≥0 Por ser un problema LP tiene una solución óptima en un vértice x$ y por tanto : $ J (x k ) = J (x k ) + ∇ x J (x k )(x k − x k ) ≥ J (x k ) + ∇ x J (x k )(x k − x k ) J (x k ) ≥ J (x k ) + ∇ x J (x k )(x $k − x k ) ⇒ 0 ≥ ∇ x J (x k )(x $k − x k ) Con lo cual la dirección xk$ - xk es una en la que J(x) disminuye 48 Cesar de Prada ISA-UVA Método de Wolfe El segundo paso del algoritmo consiste en minimizar J(x) en la dirección xk$ - xk en el segmento entre xk y xk$ el cual es factible. Esto es una optimización escalar que se resuelve fácilmente. Región factible xk xk+1 xk$ min J (x k + σ k (x $k − x k )) σk x k +1 = x k + σ*k (x $k − x k ) De esta forma se determina un nuevo xk+1 iterandose hasta que se cumpla una condición del tipo: 49 x k +1 − x k ≤ ε2 ε0 + xk J (x k +1 ) − J (x k ) ≤ ε3 ε 0 + J (x k ) xk+1$ xk xk+1 Cesar de Prada ISA-UVA Compresor con tres etapas M q T P0 T P1 T P2 q moles/h T ºK γ = 4/3 50 Si un gas entra a 1bar y debe salir a 64 bares manteniendo q y T constantes, ¿cuales deben ser las presiones de trabajo de cada etapa intermedia para gastar la mínima energía? T P3 La potencia consumida por un compresor adiabático reversible en el que la entrada está a la temperatura T es: γ −1 ⎡ ⎤ γ ⎢⎛ Psal ⎞ γ ⎜⎜ ⎟⎟ − 1⎥ W = qRT ⎥ γ − 1 ⎢⎝ Pent ⎠ ⎣ ⎦ cp γ= R = constante gases cv Cesar de Prada ISA-UVA Compresor La potencia total consumida será la suma de la que consume cada compresor M q T P0 T P1 T P2 1 1 1 ⎡ ⎤ 4 4 4 ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ P P P WTotal = qRT 4 ⎢⎜⎜ 1 ⎟⎟ + ⎜⎜ 2 ⎟⎟ + ⎜⎜ 3 ⎟⎟ − 3⎥ ⎢⎝ P0 ⎠ ⎝ P1 ⎠ ⎝ P2 ⎠ ⎥ ⎣ ⎦ P1 ≥ P0 , P1 ≤ P2 ≤ P3 51 T P3 1 4 ⎛ P ⎞ ⎛ 64 ⎞ min P1 + ⎜⎜ 2 ⎟⎟ + ⎜⎜ ⎟⎟ P1 , P2 ⎝ P1 ⎠ ⎝ P2 ⎠ P1 ≥ 1, P1 ≤ P2 ≤ 64 1 4 1 4 Cesar de Prada ISA-UVA Compresor / Método de Wolfe 1 4 1 4 ⎛ x ⎞ ⎛ 64 ⎞ min x1 + ⎜⎜ 2 ⎟⎟ + ⎜⎜ ⎟⎟ x1 , x2 ⎝ x1 ⎠ ⎝ x2 ⎠ − x1 ≤ −1 ∂J x1 − x2 ≤ 0 ∂x 1 x2 ≤ 64 ∂J 1 4 x2 ∂x 2 64 Punto factible inicial x1=2,, x2 =10 Linealización: = 0.25x 1− 0.75 (1 − x 02.25 x 1− 0.5 ) 2,10 = −0.0383 2 ,10 = 0.25x 2− 0.75 ( x 1− 0.25 − 64 0.25 x 2− 0.5 ) 2,10 = −0.00238 2 ,10 min (J (2,10) − 0.0383( x 1 − 2) − 0.00238( x 2 − 10)) x2=x1 x1 , x 2 − x 1 ≤ −1 x1 − x 2 ≤ 0 52 1 J (x k ) + ∇ x J (x k )(x − x k ) x1 x 2 ≤ 64 J(2,10)=4.275 Cesar de Prada ISA-UVA Compresor / Método de Wolfe min (−0.0383 x1 − 0.00238 x2 ) x1 , x2 − x1 ≤ −1 Problema LP equivalente, puede resolverse gráficamente. Costo: -0.0383x1 – 0.00238x2 = c < 0 x1 − x2 ≤ 0 x2 = -16.09x1-420.16 c x2 ≤ 64 Optimo LP: (64,64) x2 64 x2=x1 1 53 x2 (64,64) x1 Proporciona una dirección de minimización de J (64,64) 64 (2,10) 1 x2=x1 x1 Cesar de Prada ISA-UVA Compresor / Método de Wolfe Paso 2: minimización en el segmento (2,10) a (64,64) x2 64 (2,10) 1 (64,64) min J (2 + α(64 − 2), 10 + α(64 − 10)) α 0 ≤ α ≤1 x2=x1 x1 Puede resolverse por interpolación, sección dorada, etc. Solución: α* = 0.027 Nuevo punto: x1= 2+0.027 62=3.69 x2= 10+0.027 54=11.47 J=4.25 54 Se continua iterando hasta que no haya mejora apreciable Cesar de Prada ISA-UVA Programación lineal sucesiva SLP Una extensión natural del método de Wolfe aplicable al problema general NLP es linealizar J(x) y las restricciones en torno al punto xk con lo que resulta un problema LP aproximado cuya solución xk* se supone estará mas próxima al óptimo NLP. A continuación se toma xk+1=xk* y se vuelve a linealizar J(x) y las restricciones iterándose hasta llegar a un punto en que no hay cambio apreciable en J y en x min J (x)⎫ min J (x k ) + ∇ x J (x k )(x − x k )⎫ x x ⎪ ⎪ h(x) = 0 ⎬ ≈ h(x k ) + ∇ x h(x k )(x − x k ) = 0 ⎬ m ≤ x − x k ≤ M g(x) ≤ 0 ⎪ g (x k ) + ∇ x g (x k )(x − x k ) ≤ 0 ⎪ ⎭ ⎭ 55 Se añaden restricciones sobre las máximas desviaciones del punto de linealización que aseguran que esta es aceptable Cesar de Prada ISA-UVA Métodos de Penalización La idea básica es transformar el problema NLP En otro sin restricciones tal que su solución se aproxime a la del NLP min J (x) x h(x) = 0 g(x) ≤ 0 min V (x, η) = min J (x) + ∑ ηi Pi (hi (x), g i (x)) x x i V es la función a minimizar que añade a J las funciones de penalización Pi. ηi son parámetros que se va ajustando a lo largo del algoritmo para acercar la minimización de V a la solución del problema NLP 56 Cesar de Prada ISA-UVA Funciones de Penalización min V (x, η) = min J (x) + ∑ ηi Pi (hi (x), g i (x)) x x i La principal característica de las funciones de penalización P, es que tienden a cero cuando se satisface las restricciones, pero toma un valor muy grande cuando éstas son violadas. De manera tal que el algoritmo no realiza la búsqueda del mínimo de V en esta región. Las penalizaciones P modifican la función de coste original J, incrementando su valor en aquellas regiones donde no se satisfacen las restricciones. Funciones de Penalización para: gi (x) ≤ 0 57 P P gi(x) Funciones de Penalización para: h(x) = 0 h(x) Cesar de Prada ISA-UVA Funciones de Barrera/Penalización gi(x) ≤ 0 P Penalización externa gi(x) ≤ 0 P Penalización: Si se violan las restricciones, entonces P toma valores muy grandes. El óptimo puede violar ligeramente gi(x) las restricciones Penalización interior o de barrera gi(x) 58 h(x) = 0 P Penalización parabólica h(x) Barrera: si el valor de gi(x) se aproxima a la restricción, entonces P toma un valor muy grande. Fuerza a que x se encuentre dentro de la región factible Cesar de Prada ISA-UVA Funciones de Penalización Restricciones de Igualdad h( x) = 0 Si h(x) se desvía del valor de cero , entonces la función P crece cuadráticamente, penalizando los valores de V(x) en los puntos no factibles. El parámetro η proporciona la magnitud de la penalización. Se debe adicionar un término η(hi(x))2 a la función objetivo J, por cada una de las restricciones de igualdad existentes. 59 P Penalización para bólica ηh(x)2 h(x) P, función continua con derivadas continuas Valor Absoluto η|h(x)|, discontinuas en h(x) = 0 P h(x) Cesar de Prada ISA-UVA Ejemplo de restricción de igualdad min ( x1 + 3) 2 + x22 ⎫⎪ x1 , x2 ⎬ − x1 + x2 − 2 = 0 ⎪⎭ x2 Problema original -x1+x2 = 2 Conjunto factible x1 min ( x1 + 3) 2 + x22 + η(− x1 + x2 − 2) 2 x1 , x2 -x1+x2 = 2 Problema con la penalización añadida Curvas de nivel deformadas que fuerzan soluciones en torno a la restricción –x1+x2=2 (Aunque el problema es díficil numéricamente al aumentar η) 60 x2 x1 Matlab Cesar de Prada ISA-UVA Ejemplo 1 η =0 función original J(x) η =1 Función de Penalización V(x)=J(x)+ ηP η =10 Función de Penalización V(x)=J(x)+ ηP 61 El mínimo de J(x) se encuentra alrededor de h(x)=0 Cesar de Prada ISA-UVA Funciones de Penalización Restricciones de desigualdad g ( x) ≤ 0 Penalización Infinita 0 if g( x ) ≤ 0 ⎧ P( g( x )) = ⎨ 20 ⎩10 g( x ) if g(x ) > 0 Penalización Exterior P g(x) Principal inconveniente: discontinua en g(x) = 0 Penalización cuadrática asimétrica (brakets) P( g( x )) = [max(0, g( x ))] 2 Penalización exterior Continua y con derivadas continuas 62 Al igual que con otras funciones de penalización: se pueden violar ligeramente las restricciones P g(x) Cesar de Prada ISA-UVA Funciones de Penalización P Penalización Exacta En problemas con restricciones de igualdad y desigualdad el mínimo de la función de coste: min J (x) + ∑ ωi hi (x) + ∑ σ i max(0, g j (x)) x i j Coincide exactamente con el óptimo x* de un problema NLP si los pesos ωi, σj satisfacen: 0 ≤ ωi ≥ λ*i 63 h(x) Principal inconveniente: discontinuidades en h(x) = 0 and g(x) = 0 P 0 ≤ σ i ≥ μ*i donde x*,λ*, μ* son la solución de las condiciones de KKT. Luenberger (1984) g(x) Cesar de Prada ISA-UVA Funciones de Barrera Barrera Logarítmica P ( g (x)) = − ln(− g (x)) Los puntos que se encuentran dentro de la región factible se favorecen, mientras que los que se encuentran cercanos a g(x) se penalizan. Se construye una barrera infinita antes de las restricciones P es continua, pero si por alguna razón, las restricciones se violan, es muy difícil volver a la situación anterior 64 P Función de barrera o interior g(x) Nótese que con funciones de barrera, el parámetro η tiene que decrecer progresivamente para que permita un punto cercano a las restricciones Cesar de Prada ISA-UVA Número de Condición del Hessiano -x1+x2 = 2 x2 x1 65 Cuando el parámetro η se modifica para forzar a que los ptos. xk del algoritmo estén próximos a modificar la forma de los contornos de las restricciones, el problema de mal condicionamiento se incrementa. Un número de condición de 105 es moderadamente grande, 109 es grande y 1014 muy grande por tanto métodos basados en la inversa del hessiano no funcionará. Cesar de Prada ISA-UVA Algoritmos con funciones de penalización 1. 2. 3. 4. 66 Formular el problema NLP como uno sin restricciones con funciones de penalización añadidas V(x,η) = J(x) + Σηi Pi(gi(x),hi(x)) Resolver el problema de minimizar V respecto a x con un valor de ηi fijo Modificar cada ηi de acuerdo a una cierta regla, aumentándolos si P es una penalización exterior y disminuyéndolos si es una barrera interior Comprobar las condiciones de finalización, si no se cumplen volver al paso 2 Cesar de Prada ISA-UVA Ejemplo de restricciones de desigualdad min ( x1 + 3) 2 + x22 ⎫⎪ x1 , x2 ⎬ 2 x1 − x2 − 4 ≤ 0 ⎪⎭ Problema original x12-x2 ≤ 4 Región factible x2 x1 Problema con penalización añadida tipo cuadrática asimétrica 1 min ( x1 + 3) + x + ηP ( g ( x)) 2 x1 , x2 η=2 2 2 0 -1 -2 ⎧ 0 si x12 − x2 − 4 ≤ 0 P ( g ( x)) = ⎨ 2 2 2 ⎩( x1 − x2 − 4) si x1 − x2 − 4 > 0 -3 -4 -5 -6 -7 -8 -4 67 -3 -2 -1 0 1 2 Matlab Cesar de Prada ISA-UVA 3 Ejemplo 2 η =0 función original J(x) η =5 función de penalización V(x)=J(x)+ ηP 800 600 400 0 -1 200 -2 0 2 -3 0 4 2 -2 0 -4 -6 68 -2 -4 El mínimo se encuentra dentro de la región g(x)≤0 -4 -5 -6 -3 -2 -1 0 1 2 Cesar de Prada ISA-UVA Restricciones duras y blandas z z z 69 Las restricciones se suelen clasificar en duras (hard) y blandas (soft). Las primeras son aquellas que, como las leyes físicas, ciertos límites, etc., deben cumplirse estrictamente. Las segundas son aquellas en las que se permite una cierta desviación sobre el límite, como en especificaciones, capacidades,.. El concepto de penalización es útil cuando se considera que existen restricciones blandas en las cuales se puede permitir una cierta violación de las mismas a costa de pagar un precio por ello. Los problemas con funciones de penalización se denominan a veces “elásticos” en contraposición a las formulaciones clasicas “inelásticas” Cesar de Prada ISA-UVA Factibilidad / variables de holgura z Un procedimiento alternativo a las funciones de penalización para usar restricciones “blandas” y garantizar que existe solución factible con métodos tipo LP, QP, SLP, SQP, etc. es la introducción de variables de holgura en el lado derecho de las restricciones, que deben minimizarse, acompañadas de su correspondiente penalización en el índice J. min J ( x ) + αε' ε + βδ' δ x ,ε ,δ h(x) = ε g(x) ≤ δ δ≥0 70 Si existe solución factible del problema original, obviamente el optimo dara ε = 0, δ = 0, y se tiene la misma solución. Pero si no existe, ε y δ amplian la región factible, justo lo mínimo para que exista dicha solución factible. Cesar de Prada ISA-UVA