PROBLEMAS DE OPTIMIZACIÓN CON RESTRICCIONES. PROBLEMA DE PROGRAMACIÓN NOLINEAL (NLP). Optimización con restricciones La presencia de restricciones reduce la región en la cual buscamos el óptimo. Los criterios de optimalidad vistos hasta ahora no siempre se cumplen f (x ) = (x − 2 ) 2 ∇f (x ) = 0, x = 2 Pero si x ≥ 4 entonces el mínimo tiene que ser en x=4 y este no es un punto estacionario ya que f ' (4 ) = 4, por tanto no es el punto estacionario de f Problemas con restricciones de igualdad 1 min f (x1 , x 2 ,K, x N ) s.a. h k (x 1 , x 2 ,K, x N ) = 0 k = 1,K, K Método de eliminación de variables: eliminando, K variables independientes, el problema se convierte en un problema sin restricciones La dimensión del problema se reduce de N a N-K El problema que se obtiene se puede resolver con cualquier algoritmo de optimización sin restricciones Problemas con restricciones de igualdad 2 Ejemplo: min f (x ) = x1x 2 x 3 s.a. h1 (x ) = x1 + x 2 + x 3 − 1 = 0 Eliminamos x3 min f (x1 , x 2 ) = x1x 2 (1 − x1 − x 2 ) −1 2 2 Pero si h1 (x ) = x1 x 3 + x 2 x 3 + x 2 x1 = 0 No es posible eliminar ninguna variable explícitamente Es necesario encontrar un método que permita manipular las restricciones Problemas con restricciones de igualdad 3 • Método de los multiplicadores de Lagrange: Transforma el problema original a uno equivalente sin restricciones mediante los multiplicadores de Lagrange. Minimizar Sujeto a • f (x1, x2,..., xN) hk (x1, x2,..., xN) = 0 k=1,2,...,K Se transforma en: K Minimizar L(x,v) = f(x) - ∑ vihi ( x ) i=1 • Solución: encontrar el mínimo de L(x,v) en función de v y ajustar v para satisfacer las restricciones. => Se obtiene un sistema de ecuaciones cuya solución es el óptimo de la función original. Problemas con restricciones de igualdad 4 • Sistema con N+K ecuaciones y N+K incógnitas (x y v): ∂L =0 ∂xi hk (x) = 0 • i = 1,..., N k=1,... K Para saber si es máximo o mínimo se calcula la matriz Hessiana de L con respecto a x: – Si HL(x;v) es definida positiva – Si HL(x;v) es definida negativa • => mínimo => máximo Extendiendo los multiplicadores de Lagrange a restricciones de desigualdad, tenemos las condiciones de kuhn-Tucker Problema de Programación no-lineal (NLP) min f (x ) s.a g j (x ) ≥ 0 h k (x ) = 0 j = 1,K, J k = 1,K, K x = ( x 1 ,K, x N ) Se dice que g j (x ) ≥ 0 es una restricción activa en el punto x si g j (x ) = 0 y es inactiva si g j (x ) > 0 Un punto factible es aquél que satisface las restricciones Una región factible es la zona donde se satisfacen las restricciones g j ( x) > 0 g j ( x) = 0 Condiciones de Kuhn-Tucker Encontrar los vectores x ( N×1) , μ (1×J ) , λ (1×K ) que satisfaga las siguientes condiciones: J K j=1 k =1 ∇f ( x ) − ∑ μ j∇g j ( x ) − ∑ λ k ∇h k ( x ) = 0 g j (x) ≥ 0 j = 1,2,..., J h k (x) = 0 k = 1,2,..., K μ jg j ( x ) = 0 j = 1,2,..., J μj ≥ 0 j = 1,2,..., J Interpretación de las condiciones de KT min f (x ) s.a h k (x ) = 0 k = 1,K, K ∇f ( x ) − ∑ λ k ∇ h k ( x ) = 0 h k (x ) = 0 k Condiciones de KT L( x ; λ ) = f ( x ) − ∑ λ k h k ( x ) Función de Lagrange k ∇ L ( x ) = ∇f ( x ) − ∑ λ k ∇h k ( x ) = 0 ∇ L (λ ) = h k (x ) = 0 k Condiciones de Optimalidad de primer orden Las condiciones de KT son las condiciones de optimalidad de primer orden del Problema de Lagrange Teorema de Necesidad de Primer Orden min f (x ) s.a g j (x ) ≥ 0 h k (x ) = 0 j = 1,K, J k = 1,K, K x = (x 1 ,K, x N ) Sean f, g, y h funciones diferenciables, y x* una solución factible del problema. { } * * Sea I = j g j (x ) = 0 . Además ∇g j (x ) ∀j ∈ I * y ∇h k (x ) son linealmente independientes. Si x* es una solución óptima del problema entonces existe (μ ,λ ) * * tales que (x , μ , λ ) * * * resuelve las condiciones de KT A las condiciones de que ∇g j (x * ) ∀j ∈ I y ∇h k (x * ) sean linealmente independiente en el óptimo se le llama restricción de cualificación Restricción de Cualificación Para algunos problemas de programación no lineal, además las restricciones de cualificación se satisfacen cuando: 1. Todas las restricciones de desigualdad e igualdad son lineales 2. Cuando todas las restricciones de desigualdad son funciones cóncavas y las de igualdad son lineales y existe al menos una solución x factible, estrictamente dentro de la región factible de las restricciones de desigualdad. Cuando la restricción de cualificación no se alcanza en el óptimo, puede que no exista solución al problema de KT Condición necesaria: si el punto no cumple las condiciones de KT no es óptimo, pero si las cumple puede ser óptimo o no. Teorema de Suficiencia de Primer Orden min f (x ) g j (x ) ≥ 0 s.a h k (x ) = 0 j = 1,K, J k = 1,K, K x = (x 1 ,K, x N ) Sea la función f(x) convexa, las restricciones de desigualdad gj(x) j=1,...,J todas cóncavas, y las restricciones de igualdad hk(x) k=1,..., K son lineales. Si existe una solución (x , μ , λ ) * * * que satisface las condiciones de KT, entonces x* es una solución óptima del problema de NLP. Condición suficiente: si x* cumple las condiciones de KT => x* es óptimo. ¿Qué haríamos si las funciones no son diferenciables? Condiciones de ensilladura o punto de inflexión Definición: Se dice que una función f(x,y) tiene un punto de inflexión en (x*,y*) si: f (x * , y ) ≤ f (x * , y* ) ≤ f (x , y* ) Para todas las x y y. X* minimiza la función f(x,y*) para todas las x y* maximiza la función f(x*,y) para todas las y Problema de punto de silla de KT min f (x ) s.a g j (x ) ≥ 0 j = 1,K, J x ∈S El problema de punto de silla o de inflexión de Kuhn-Tucker es el siguiente, encontrar un punto (x* , μ*) tal que: L(x * , μ ) ≤ L(x * , μ* ) ≤ L(x , μ* ) ∀μ ≥ 0 x ∈S Donde: L ( x , μ ) = f ( x ) − ∑ μ jg j ( x ) j Teorema de Suficiencia de Optimalidad ( ) Si x * , μ* es un punto de inflexión de KT, entonces x* es una solución al problema de programación no lineal • No se necesita la suposición de convexidad de las funciones • No se invoca la restricción de cualificación • El teorema da la suficiencia. Pudiera existir algunos problemas de programación no lineal, para las cuales no exista un punto de inflexión, incluso aunque tenga solución óptima Teorema de Necesidad Sea x* el valor que minimiza la función f(x) sujeta a las restricciones g j (x ) ≥ 0, j = 1,K, J, x ∈ S. Asumimos que S es un conjunto convexo, f(x) es una función convexa, y g j (x ) ≥ 0 son funciones cóncavas en S. Asumimos también que existe un punto x ∈ S tal que g j (x ) > 0 . Entonces ( ) existe un vector de multiplicadores μ* ≥ 0 tales que x * , μ* sea un punto de ensilladura o de inflexión de la función de Lagrange L ( x , μ ) = f ( x ) − ∑ μ jg j ( x ) j que satisface: L(x * , μ ) ≤ L(x * , μ* ) ≤ L(x , μ* ) ∀μ ≥ 0 x ∈S Punto de inflexión de KT Teorema: Una solución (x * , μ* ) donde μ* ≥ 0 y x ∈ S es un punto de inflexión de KT si y solo si se cumplen las siguientes condiciones: * 1. X* minimiza a L(x , μ* ) para todas las x * ∈ S 2. u jg j (x * ) = 0, * 3. g j (x ) ≥ 0, j = 1,K, J j = 1,K, J Problema de PNL g j (x ) ≥ 0 h k (x ) = 0 J K j=1 k =1 ∇f ( x ) − ∑ μ j∇g j ( x ) − ∑ λ k ∇h k ( x ) = 0 min f (x ) s.a Condiciones de KT j = 1,K, J k = 1,K, K x = (x 1 ,K, x N ) g j (x) ≥ 0 j = 1,2,..., J h k (x) = 0 k = 1,2,..., K μ jg j ( x ) = 0 j = 1,2,..., J μj ≥ 0 j = 1,2,..., J x es una solución factible al PNL cuando g j (x ) ≥ 0, ∀j y h k (x ) = 0, ∀k * x* es un mín. local del PNL cuando x* es factible y se cumple que f (x ) ≤ f (x ) * para todas las soluciones factibles en una pequeña vecindad δ(x ) x* es un mín. local estricto cuando x* es factible y para todas las soluciones * factibles x ≠ x * se cumple que f (x * ) < f (x ) en una pequeña vecindad δ(x ) * * * Un punto de KT del PNL es un vector ( x , μ , λ ) que satisface las condiciones de KT Teorema de Necesidad de Segundo Orden Consideramos el problema de PNL, y sean f, g y h, funciones dos veces { } * diferenciables, y sea x* factible para el problema. Sea I = j g j (x ) = 0 el conjunto de las restricciones activas en x*. También se asume que ∇g j (x * ) ∀j ∈ I y ∇h k (x * ) son linealmente independientes. Las condiciones necesarias para que x* sea un mínimo local al problema son: * * * * * 1. Existen unos multiplicadores (λ ,μ ) tales que (x , λ , μ ) 2. Para cualquier vector y (1× N ) ∇g j (x * )y = 0 sea un pto. KT se satisface que: j∈ I y T H L (x * , λ* , μ* )y ≥ 0 ∇h k (x )y = 0 k = 1,K, K * J K j=1 k =1 L(x , λ, μ ) = f (x ) − ∑ μ jg j (x ) − ∑ λ k h k (x ) HL es el Hessiano de la función de Lagrange respecto a x y evaluado en ) * μ , *λ , *x( Teorema de Suficiencia de Segundo Orden Las condiciones suficientes para que el punto x* sea un mínimo local estricto del problema PNL, donde f, g y h son doblemente diferenciables son las sgtes. 1. Existen unos multiplicadores (λ* ,μ* ) tales que (x * , λ* , μ* ) sean un pto. de KT 2. Para cualquier vector y (1× N ) ≠ 0 que satisface: { = {j g (x ) = 0, μ } = 0} ∇g j (x * )y = 0 j ∈ I1 = j g j (x * ) = 0, μ*j > 0 ∇g j (x * )y ≥ 0 j ∈ I2 * j ∇h k (x * )y = 0 k = 1,K, K y T H L (x * , λ* , μ* )y > 0 * j Funciones de Penalización 1 min s.a. f (x) x ∈ R N g j (x) ≥ 0 j = 1,2,K, J hk ( x ) = 0 k = 1,2,K, K xi(l ) ≤ xi ≤ xi(u ) i = 1,2,K, N El problema original se convierte en un problema sin restricciones mediante una función de penalización P(x , R ) = f (x ) + Ω(R , g (x ), h (x )) R es el conjunto de los parámetros de penalización Ω es una función de R y las funciones de restricción. Funciones de Penalización 2 • Características de la transformación: – La solución del problema debe aproximarse a la solución del problema de NLP: lim x ( t ) = x * t →T <∞ – El problema de minimizar P(x,R) debe ser similar en dificultad a minimizar f(x) – R(t+1) = F(R(t)) debe ser simple. • Dos tipos de transformaciones: – Métodos barrera o forma interior: todos los puntos generados son factibles – Métodos de forma exterior: los puntos generados son no factibles. Funciones de Penalización 3 Función parabólica Ω = R{h (x )} 2 Métodos de forma exterior: puntos generados son no factibles Operador de bracket Ω = R g (x ) 2 ⎧α si α ≤ 0⎫ α =⎨ ⎬ α > 0 si 0 ⎩ ⎭ Ejemplo con restricciones de igualdad 1 En este caso R=1 x(t)=[3,3]T f(x(t))=2. h(x(t)) =1 Ejemplo con restricciones de igualdad 2 En este caso R=10 En este caso R=100 x(t)=[2.5714, 2.5714]T x(t)=[2.5075,2.5075]T f(x(t))=4.0818; h(x(t)) =0.1428 f(x(t))=4.477 h(x(t)) =0.015 Ejemplo con restricciones de desigualdad 1 En este caso R=1 En este caso R=10 x(t)=[3,3]T x(t)=[2.75,2.75]T f(x(t))=2 g(x(t)) =-1 f(x(t))=3.125 g(x(t)) = -0.5 Ejemplo con restricciones de desigualdad 2 En este caso R=100 x(t)=[2.5075,2.5075]T f(x(t))=4.4550 g(x(t)) = -0.015 Funciones de penalización 4 • Logaritmica: • Barrera infinita: Ω = 10 20 ∑ j∈ J g j ( x) con gj(x)<0 ∀ j∈J Ω = − R ln[ g ( x)] Ω Ω ∞ 1.0 g(x) 0 0 g(x) Métodos barrera o de forma interior: los puntos generados son siempre factibles Funciones de penalización 5 • Algoritmo: – 1.- Definir ε1, ε2, ε3 => condiciones de terminación para la búsqueda lineal, vectorial y penalización. X0 y R0 – 2.- P(x,R) = f(x) + Ω(R, g(x), h(x)) – 3.- Encontrar xk+1 / P(xk+1, Rk) sea mínimo con Rk fijo. Terminar con ε2. – 4.- | P(xk+1, Rk) – P (xk , Rk-1) | ≤ ε3 ? • Si => xk+1 = x* Parar • No => continuar – 5.- Elegir Rk+1 = Rk + ΔRk y volver al paso 2. Ejemplo con funciones barrera R=100 x(t)=[-1.8, -1.8] f(x(t))=67 g(x(t)) =8.612 R=10 x(t)=[1.5, 1.5] f(x(t))=12.5 g(x(t)) =2.0 R=1 x(t)=[2.3, 2.3] f(x(t))=5.45 g(x(t)) =0.30 Método del Gradiente Reducido Generalizado min f (x1 , x 2 ,K, x N ) s.a. • h k (x 1 , x 2 ,K, x N ) = 0 Si hk(x) son no lineales pero puedes resolverse explícitamente, puede usarse el método de eliminación de variables: h1(x) = 0 • k = 1,K, K => xk= Φ(x1,...,xk-1,xk+1,...,xN) Esto no ocurre en la mayoría de los casos, pero se puede hacer una aproximación lineal de la restricción en torno a un punto x1 que sí cumpla la restricción: x1 / hk(x1) = 0 Hk(x; x1) = hk (x1) + ∇hk(x1) (x – x1) • k=1,..., K Utilizamos está aproximación para encontrar otro punto factible: Método GRG 2 x / hk(x; x1) = 0 k=1,...,K ∇hk(x1) (x – x1)=0 k=1,..., K • Esto es un sistema de k ecuaciones con N incógnitas y normalmente k<N => no existe solución única. Se puede resolver el sistema para K variables en función de las otras N-K. • • K variables => N-K variables => ⎛ ∇1hˆ ⎞ ⎜ ⎟ ⎜ ∇ 2 hˆ ⎟ J =⎜ ⎟ ... ⎜ ⎟ ⎜ ∇ hˆ ⎟ ⎝ k ⎠ x̂ x básicas no básicas ⎛ ∇1h ⎞ ⎜ ⎟ ⎜ ∇2h ⎟ C =⎜ ... ⎟ ⎜ ⎟ ⎜∇ h ⎟ ⎝ k ⎠ J ( xˆ − xˆ1 ) + C ( x − x 1 ) = 0 xˆ − xˆ1 = − J −1C ( x − x 1 ) Método GRG 3 • Utilizamos la última ecuación para eliminar k variables de la función objetivo: ~ f ( xˆ , x ) = f ( xˆ1 − J −1C ( x − x 1 ), x ) • La función objetivo ahora es una función sin restricciones de las N-K variables no básicas, y podemos aplicar las condiciones necesarias para que x1 sea mínimo: ~ ∂f =0 ∂x ~ ~ f ( x ) = f ( xˆ ( x ), x ) ~ ∇f ( x1 ) = ∇f ( x1 ) + ∇fˆ ( x1 )[− J −1C ] Mínimo: ~ ∇ f ( x1 ) = 0 ~ ~ ~ ∂f ( x ) ∂f ∂ f ∂ xˆ = + ∂x ∂ x ∂ xˆ ∂ x Gradiente reducido generalizado Método GRG 4 • • Hemos usado linealizaciones de las restricciones para expresar la función objetivo como una función de N-K variables no básicas sin restricciones => algoritmo de optimización vectorial en torno al punto de linealización. Algoritmo: ~ – 1.- Calcular ∇f ( x k ) = ∇f ( x k ) − ∇fˆ ( x k ) J −1C – 2.- Si Si no ~ k || ∇f ( x ) ||< ε Parar ~ d = (−∇f )T ⎫⎪ d = ( dˆ , d ) T ⎬ dˆ = − J −1Cd ⎪⎭ – 3.- Minimizar f(xk + α d) con respecto al parámetro α => Hacer xk+1 = xk + α d. Ir al paso 1. Método GRG 5 • La dirección d así generada es descendente, pero los puntos generados en esa dirección no tienen por qué ser factibles. • Para resolver este problema, se calcula d y se proyecta d sobre la superficie definida por el conjunto de restricciones y se minimiza f(x) a lo largo de la curva resultante. • Encontrar un x̂ que cumpla: hk ( x t + α * d , xˆ ) = 0 k=1,...,K Método de Newton x̂ i + 1 = x̂ i − [ J − 1 ( x t + α * d , x̂ i )] * h ( x t + α * d , x̂ i ) • Si el método converge a un x̂ , si f ( xˆ ) < f ( x t ) nos quedamos con el nuevo punto y seguimos el algoritmo, si no se cumple, se disminuye α y se repiten las iteraciones de Newton Algoritmo GRG 1 • Partir de un punto inicial x0, α = α0, ε1, ε2, ε3 >0 criterios de terminación y un parámetro de reducción; 0 < γ <1 • 1.- Elegir una partición x, en x̂ y x de forma que J sea no ~ de t singular. Calcular: ∇f ( x ) ~ t • 2.- Si || ∇f ( x ) ||< ε parar Si no • ~ d = (−∇f )T ⎫⎪ d = ( dˆ , d ) T ⎬ dˆ = − J −1Cd ⎪⎭ 3.- α = α0; a) Calcular vi = xt + α d Si |hk (vi) | ≤ ε2 k=1,...K ir a d) Si no. Continuar Algoritmo GRG 2 b) vˆ i + 1 = vˆ i − J − 1 ( v i ) * h ( v i ) v i +1 = v i c) Si || vˆ i + 1 − vˆ i || > ε 1 Si no: ir a b) Si | hk (vi ) | ≤ ε3 k=1,..., K ir a (d) Si no α = γα Newton no converge. e ir a (a) => el algoritmo de d) Si f(xt ) ≤ f(vi), la dirección no es descendente, hacer α = γα e ir a (a) Si no: xt+1 = vi e ir al paso 1. Tratamiento de los límites 1 min s.a. f (x) x ∈ R N g j (x) ≥ 0 j = 1,2,K, J hk ( x ) = 0 k = 1,2,K, K xi(l ) ≤ xi ≤ xi(u ) i = 1,2,K, N • • 1.- Tratamiento explícito como desigualdades. 2.- Implícito: teniendo en cuenta los límites en los pasos del algoritmo: – 2.1.- Sólo las variables alejadas de sus límites puedes ser variables básicas, se ordenan las variables de acuerdo con la distancia al límite más cercano: zi(t) = min {(xiu – xit), (xit – xiL)} Se ordenan las zi en orden decreciente y las k primeras variables son las básicas. Tratamiento de los límites 2 – 2.2.- Modifica d para asegurar que los límites no son superados: ⎧0 ⎪ d i = ⎨0 ~ ⎪ ( f )i − ∇ ⎩ u Si xi = xi L Si xi = xi ~ y (∇f ) i < 0 ~ y (∇f ) i > 0 en otros casos – 2.3.- En el paso 3 se deben insertar chequeos para asegurar que los límites no se exceden durante las iteraciones de Newton. Si un límite es excedido, se hace una interpolación lineal entre xt y vi para estimar el punto en esa línea que no exceda el límite. Tratamiento de las desigualdades • Se introducen variables de holgura que convierten la desigualdad en una igualdad: aj ≤ gj (x) ≤ bj hk+j (x) = aj - gj (x) + xN+j = 0 hk+j (x) = gj (x) – bj + xN+j = 0 • Se incrementa la dimensionalidad del problema.