ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal Andrés Ramos Universidad Pontificia Comillas http://www.iit.upcomillas.es/aramos/ [email protected] CONTENIDO PROBLEMAS DE PROGRAMACIÓN NO LINEAL ALGUNOS PROBLEMAS NLP CLASIFICACIÓN DE MÉTODOS DE RESOLUCIÓN SIN RESTRICCIONES CONDICIONES DE OPTIMALIDAD PARA OPTIMIZACIÓN SIN RESTRICCIONES MÉTODOS DE OPTIMIZACIÓN SIN RESTRICCIONES CONDICIONES DE OPTIMALIDAD PARA NLP MÉTODOS DE PROGRAMACIÓN NLP ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 1 Problemas de programación no lineal (i) Problema de transporte con descuentos por cantidad El precio unitario de transporte entre un origen y un destino es decreciente en función de la cantidad a transportar. Problema de flujo de cargas en un sistema eléctrico Las pérdidas son no lineales Problema de producción con elasticidad en el precio y/o en el coste Función de la demanda o curva precio-demanda p ( x) representa el precio unitario que se necesita para poder vender x unidades. Es una función decreciente, nunca inferior al coste unitario de producción c. Los ingresos brutos (producto de cantidad producida por precio) es una expresión no lineal. Margen de contribución (beneficio bruto, EBITDA) P( x ) = xp ( x ) − cx Los costes no lineales pueden aparecer por una mayor eficiencia unitaria en función de la cantidad. ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 2 Problemas de programación no lineal (ii) Problema de selección de una cartera de inversiones n tipos de acciones xj, j=1,…,n representan el número de acciones j que se van a incluir en la cartera µ j y σ jj la media y la varianza del rendimiento sobre cada acción de tipo j, en donde σ jj es una medida del riesgo de estas acciones. Sea σ ij la covarianza del rendimiento sobre una acción de cada tipo i y j. R(x) rendimiento esperado y su varianza V(x) n R( x) = ∑ µ j x j j =1 n n V ( x) = ∑∑σ ij xi x j i =1 j =1 la función objetivo es f ( x) = R( x) − β V ( x) siendo β el factor de aversión al riesgo. ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 3 CONTENIDO PROBLEMAS DE PROGRAMACIÓN NO LINEAL ALGUNOS PROBLEMAS NLP CLASIFICACIÓN DE MÉTODOS DE RESOLUCIÓN SIN RESTRICCIONES CONDICIONES DE OPTIMALIDAD PARA OPTIMIZACIÓN SIN RESTRICCIONES MÉTODOS DE OPTIMIZACIÓN SIN RESTRICCIONES CONDICIONES DE OPTIMALIDAD PARA NLP MÉTODOS DE PROGRAMACIÓN NLP ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 4 Optimización no lineal (i) Optimización SIN restricciones min f ( x ) x f ( x) : ℝ n → ℝ x ∈ ℝn Optimización CON restricciones (Programación No Lineal NLP ) min f ( x) x gi ( x) = 0 i ∈ε gi ( x) ≤ 0 i ∈φ f ( x) : ℝ n → ℝ gi ( x) : ℝ n → ℝ x ∈ ℝn ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 5 Optimización no lineal (ii) Programación cuadrática min f ( x ) = x 1 T x Qx − bT x 2 Ax = b Programación convexa f ( x ) es convexa (cóncava si es maximización) y gi ( x ) es convexa, ∀i = 1,… , m Programación separable la función se puede separar en una suma de funciones de las variables n individuales f ( x) = ∑ f j ( x j ) j =1 Programación geométrica n función objetivo y restricciones toman la forma g ( x ) = ∑ c j Pj ( x ) Pj ( x ) = x x ... x , j = 1,..., n a j1 1 aj2 2 ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL a jn n j =1 Optimización no lineal - 6 CONTENIDO PROBLEMAS DE PROGRAMACIÓN NO LINEAL ALGUNOS PROBLEMAS NLP CLASIFICACIÓN DE MÉTODOS DE RESOLUCIÓN SIN RESTRICCIONES CONDICIONES DE OPTIMALIDAD PARA OPTIMIZACIÓN SIN RESTRICCIONES MÉTODOS DE OPTIMIZACIÓN SIN RESTRICCIONES CONDICIONES DE OPTIMALIDAD PARA NLP MÉTODOS DE PROGRAMACIÓN NLP ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 7 Clasificación métodos optimización SIN restricciones según el uso de derivadas Sin derivadas Necesarios cuando no se pueden calcular éstas Primeras derivadas (gradiente) Segundas derivadas (hessiano) Mayor coste computacional Mejores propiedades de convergencia ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 8 Expansión en serie de Taylor Aproxima una función f cerca de un punto dado x0 Se necesitan conocer las derivadas de la función f ( x0 + p ) = f ( x0 ) + ∇f ( x0 )T p + 1 T 2 p ∇ f ( x0 ) p +… 2 p ∈ ℝ n un vector diferente de 0 f ( x ) valor de la función ∇f ( x ) gradiente de la función ∇2 f ( x ) hessiano de la función (si f tiene segundas derivadas continuas es una matriz simétrica) O alternativamente f ( x0 + p ) = f ( x0 ) + ∇f ( x0 )T p + 1 pT ∇2 f (ξ ) p siendo un punto ξ entre x y x0 ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 9 Función cuadrática (i) f ( x) = 1 T x Qx − bT x 2 x ∈ ℝn b ∈ ℝn Q ∈ ℝn × ℝn Gradiente ∇f ( x ) = Qx − b Hessiano ∇2 f ( x ) = Q ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 10 Función cuadrática (ii) f ( x, y ) = 1 2 1 x + 2 xy + y 2 − y + 9 2 2 x + 2y ∇f ( x , y ) = 2 x + y − 1 1 2 ∇ f ( x, y ) = 2 1 2 Estamos en x0 = (1, −1) f (1, −1) = 9 y queremos saber el valor de la función en x0 = (1.1, −0.9) Evaluación directa f (1.1, −0.9) = 0.605 − 1.98 + 0.405 + 0.9 + 9 = 8.93 Aproximación mediante expansión en serie de Taylor 0.1 1 1 2 0.1 f (1.1, −0.9) = 9 + ( −1 0 ) + ( 0.1 0.1) = 9 − 0.1 + 0.03 = 8.93 0.1 2 2 1 0.1 La aproximación de Taylor de 2º orden es exacta en una función cuadrática ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 11 Función cuadrática (iii) ezsurf('0.5*x^2+2*x*y+0.5*y^2-y+9') f ( x, y ) = ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL 1 2 1 x + 2 xy + y 2 − y + 9 2 2 Optimización no lineal - 12 Mínimo local, global (i) Sea la función f diferenciable con primera y segunda derivadas min f ( x) continuas x f ( x) : ℝ n → ℝ x ∈ ℝn x* ∈ ℝ n es el óptimo de la función Es mínimo global si f ( x * ) ≤ f ( x ) para x ∈ ℝ n Es mínimo global estricto si f ( x * ) < f ( x ) para x ∈ ℝ n Es mínimo local si f ( x * ) ≤ f ( x ) en su vecindad x − x * < ε siendo ε un número positivo (típicamente pequeño) cuyo valor puede depender de x* * Es mínimo local estricto si f ( x * ) < f ( x ) en su vecindad x − x < ε ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 13 Mínimo local, global (ii) El mínimo global es difícil de encontrar. Muchos métodos son locales. Sólo bajo supuestos adicionales (convexidad) se puede garantizar que es global. Mínimo global estricto ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Mínimo local estricto (global) Mínimo local estricto Mínimo local Optimización no lineal - 14 CONTENIDO PROBLEMAS DE PROGRAMACIÓN NO LINEAL ALGUNOS PROBLEMAS NLP CLASIFICACIÓN DE MÉTODOS DE RESOLUCIÓN SIN RESTRICCIONES CONDICIONES DE OPTIMALIDAD PARA OPTIMIZACIÓN SIN RESTRICCIONES MÉTODOS DE OPTIMIZACIÓN SIN RESTRICCIONES CONDICIONES DE OPTIMALIDAD PARA NLP MÉTODOS DE PROGRAMACIÓN NLP ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 15 Optimización SIN restricciones Condiciones de optimalidad (i) min f ( x) x x ∈ ℝn Condición necesaria de 1º orden Si x* es un mínimo local de f entonces necesariamente ∇f ( x* ) = 0 Condición satisfecha también por cualquier punto estacionario Condición necesaria de 2º orden Si x* es un mínimo local de f entonces necesariamente ∇ 2 f ( x* ) es una matriz semidefinida positiva (equivalente a convexa, curvatura positiva) Condición suficiente de 2º orden Si ∇f ( x* ) = 0 y ∇ 2 f ( x* ) es definida positiva entonces x* es un mínimo local estricto de f Condición necesaria y suficiente Sea f convexa y diferenciable en x* (si es dos veces diferenciable el hessiano será semidefinido positivo); x* es un mínimo global si y sólo si ∇f ( x * ) = 0 . ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 16 Matriz semidefinida positiva Una matriz A es semidefinida positiva si x T Ax ≥ 0 para cualquier vector no nulo x O bien si todos sus autovalores son no negativos O bien si todos los determinantes de orden 1,2,…,n (siendo n la dimensión de la matriz) obtenidos añadiendo filas y columnas consecutivas desde el primer elemento son mayores o iguales que cero. 2 1 1 2 Es semidefinida positiva ∇ 2 f ( x, y ) = 1 2 2 1 No lo es ∇2 f ( x1 , x2 ) = ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 17 Matriz semidefinida negativa Una matriz A es semidefinida negativa si xT Ax ≤ 0 para cualquier vector no nulo x O bien todos sus autovalores son no positivos O bien si los determinantes de orden 1,2,…,n (siendo n la dimensión de la matriz) obtenidos añadiendo filas y columnas consecutivas desde el primer elemento son, alternativamente, menor que cero, mayor que cero, etc. O bien si la matriz -A (resultado de cambiar el signo de todos los elementos) es semidefinida positiva. ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 18 Equivalencias Función convexa Función cóncava Hessiano matriz definida positiva Hessiano matriz definida negativa Curvatura (2ª derivada) positiva Curvatura (2ª derivada) negativa Mínimo local + convexidad Máximo local + concavidad Mínimo global Máximo global Semidefinida positiva (negativa) Definida positiva (negativa) Mínimo (máximo) local Mínimo (máximo) local estricto ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 19 Ejemplo 1: Optimización SIN restricciones f ( x, y ) = 1 2 1 x + 2 xy + y 2 − y + 9 2 2 Gradiente = 0 es un sistema de ecuaciones x + 2y ∇f ( x, y ) = =0 2 x + y − 1 con solución ( x, y ) = (2 3, −1 3) 1 2 ∇2 f ( x, y ) = 2 1 Hessiano es matriz indefinida (no es ni semidefinida positiva ni semidefinida negativa) Luego no es ni un mínimo ni máximo local ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 20 Ejemplo 1: Optimización SIN restricciones f ( x, y ) = 1 2 1 x + 2 xy + y 2 − y + 9 2 2 ezsurf('0.5*x^2+2*x*y+0.5*y^2-y+9') ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 21 Ejemplo 1: Optimización SIN restricciones f ( x, y ) = 1 2 1 x + 2 xy + y 2 − y + 9 2 2 ezcontourf('0.5*x^2+2*x*y+0.5*y^2-y+9') ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL [x,y] = meshgrid(-6:0.5:6,-6:0.5:6); z=0.5*x.^2+2*x.*y+0.5*y.^2-y+9; [px,py] = gradient(z,0.5,0.5); contour(x,y,z); hold on quiver(x,y,px,py) Optimización no lineal - 22 Autovalores y autovectores 1 2 Hessiano ∇ f ( x, y ) = es matriz indefinida 2 1 −1 Sus autovalores son λ = 3 2 −0.71 0.71 Y los autovectores v1 = ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL 0.71 v2 = 0.71 Optimización no lineal - 23 Ejemplo 2: Optimización SIN restricciones f ( x, y ) = 2 x 2 + y 2 − 2 xy + 2 x 3 + x 4 Gradiente = 0 es un sistema de ecuaciones 4 x − 2 y + 6x2 + 4 x3 ∇f ( x , y ) = =0 2 y − 2x Hessiano 4 + 12 x + 12 x 2 ∇ f ( x, y ) = −2 2 ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL −2 2 Optimización no lineal - 24 Ejemplo 2: Optimización SIN restricciones f ( x, y ) = 2 x 2 + y 2 − 2 xy + 2 x 3 + x 4 ezsurf('2*x^2+y^2-2*x*y+2*x^3+x^4') ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 25 Ejemplo 2: Optimización SIN restricciones f ( x, y ) = 2 x 2 + y 2 − 2 xy + 2 x 3 + x 4 ezcontourf('2*x^2+y^2-2*x*y+2*x^3+x^4') ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL [x,y] = meshgrid(-6:0.5:6, -6:0.5:6); z=2*x.^2+y.^2-2*x.*y+2*x.^3+x.^4; [px,py] = gradient(z,0.5,0.5); contour(x,y,z); hold on, quiver(x,y,px,py) Optimización no lineal - 26 Ejemplo 3: Optimización SIN restricciones f ( x, y ) = ( x − 2)2 + ( y − 1) 2 Gradiente = 0 es un sistema de ecuaciones 2( x − 2) ∇f ( x , y ) = =0 y 2( − 1) con solución Hessiano ( x, y ) = (2,1) 2 0 ∇ 2 f ( x, y ) = 0 2 es matriz semidefinida positiva e independiente del punto, luego es un mínimo global ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 27 Ejemplo 3: Optimización SIN restricciones f ( x, y ) = ( x − 2) 2 + ( y − 1) 2 ezsurf('(x-2)^2+(y-1)^2') ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 28 Ejemplo 3: Optimización SIN restricciones f ( x, y ) = ( x − 2)2 + ( y − 1) 2 ezcontourf('(x-2)^2+(y-1)^2') ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL [x,y] = meshgrid(-6:.5:6, -6:.5:6); z=(x-2).^2+(y-1).^2; [px,py] = gradient(z,0.5,0.5); contour(x,y,z); hold on, quiver(x,y,px,py) Optimización no lineal - 29 Ejemplo 4: Optimización SIN restricciones f ( x , y ) = 8 x 2 + 3xy + 7 y 2 − 25 x + 31 y − 29 Gradiente = 0 es un sistema de ecuaciones 16 x + 3 y − 25 ∇f ( x , y ) = =0 x y 3 + 14 + 31 con solución Hessiano ( x, y ) = (2.060, −2.656) 16 3 ∇ 2 f ( x, y ) = 3 14 es matriz semidefinida positiva e independiente del punto, luego es un mínimo global ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 30 Ejemplo 4: Optimización SIN restricciones f ( x , y ) = 8 x 2 + 3xy + 7 y 2 − 25 x + 31 y − 29 ezsurf('8*x^2+3*x*y+7*y^2-25*x+31*y-29') ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 31 Ejemplo 4: Optimización SIN restricciones f ( x , y ) = 8 x 2 + 3xy + 7 y 2 − 25 x + 31 y − 29 ezcontourf('8*x^2+3*x*y+7*y^2-25*x+31*y-29') ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL [x,y] = meshgrid(-6:.5:6, -6:.5:6); z=8*x.^2+3*x.*y+7*y.^2-25*x+31*y-29; [px,py] = gradient(z,0.5,0.5); contour(x,y,z); hold on, quiver(x,y,px,py) Optimización no lineal - 32 Autovalores y autovectores Hessiano 16 3 ∇ 2 f ( x, y ) = 3 14 es matriz semidefinida positiva 11.84 Sus autovalores son λ = 18.16 0.58 −0.81 Y los autovectores v1 = ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL −0.81 v2 = −0.58 Optimización no lineal - 33 CONTENIDO PROBLEMAS DE PROGRAMACIÓN NO LINEAL ALGUNOS PROBLEMAS NLP CLASIFICACIÓN DE MÉTODOS DE RESOLUCIÓN SIN RESTRICCIONES CONDICIONES DE OPTIMALIDAD PARA OPTIMIZACIÓN SIN RESTRICCIONES MÉTODOS DE OPTIMIZACIÓN SIN RESTRICCIONES CONDICIONES DE OPTIMALIDAD PARA NLP MÉTODOS DE PROGRAMACIÓN NLP ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 34 Clasificación métodos optimización SIN restricciones según el uso de derivadas Sin derivadas Método de búsqueda aleatoria Método de Hooke y Jeeves Método de Rosenbrock (de las coordenadas rotativas o cíclicas) Método de Nelder y Mead (símplice) Primeras derivadas (gradiente) Método de máximo descenso (Steepest Descent) Método del gradiente conjugado (Flectcher y Reeves) Segundas derivadas (hessiano) Método de Newton Métodos cuasi Newton (Broyden-Fletcher-Goldfarb-Shanno BFGS, Davidon-Fletcher-Powell DFP) ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 35 Método de Newton para función unidimensional (i) Los algoritmos de interpolación realizan en cada iteración una aproximación de la función f, en el punto xk considerado en dicha iteración, por un polinomio de segundo o de tercer grado. Para hacerlo necesita evaluar las primeras derivadas de la función en xk. Este método ajusta, en la iteración k, una parábola q( x ) a f ( x ) y toma xk+1 como el vértice de dicha parábola 1 f ′′( xk )( xk +1 − xk )2 2 f ′( xk ) q′( xk +1 ) = 0 ⇒ xk +1 = xk − f ′′( xk ) q( xk +1 ) = f ( xk ) + f ′( xk )( xk +1 − xk ) + El algoritmo converge cuadráticamente bajo ciertas condiciones, pero es muy inestable y suele ser necesario tomar precauciones e incluir protecciones. ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 36 Método de Newton para función unidimensional (ii) f ( x ) = ( x − 1)3 + 2( x − 1) 2 + 3 f ′( x ) = 3( x − 1) 2 + 4( x − 1) f ′′( x ) = 6( x − 1) + 4 Secuencia de puntos x0 = −0.75 x1 = x0 − f ′( x0 ) = −0.4135 f ′′( x0 ) x1 = −0.3376 x1 = −0.3333 ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 37 Procedimiento general de optimización Genera una secuencia de puntos hasta convergencia Partir de un punto inicial xk Buscar una dirección de movimiento pk Calcular la longitud de paso αk Actualizar al nuevo punto xk+1 xk +1 = xk + α k pk ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 38 Condiciones de cada iteración x k +1 = x k + α k pk Elegir el nuevo punto de manera que el valor de la función disminuya f ( xk +1 ) < f ( xk ) Condiciones sobre la dirección de movimiento pk La dirección es descendente p T ∇f ( xk ) < 0 p T ∇f ( x k ) − ≥ε >0 El descenso es suficiente (vectores no ortogonales) p ⋅ ∇f ( xk ) La dirección de movimiento está relacionada con gradiente p ≥ m ∇f ( xk ) Condiciones sobre el escalar αk El descenso es suficiente (condición de Armijo) 0 < µ <1 f ( xk +1 ) ≤ f ( xk ) + µα k pkT ∇f ( xk ) Descenso no demasiado pequeño Por ejemplo, se define αk como una secuencia 1, ½, ¼, 1/8, etc. Se van utilizando los valores de la secuencia empezando por 1. Si para α=1 se satisface la condición anterior se para, si no se utiliza el valor siguiente Minimiza el valor de la función: método de búsqueda unidimensional (line-search methods) min F (α ) ≡ f ( xk + αp k ) α >0 ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 39 Método de Rosenbrock o de coordenadas cíclicas Consiste en partir de un punto x1 y minimizar la función f en la dirección d1 = (1,0,0,…,0) (minimización de una función unidimensional); alcanzado el punto x2 que minimiza la función en esa dirección, se minimiza desde ese punto en la dirección d 2 = (0,1,0,…,0) para determinar el punto x3 y así sucesivamente hasta llegar al punto xn+1 en que se vuelve a minimizar en la dirección d1 = (1,0,0,…,0) . El proceso se repite hasta alcanzar la precisión deseada. No es un método muy eficiente, los otros métodos aprovechan mejor las direcciones detectadas de mejora, pero es bueno para hacerse una primera idea de lo que son métodos de búsqueda. Cada búsqueda unidimensional puede ser con o sin derivadas. ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 40 Gradiente (i) Curva de nivel ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 41 Gradiente (ii) y f ( x , y ) = 8 x 2 + 3xy + 7 y 2 − 25 x + 31 y − 29 Curva de nivel Vector gradiente 5 ∇f (2,3) = 77.5 El gradiente de una función da la dirección de máximo aumento 16 x + 3 y − 25 ∇f ( x , y ) = x y + + 3 14 31 −63 ∇f ( −2, −2) = −3 x ( x, y ) = (2.060, −2.656) ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 42 Método del máximo descenso No requiere el uso de segundas derivadas. Por tanto, es poco costoso computacionalmente. Tiene una convergencia más lenta, lineal. En general, no se debe utilizar. Se aproxima la función por la serie de Taylor de primer orden La dirección de búsqueda resultante para minimizar al máximo la función es la opuesta al gradiente de la función pk = −∇f ( xk ) ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 43 Ejemplo 1 f ( x, y ) = ( x − 2)2 + ( y − 1) 2 2( xk − 2) pk = −∇f ( xk , yk ) = − y − 2( 1) k min F (α ) = f ( xk + α pk ) α >0 Punto inicial xk=(0,0) Dirección de movimiento pk=(4,2) min F (α ) = (4α − 2) 2 + (2α − 1) 2 = 20α 2 − 20α + 5 α F ′(α ) = 0 40α − 20 = 0 α = 0.5 Siguiente punto xk+1= xk +αkpk=(2,1) Dirección de movimiento pk=(0,0) Se ha llegado al óptimo ya que el gradiente es 0 ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 44 Ejemplo 2 (i) f ( x, y ) = 8 x 2 + 3xy + 7 y 2 − 25 x + 31 y − 29 16 xk + 3 yk − 25 pk = −∇f ( xk , yk ) = − 3xk + 14 yk + 31 min F (α ) = f ( xk + α pk ) α Punto inicial xk=(-4,4) Dirección de movimiento pk=(77,-75) min F (α ) = 8( −4 + 77α ) 2 + 3( −4 + 77α )(4 − 75α ) + α 7(4 − 75α ) 2 − 25( −4 + 77α ) + 31(4 − 75α ) − 29 = 69482α 2 − 11554α + 387 F ′(α ) = 0 138964α − 11554 = 0 α = 0.0831 Siguiente punto (-4+0.0831x77,4-0.0831x75)=(2.402,-2.236) ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 45 Ejemplo 2 (ii) Dirección de movimiento pk=(-6.726,-6.905) min F (α ) = 8(2.4 − 6.7α ) 2 + 3(2.4 − 6.7α )( −2.2 − 6.9α ) + α 7( −2.2 − 6.9α ) 2 − 25(2.4 − 6.7α ) + 31( −2.2 − 6.9α ) − 29 Etc. ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 46 Ejemplo 2 (iii) y 1 2 x ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 47 Ejemplo 3 (i) 1 min f ( x ) = x T Qx − bT x x 2 1 ⋅ ⋅ Q = ⋅ 5 ⋅ ⋅ ⋅ 25 − 1 b = − 1 − 1 Para funciones cuadráticas, el óptimo se puede determinar como ∇f ( x ) = Qx − b = 0 y, por tanto, −1 x* = Q −1b = − 1 5 − 1 25 La dirección de máximo descenso es pk = −∇f ( xk ) = −(Qxk − b) Si se utiliza una búsqueda unidimensional exacta el valor resultante de es ∇f ( x k ) T p k αk = − pkT Qpk ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 48 Ejemplo 3 (ii) Punto inicial 0 x0 = 0 0 f ( x0 ) = 0 1 ∇f ( x0 ) = 1 1 α 0 = 3 31 = 0.097 Se utiliza la norma 2 del gradiente como medida de la convergencia ∇f ( x0 ) = 12 + 12 + 12 = 1.73 Nuevo punto − 0.097 x1 = x0 + α 0 p0 = − 0.097 − 0.097 Norma 2 del gradiente ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL f ( x1 ) = −0.145 0.903 ∇f ( x1 ) = 0.516 α1 = 0.059 − 1.419 ∇f ( x1 ) = 1.760 Optimización no lineal - 49 Ejemplo 3 (iii) Nuevo punto − 0.150 x2 = − 0.127 − 0.013 Norma 2 del gradiente Etc. f ( x2 ) = −0.237 0.850 ∇f ( x2 ) = 0.364 0.673 ∇f ( x2 ) = 1.144 El proceso continúa hasta que la norma 2 del gradiente se haga suficientemente pequeña (inferior a una cierta tolerancia, 10-8 por ejemplo). En este ejemplo se necesitan 216 iteraciones hasta alcanzar esta tolerancia. ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 50 Convergencia del método del máximo descenso para funciones cuadráticas La convergencia del método de máximo descenso para una función cuadrática con búsqueda unidimensional exacta es lineal. La relación de mejora entre dos iteraciones consecutivas se puede acotar superiormente de esta manera: f ( xk +1 ) − f ( x* ) cond(Q ) − 1 ≤ * f ( xk ) − f ( x ) cond(Q ) + 1 2 donde el número de condición de la matriz A que se define como cond( A) ≡ A ⋅ A−1 y A 2 = λmax ( AT A) , siendo λmax ( AT A) el autovalor máximo de la matriz ATA. Si A es una matriz definida positiva y simétrica cond( A) = λ1 λn siendo λ1 y λn el mayor y menor autovalor respectivamente. En el ejemplo anterior cond(Q ) = 25 Un valor elevado del número de condición indica que la convergencia es muy lenta. Para cond(Q ) = 100 este método mejora la solución como mucho del 4 % en cada iteración. T S I ESCUELA ÉCNICA UPERIOR DE NGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 51 Número de condición Mide la sensibilidad de la solución de un sistema de ecuaciones lineales a los errores en los datos. ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 52 Convergencia del método del máximo descenso para funciones no lineales generales Para funciones no lineales generales la convergencia es también lineal con esta cota superior cond(Q ) − 1 Q + cond( ) 1 2 donde ahora Q = ∇2 f ( x* ) es el hessiano de la función en la solución. ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 53 Método de Newton para resolución de un sistema de ecuaciones no lineales (i) Resuelve iterativamente un sistema de ecuaciones no lineales f1 ( x1 , … , xn ) = 0 f 2 ( x1 , … , xn ) = 0 ⋮ f n ( x1 , … , xn ) = 0 Aproxima la función no lineal por una función lineal en cada punto (iteración), utilizando la expansión en serie de Taylor de primer orden f ( xk + pk ) ≈ f ( xk ) + ∇f ( xk )T pk f ( x* ) ≈ f ( xk ) + ∇f ( xk )T pk = 0 pk = −∇f ( xk ) − T f ( xk ) xk +1 = xk + pk = xk − ∇f ( xk ) − T f ( xk ) ∇f ( x )T = ( ∇f1 ( x ) ∇f 2 ( x ) … ∇f n ( x ) ) ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL T jacobiano de la función Optimización no lineal - 54 Método de Newton para resolución de un sistema de ecuaciones no lineales (ii) Converge cuadráticamente cuando el punto está próximo a la solución El jacobiano de la función en cada punto debe ser no singular ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 55 Método de Newton para resolución de un sistema de ecuaciones no lineales (ii) f1 ( x1 , x2 ) = 3x1 x2 + 7 x1 + 2 x2 − 3 = 0 f 2 ( x1 , x2 ) = 5 x1 x2 − 9 x1 − 4 x2 + 6 = 0 ∂f1 ∂x ∇f ( x1 , x2 ) = 1 ∂f1 ∂x 2 ∂f 2 ∂x1 3x2 + 7 5 x2 − 9 = ∂f 2 3x1 + 2 5 x1 − 4 ∂x2 −T 3x 2 + 7 5 x 2 − 9 3 x1 x 2 + 7 x1 + 2 x 2 − 3 x k +1 = x k − + − − − + 3 x 2 5 x 4 5 x x 9 x 4 x 6 1 1 2 1 1 2 1 Suponemos como punto inicial x0 = 2 −T −T 3x + 7 5 x 2 − 9 3 x1 x 2 + 7 x1 + 2 x 2 − 3 1 13 1 14 − 1.375 x1 = x0 − 2 = − = + − − − + 3 2 5 4 5 9 4 6 x x x x x x − 2 5 1 1 5 . 375 1 1 2 1 1 2 Después de 8 iteraciones el punto toma el valor aproximado de 0 x8 = y la función toma valor 0. 1.5 ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 56 Método de Newton para optimización Se aplica el método de Newton de resolución de un sistema de ecuaciones a la condición necesaria de optimalidad de primer orden. ∇f ( x ) = 0 El jacobiano de esta función ∇f (x ) es el hessiano ∇ 2 f ( x ) Iteración xk +1 = xk + pk = xk − ∇2 f ( xk )−T ∇f ( xk ) Donde pk (la dirección de Newton) se obtiene mediante la resolución de un sistema de ecuaciones lineales (sistema de Newton) en lugar de calcular la inversa del hessiano. ∇2 f ( xk ) pk = −∇f ( xk ) ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 57 Ejemplo 1 (i) f ( x, y ) = ( x − 2) 2 + ( y − 1) 2 2( xk − 2) ∇f ( x k , y k ) = y − 2( 1) k 2 0 ∇ 2 f ( xk , y k ) = 0 2 ∇2 f ( xk ) pk = −∇f ( xk ) Punto inicial xk=(0,0) Dirección de movimiento pk=(-2,-1) −T 2 ⋅ −4 0.5 ⋅ −4 2 pk = − = − −2 ⋅ 0.5 −2 = 1 ⋅ 2 Cálculo de αk min F (α ) = (2α − 2) 2 + (α − 1) 2 = 5α 2 − 10α + 5 α F ′(α ) = 0 10α − 10 = 0 α =1 ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 58 Ejemplo 1 (ii) Siguiente punto xk+1= xk +αk pk = (2,1) Dirección de movimiento pk = (0,0) Se ha llegado al óptimo ya que el gradiente es 0 ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 59 Método cuasi Newton Disminuir el coste computacional asociado a calcular y almacenar el hessiano y de resolver el sistema de ecuaciones lineales. Basados en aproximar el hessiano de la función ∇2 f ( xk ) en cada punto por otra matriz Bk definida positiva más fácil de calcular. Los diferentes métodos cuasi Newton difieren en la elección de Bk y en su actualización. Ventajas: Prescinde del cálculo de las segundas derivadas (hessiano), utiliza sólo primeras derivadas en la aproximación de Bk La dirección de búsqueda se puede calcular con menor coste computacional Desventajas: La convergencia ya no es cuadrática, iteraciones menos costosas Requieren el almacenamiento de una matriz, luego no son aptos para problemas grandes ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 60 Cálculo de la matriz Bk Condición de la secante ∇2 f ( xk )( xk − xk −1 ) ≈ ∇f ( xk ) − ∇f ( xk −1 ) Aproximación Bk ( xk − xk −1 ) ≈ ∇f ( xk ) − ∇f ( xk −1 ) Para una función cuadrática el hessiano Q satisface esta condición, luego la aproximación es exacta. Definiendo sk = xk +1 − xk y yk = ∇f ( xk +1 ) − ∇f ( xk ) entonces Bk +1sk = yk En los métodos cuasi Newton la matriz Bk se actualiza en cada iteración Bk+1 = Bk + actualización La inicialización de Bk suele ser la matriz identidad B0=I. ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 61 Procedimiento método cuasi Newton 1. Especificación de una solución inicial x0 y de una aproximación inicial al hessiano B0 2. Iterar k=0,1,… hasta encontrar la solución óptima Calcular la dirección de movimiento Bk pk = −∇f ( xk ) Hacer una búsqueda unidimensional para determinar xk +1 = xk + α k pk y k = ∇f ( xk +1 ) − ∇f ( xk ) Calcular sk = xk +1 − xk Actualizar la aproximación del hessiano Bk+1 = Bk + actualización ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 62 Actualizaciones de la matriz Bk Actualización BFGS (Broyden-Fletcher-Goldfarb-Shanno) Bk +1 = Bk − (Bk sk )(Bk sk )T skT Bk sk y k y kT + T y k sk Actualización DFP (Davidon-Fletcher-Powell) Bk +1 = Bk − (Bk sk )(Bk sk )T skT Bk sk y k y kT + T + ( skT Bk sk )uk ukT y k sk uk = yk Bk sk − y kT sk skT Bk sk En ambas actualizaciones para garantizar que Bk+1 sigue siendo definida positiva se debe cumplir ykT sk > 0 condición que se debe garantizar controlando la búsqueda unidimensional. La matriz Bk se aproximada más al hessiano en cada iteración ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 63 CONTENIDO PROBLEMAS DE PROGRAMACIÓN NO LINEAL ALGUNOS PROBLEMAS NLP CLASIFICACIÓN DE MÉTODOS DE RESOLUCIÓN CONDICIONES DE OPTIMALIDAD PARA OPTIMIZACIÓN SIN RESTRICCIONES MÉTODOS DE OPTIMIZACIÓN SIN RESTRICCIONES CONDICIONES DE OPTIMALIDAD PARA NLP MÉTODOS DE PROGRAMACIÓN NLP ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 64 Lagrangiano (i) Sea el problema de optimización min f ( x ) x Ax = b siendo x ∈ ℝn , A ∈ ℝm×n , b ∈ ℝm Se define el lagrangiano como L( x, λ ) = f ( x ) + λ T ( Ax − b) siendo λ ∈ ℝm los multiplicadores de Lagrange. El lagrangiano es un problema sin restricciones. El problema con restricciones se transforma en otro sin ellas con m variables adicionales. El mínimo de ambos problemas coincide puesto que Ax = b . ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 65 Lagrangiano (ii) Condiciones de optimalidad de primer orden ∇L( x , λ ) = 0 * * ⇒ ∇ x L( x, λ ) = ∇f ( x ) + AT λ = 0 ∇λ L( x, λ ) = Ax − b = 0 y por tanto si x* es un mínimo local debe cumplir ∇f ( x* ) = − AT λ * En un mínimo local el gradiente de la función objetivo es una combinación lineal de los gradientes de las restricciones y los multiplicadores de Lagrange son los pesos. Los multiplicadores representan el cambio en la función objetivo para un cambio unitario (marginal) en la cota de cada restricción. En el caso particular de LP éstos recibían el nombre de variables duales o precios sombra. Con esta formulación del lagrangiano los multiplicadores resultan con signo contrario a las variables duales. ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 66 Ejemplo 1 (i) min( x − 2)2 + ( y − 1) 2 x + y = −2 Punto óptimo (-0.5,-1.5) Gradiente ∇f ( x* , y * ) = 2( x − 2) 2( y − 1) ( −0.5,−1.5) −5 T = = − (1 1) λ * −5 λ* = 5 Óptimo sin restricciones Óptimo con restricciones ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 67 Ejemplo 1 (ii) min( x − 2) + ( y − 1) + λ ( x + y + 2) 2 2 min( x − 2) 2 + ( y − 1)2 + 10( x + y + 2) min( x − 2) 2 + ( y − 1) 2 + 5( x + y + 2) min( x − 2) 2 + ( y − 1) 2 + 2( x + y + 2) ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 68 Lagrangiano (iii) Sea el problema de optimización min f ( x ) x gi ( x ) ≤ 0 i = 1,..., m h j ( x ) = 0 j = 1,..., l donde f : ℝn → ℝ , gi : ℝ n → ℝ Se define el lagrangiano como m l i =1 j =1 L( x, λ , µ ) = f ( x ) + ∑ λi gi ( x ) + ∑ µ j h j ( x ) donde λ ∈ ℝm y µ ∈ℝl son los multiplicadores de Lagrange. Lagrangiano es siempre una cota inferior de f(x) para valores factibles de x y valores conocidos de λ ≥ 0 (no negativos) y µ (libre). ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 69 Ejemplo 1 (i) min( x − 2)2 + ( y − 1) 2 x + y ≤ −2 ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 70 Ejemplo 1 (ii) min( x − 2) 2 + ( y − 1) 2 x + y ≤ −2 ∇f ( x1 , y1 ) Gradiente de la f.o. perpendicular a las curvas de nivel 2( x − 2) ∇f ( x , y ) = 2( y − 1) ∇g ( x 2 , y 2 ) 1 ∇g ( x , y ) = 1 Gradiente de la restricción en la frontera de la región factible perpendicular a dicha frontera ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 71 Ejemplo 1 (iii) min( x − 2) 2 + ( y − 1) 2 x + y ≤ −2 En el óptimo (-0.5,-1.5) ambos gradientes tienen sentidos opuestos 2( x − 2) −5 ∇f ( x * , y * ) = = 2( y − 1) ( −0.5,−1.5) −5 ∇g ( x * , y * ) −1 −∇g ( x * , y * ) = −1 ∇f ( x* , y * ) = −λ∇g ( x* , y * ) λ ≥0 ∇f ( x * , y * ) ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL −5 −1 = λ −5 −1 λ ≥0 λ =5 Optimización no lineal - 72 Ejemplo 2 (i) min( x − 2)2 + ( y − 1) 2 x + y ≤ −2 6 x − y ≤ −18 ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 73 Ejemplo 2 (ii) min( x − 2)2 + ( y − 1) 2 x + y ≤ −2 6 x − y ≤ −18 ∇g 2 ( x3 , y 3 ) ∇f ( x1 , y1 ) 1 ∇g1 ( x, y ) = 1 ( −20 / 7,6 / 7) ∇g1 ( x2 , y2 ) ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL 2( x − 2) ∇f ( x , y ) = 2( y − 1) 6 ∇g 2 ( x , y ) = −1 Optimización no lineal - 74 Ejemplo 2 (iii) min( x − 2)2 + ( y − 1) 2 x + y ≤ −2 6 x − y ≤ −18 En el óptimo (-20/7,6/7) el gradiente de la f.o. se puede expresar como combinación lineal de los gradientes de las restricciones cambiados de signo 2( x − 2) −68 / 7 ∇f ( x* , y * ) = = 2( y − 1) ( −20 / 7,6 / 7) −2 / 7 −∇g 2 ( x * , y * ) ∇f ( x * , y * ) −∇g1 ( x * , y * ) −1 −∇g1 ( x* , y * ) = −1 −6 −∇g 2 ( x* , y * ) = 1 ∇f ( x* , y * ) = −λ1∇g1 ( x* , y * ) − λ2∇g 2 ( x * , y * ) λ1 , λ2 ≥ 0 −68 / 7 −1 −6 = λ + λ −2 / 7 1 − 1 2 1 λ1 , λ2 ≥ 0 ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL λ1 = 2.75 λ2 = 1.125 Optimización no lineal - 75 Ejemplo 3 (i) min( x − 2)2 + ( y − 1) 2 x + y ≤ −2 x ≤ −3 y≤4 ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 76 Ejemplo 3 (ii) min( x − 2)2 + ( y − 1) 2 x + y ≤ −2 x ≤ −3 ∇f ( x1 , y1 ) y≤4 ∇g 3 ( x4 , y 4 ) ∇g 2 ( x3 , y 3 ) 2( x − 2) ∇f ( x , y ) = 2( y − 1) 1 ∇g1 ( x, y ) = 1 ∇g1 ( x2 , y2 ) 1 ∇g 2 ( x , y ) = 0 0 ∇g 3 ( x , y ) = 1 ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 77 min( x − 2)2 + ( y − 1) 2 x + y ≤ −2 x ≤ −3 Ejemplo 3 (iii) y≤4 En el óptimo (-3,1) el gradiente de la f.o. se puede expresar como combinación lineal de los gradientes de las restricciones activas cambiados de signo 2( x − 2) −10 ∇f ( x * , y * ) = = y − 2( 1) ( −3,1) 0 −∇g 3 ( x2 , y2 ) −1 −1 −∇g1 ( x* , y * ) = −∇g 2 ( x * , y * ) = −1 0 0 ∇g 3 ( x * , y * ) = 1 −∇g 2 ( x * , y * ) ∇f ( x * , y * ) ∇f ( x* , y * ) = −λ1∇g1 ( x* , y * ) − λ2∇g 2 ( x * , y * ) −∇g1 ( x , y ) * * λ1 , λ2 ≥ 0 −10 −1 −1 = λ + λ 0 1 −1 2 0 λ1 , λ2 ≥ 0 ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL λ1 = 0 λ2 = 10 λ3 = 0 La primera restricción es superflua. Solución degenerada. Optimización no lineal - 78 Condiciones necesarias con restricciones de desigualdad (i) Sea el problema min f ( x ) x gi ( x ) ≤ 0 i = 1,..., m donde f : ℝn → ℝ , gi : ℝ n → ℝ Sea x* un punto factible I = {i / gi ( x* ) = 0} el conjunto de restricciones activas f y {gi , i ∈ I } diferenciables en x* {gi , i ∉ I } continuas en x* {∇gi ( x* )}i∈I linealmente independientes ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 79 f ( x) Condiciones necesarias con restricciones de min x gi ( x ) ≤ 0 desigualdad (ii) i = 1,..., m Si x* es mínimo local entonces existen unos escalares {λi , i ∈ I } tales que * * ∇f ( x ) + ∑ λi ∇gi ( x ) = 0 i∈I λi ≥ 0 ∀i ∈ I Además si las funciones {gi , i ∉ I } son diferenciables en x*, si x* es óptimo local entonces m ∇f ( x ) + ∑ λi ∇gi ( x* ) = 0 * i =1 λi gi ( x* ) = 0 i = 1,..., m λi ≥ 0 i = 1,..., m Condición de complementariedad de holguras Restricción no activa → multiplicador 0. Restricción activa → multiplicador puede ser o no 0. ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 80 Condiciones necesarias con restricciones de desigualdad (iii) Sea el problema min f ( x ) x gi ( x ) ≤ 0 i = 1,..., m Condiciones necesarias de Karush-Kuhn-Tucker (KKT) de primer orden para tener un óptimo local Gradiente de f.o.: combinación lineal de gradientes de restricciones cambiados de signo Punto factible m ∇f ( x ) + ∑ λi ∇gi ( x* ) = 0 * i =1 λi gi ( x* ) = 0 i = 1,..., m gi ( x* ) ≤ 0 i = 1,..., m Condición de complementariedad de holguras Restricción no activa λ=0 Restricción activa λ≠0 λi ≥ 0 i = 1,..., m ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 81 Condiciones necesarias con restricciones de desigualdad (iv) Condiciones necesarias de segundo orden para tener un mínimo local La matriz hessiano ∇2 f ( x* ) + ∑ i∈I λi*∇2 gi ( x* ) debe ser semidefinida positiva m o bien ∇ f ( x ) + ∑ λi*∇ 2 g i ( x * ) 2 * ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL i =1 Optimización no lineal - 82 Condiciones necesarias con restricciones de desigualdad (v) Sea el problema min f ( x ) x gi ( x ) ≤ 0 i = 1,..., m El lagrangiano será m L( x, λ ) = f ( x) + ∑ λi g i ( x) i =1 λi ≥ 0 La condición de optimalidad para el lagrangiano será ∇L( x* , λ * ) = 0 ⇒ ∇ x L( x* , λ * ) = ∇f ( x* ) + ∑ λi ∇gi ( x * ) = 0 i∈I * * ∇ λ L( x , λ ) = gi ( x ) = 0 ∀i ∈ I la 2ª corresponde a la definición de restricciones activas ∀i ∈ I Para considerar todas las restricciones lo expreso como λi gi ( x* ) = 0 i = 1,..., m ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 83 Condiciones suficientes con restricciones de desigualdad (i) Si la f.o. es no convexa o la región factible es no convexa puede haber puntos que verifiquen las condiciones necesarias. Sea x* un punto factible I = {i / gi ( x* ) = 0} el conjunto de restricciones activas f y {gi , i ∈ I } convexas y diferenciables en x* Si existen unos escalares {λi , i ∈ I } tales que ∇f ( x * ) + ∑ λi ∇gi ( x * ) = 0 i∈I λi ≥ 0 ∀i ∈ I entonces x* es mínimo global ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 84 Condiciones suficientes con restricciones de desigualdad (ii) Condición de mínimo global Alternativamente, en lugar de poner la condición de que f y{gi , i ∈ I } sean convexas y diferenciables en x* se puede expresar también como que el lagrangiano L( x ) = f ( x ) + ∑ i∈I λi* gi ( x ) , siendo λi* los multiplicadores de Lagrange de las restricciones, tenga un hessiano ∇2 L( x* ) = ∇2 f ( x* ) + ∑ i∈I λi*∇2 gi ( x* ) que sea una matriz semidefinida positiva en x*. Las condiciones suficientes para el caso de maximización se traducen en que la función f sea cóncava en el punto, las restricciones no cambian y los multiplicadores sean menores o iguales que 0. ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 85 Condiciones necesarias con restricciones de igualdad y desigualdad (i) Sea el problema min f ( x ) x gi ( x ) ≤ 0 i = 1,..., m h j ( x ) = 0 j = 1,..., l donde f : ℝn → ℝ , gi : ℝ n → ℝ Sea x* un punto factible I = {i / gi ( x* ) = 0} el conjunto de restricciones activas f y {gi , i ∈ I } diferenciables en x* {gi , i ∉ I } continuas en x* {h j , j = 1,..., l} continuamente diferenciables en x* {∇gi ( x* ), i ∈ I ; ∇h j ( x* ), j = 1,..., l} linealmente independientes ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 86 Condiciones necesarias con restricciones de igualdad y desigualdad (ii) Si x* es mínimo local entonces existen unos escalares {λi , i ∈ I ; µ j , j = 1,…, l} tales que l ∇f ( x ) + ∑ λi ∇gi ( x ) + ∑ µ j ∇h j ( x* ) = 0 * * i∈I j =1 λi ≥ 0 ∀i ∈ I Además si las funciones {gi , i ∉ I } son diferenciables en x*, si x* es óptimo local entonces m l ∇f ( x ) + ∑ λi ∇gi ( x ) + ∑ µ j ∇h j ( x* ) = 0 * * i =1 j =1 λi gi ( x * ) = 0 i = 1,..., m λi ≥ 0 i = 1,..., m ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 87 Ejemplo 4 (i) min f (x , y ) = 9y − (x − 5)2 x ,y −x 2 + y ≤ 0 −x − y ≤ 0 x −1 ≤ 0 ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 88 Ejemplo 4 (ii) min f (x , y ) = 9y − (x − 5)2 x ,y −x 2 + y ≤ 0 −x − y ≤ 0 x −1 ≤ 0 Punto C (0,0,1,10,0) f.o.=-25 Punto A (1/2,-1/2,0,9,0) f.o.=-24.75 Punto B (1,-1,0,9,1) f.o.=-25 ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 89 Ejemplo 4 (iii) min L(x , y, λ1, λ2 , λ3 ) = 9y − (x − 5)2 + λ1(−x 2 + y ) + λ2 (−x − y ) + λ3 (x − 1) x ,y ,λ1 ,λ2 ,λ3 Lagrangiano para los valores de los multiplicadores correspondientes al punto A (1/2,-1/2,0,9,0) Función Funciónno noacotada acotada ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 90 Ejemplo 4 (iv) min L(x , y, λ1, λ2 , λ3 ) = 9y − (x − 5)2 + λ1(−x 2 + y ) + λ2 (−x − y ) + λ3 (x − 1) x ,y ,λ1 ,λ2 ,λ3 Lagrangiano para los valores de los multiplicadores correspondientes al punto A (1/2,-1/2,0,9,0) Punto A (1/2,-1/2,0,9,0) ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 91 Ejemplo 4 (v) min L(x , y, λ1, λ2 , λ3 ) = 9y − (x − 5)2 + λ1(−x 2 + y ) + λ2 (−x − y ) + λ3 (x − 1) x ,y ,λ1 ,λ2 ,λ3 Lagrangiano para los valores de los multiplicadores correspondientes al punto B (1,-1,0,9,1) Función Funciónno noacotada acotada ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 92 Ejemplo 4 (vi) min L(x , y, λ1, λ2 , λ3 ) = 9y − (x − 5)2 + λ1(−x 2 + y ) + λ2 (−x − y ) + λ3 (x − 1) x ,y ,λ1 ,λ2 ,λ3 Lagrangiano para los valores de los multiplicadores correspondientes al punto B (1,-1,0,9,1) Punto B (1,-1,0,9,1) ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 93 Ejemplo 4 (vii) min L(x , y, λ1, λ2 , λ3 ) = 9y − (x − 5)2 + λ1(−x 2 + y ) + λ2 (−x − y ) + λ3 (x − 1) x ,y ,λ1 ,λ2 ,λ3 Lagrangiano para los valores de los multiplicadores correspondientes al punto C (0,0,1,10,0) Función Funciónno noacotada acotada ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 94 Ejemplo 4 (viii) min L(x , y, λ1, λ2 , λ3 ) = 9y − (x − 5)2 + λ1(−x 2 + y ) + λ2 (−x − y ) + λ3 (x − 1) x ,y ,λ1 ,λ2 ,λ3 Lagrangiano para los valores de los multiplicadores correspondientes al punto C (0,0,1,10,0) Punto C (0,0,1,10,0) ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 95 Condiciones necesarias con restricciones de igualdad y desigualdad (iii) Sea el problema min f ( x ) x gi ( x ) ≤ 0 i = 1,..., m h j ( x ) = 0 j = 1,..., l Condiciones necesarias de Karush-Kuhn-Tucker (KKT) de primer orden para tener un óptimo local Gradiente de f.o.: combinación lineal de gradientes de restricciones cambiados de signo m l ∇f ( x ) + ∑ λ ∇gi ( x ) + ∑ µ *j ∇h j ( x* ) = 0 * i =1 * i * λi* gi ( x* ) = 0 i = 1,..., m gi ( x* ) ≤ 0 i = 1,..., m Punto factible h j ( x* ) = 0 j = 1,..., l j =1 Condición de complementariedad de holguras Restricción no activa λ=0 Restricción activa λ≠0 λi* ≥ 0 i = 1,..., m ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 96 Condiciones necesarias con restricciones de igualdad y desigualdad (iv) Condiciones necesarias de segundo orden para tener un mínimo local l 2 * * 2 * La matriz hessiano ∇ f ( x ) + ∑ λi ∇ gi ( x ) + ∑ µ *j ∇2 h j ( x* ) debe ser i∈I j =1 semidefinida positiva o bien m l ∇ f ( x ) + ∑ λ ∇ gi ( x ) + ∑ µ *j ∇ 2 h j ( x * ) 2 * i =1 ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL * i 2 * j =1 Optimización no lineal - 97 Condiciones suficientes con restricciones de igualdad y desigualdad (i) Sea x* un punto factible I = {i / gi ( x* ) = 0} el conjunto de restricciones activas f y {gi , i ∈ I } convexas y diferenciables en x* Si existen unos escalares {λi , i ∈ I ; µ j , j = 1,…, l} tales que l ∇f ( x ) + ∑ λi ∇gi ( x ) + ∑ µ j ∇h j ( x* ) = 0 * * i∈I j =1 λi ≥ 0 ∀i ∈ I de modo que hj sea convexa en x* si µ j > 0 y hj sea cóncava en si µ j < 0 , entonces x* es mínimo global ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 98 CONTENIDO PROBLEMAS DE PROGRAMACIÓN NO LINEAL ALGUNOS PROBLEMAS NLP CLASIFICACIÓN DE MÉTODOS DE RESOLUCIÓN CONDICIONES DE OPTIMALIDAD PARA OPTIMIZACIÓN SIN RESTRICCIONES MÉTODOS DE OPTIMIZACIÓN SIN RESTRICCIONES CONDICIONES DE OPTIMALIDAD PARA NLP MÉTODOS DE PROGRAMACIÓN NLP ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 99 Programación no lineal Sea el problema min f ( x ) x gi ( x ) ≤ 0 i = 1,..., m h j ( x ) = 0 j = 1,..., l f , gi , h j : ℝ n → ℝ x ∈ ℝn donde f, g y h son funciones diferenciables con primera y segunda derivadas continuas. Si la región factible es convexa y la función objetivo es convexa cualquier óptimo local es también global ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 100 Métodos de programación no lineal (NLP) 1. Métodos de penalización: minimizan una función relacionada con el lagrangiano que tiene el mismo mínimo • • Métodos de penalización y barrera Método del lagrangiano aumentado 2. Métodos factibles: mantienen factibilidad al partir de un punto factible y moverse en direcciones factibles Generalización del método simplex de LP. Resuelven una secuencia de subproblemas con un conjunto de restricciones activas que cambia en cada iteración. Inconvenientes: selección del conjunto de restricciones activas y dificultad de satisfacer las restricciones • • Método de programación cuadrática secuencial Método del gradiente reducido ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 101 Métodos de penalización Resuelven un problema NLP resolviendo una secuencia de problemas de optimización sin restricciones. En el límite la solución de ambos problemas es la misma. En la función objetivo se incluyen unas penalizaciones que miden las violaciones de las restricciones y además unos parámetros que determinan la importancia de cada restricción. Métodos de penalización (método de penalización exterior) • Penalizan la violación de una restricción. Se mueve por puntos infactibles. • Mejor para restricciones de igualdad Métodos barrera (método de penalización interior) • Evitan que se alcance el contorno de una restricción. Puntos estrictamente factibles. • No son válidos para restricciones de igualdad ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 102 Método de penalización (exterior) Sea el problema min f ( x ) x gi ( x ) = 0 i = 1,..., m Se define la función de penalización 1 m 1 ψ ( x ) = ∑ g i ( x ) 2 = g ( x )T g ( x ) 2 i =1 2 El problema original se transforma en min π ( x, ρ k ) = f ( x ) + ρ kψ ( x ) x siendo ρk, el parámetro de penalización, un escalar positivo que crece monótonamente hacia ∞ Al avanzar las iteraciones los óptimos se mueven hacia la región factible ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 103 Método de penalización (exterior) Condición de optimalidad de la función de penalización m ∇f ( x ( ρ )) + ρ ∑ ∇gi ( x ( ρ )) gi ( x ( ρ )) = 0 i =1 Definimos λi = λi ( ρ ) = ρ gi ( x ( ρ )) . Estimación de los multiplicadores de Lagrange. Entonces, las condiciones de optimalidad de la función original son m ∇f ( x ( ρ )) + ∑ λi ( ρ )∇gi ( x ( ρ )) = 0 i =1 λi ( ρ ) = ρ gi ( x ( ρ )) i = 1,…, m i = 1,…, m λi ( ρ ) ≥ 0 ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 104 Método de penalización (exterior) El hessiano del problema penalizado puede dar un número de condición elevado ∇2xπ ( x( ρ ), ρ ) ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 105 Ejemplo 1 (i) min( x − 2) 2 + ( y − 1) 2 x + y = −2 λ =5 ( −0.5, −1.5) ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 106 Ejemplo 1 (ii) 1 min( x − 2) 2 + ( y − 1) 2 + ρ ( x + y + 2) 2 2 Condición de optimalidad de primer orden 2( x − 2) + ρ ( x + y + 2) = 0 2( y − 1) + ρ ( x + y + 2) = 0 Para ρ=1 Para ρ=2 Para ρ=4 Para ρ=8 Para ρ=16 Para ρ=32 Para ρ=64 Para ρ=∞ x= ( x * , y * ) = (0.75, −0.25) 4−ρ 2 + 2ρ y= ∇f ( x ) = 0 2 − 3ρ 2 + 2ρ λ= 10ρ 2 + 2ρ λ = 2.5 ( x * , y * ) = (1/ 3, −2 / 3) ( x * , y * ) = (0, −1) λ =4 ( x * , y * ) = ( −2 / 9, −11/ 9) ( x * , y * ) = ( −6 /17, −23/17) λ = 80 /17 = 4.7 Cada Cada uno uno es es una una optimización optimización sin sin restricciones restricciones ( x * , y * ) = ( −14 / 33, −47 / 33) ( x * , y * ) = ( −6 /13, −19 /13) λ = 64 /13 = 4.92 ( x* , y * ) = ( −0.5, −1.5) λ =5 ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 107 Ejemplo 1 (iii) λ = 2.5 ρ =1 (0.75, −0.25) ρ = 16 λ = 80 /17 = 4.7 ( −6 /17, −23/17) ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL λ =4 ρ =4 (0, −1) ρ = 64 λ = 64 /13 = 4.92 ( −6 /13, −19 /13) Optimización no lineal - 108 Ejemplo 1 (iv) El hessiano del problema penalizado es 2 + ρ ∇ 2xπ ( x ( ρ ), ρ ) = ρ ρ 2 + ρ Para ρ=1 3 1 ∇ 2xπ ( x ( ρ ), ρ ) = 1 3 cond (∇ 2π ) = λ1 / λ2 = 4 / 2 = 2 Para ρ=4 6 4 ∇ 2xπ ( x ( ρ ), ρ ) = 4 6 cond (∇2π ) = λ1 / λ2 = 10 / 2 = 5 Para ρ=16 18 16 ∇ 2xπ ( x ( ρ ), ρ ) = 16 18 cond (∇ 2π ) = λ1 / λ2 = 34 / 2 = 17 Para ρ=64 66 64 ∇ 2xπ ( x ( ρ ), ρ ) = cond (∇2π ) = λ1 / λ2 = 130 / 2 = 65 64 66 ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 109 Método barrera (penalización interior) Sea el problema min f ( x ) x gi ( x ) ≥ 0 i = 1,..., m Se define la función barrera m o bien φ ( x ) = − log( g ( x )) ∑ i =1 i m 1 i =1 g i ( x ) φ ( x) = ∑ Es una función continua en el interior de la región factible que se hace al acercarse al contorno El problema original se transforma en min β ( x, µk ) = f ( x ) + µkφ ( x ) x siendo µk, el parámetro barrera, un escalar positivo que decrece monótonamente hacia 0 Al disminuir el parámetro los puntos se acercan al contorno de la región factible ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 110 Método de penalización (exterior) Condición de optimalidad de la función barrera ∇gi ( x ) =0 i =1 g i ( x ) −µ λi = λi ( µ ) = gi ( x ) m ∇f ( x ) − µ ∑ λi ( µ ) gi ( x ) = − µ Definimos Estimación de los multiplicadores de Lagrange. Entonces, las condiciones de optimalidad de la función original son m ∇f ( x ( µ )) + ∑ λi ( µ )∇gi ( x ( µ )) = 0 i =1 λi ( µ ) gi ( x ( µ )) = − µ i = 1,…, m λi ( µ ) ≤ 0 i = 1,…, m ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 111 Método de penalización (exterior) El hessiano del problema penalizado puede dar un número de condición elevado ∇2xφ ( x( µ ), µ ) ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 112 Ejemplo 1 (i) min( x − 2) 2 + ( y − 1) 2 −x − y ≥ 2 λ = −5 ( −0.5, −1.5) ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 113 Ejemplo 1 (ii) min( x − 2)2 + ( y − 1) 2 − µ log( − x − y − 2) Condición de optimalidad de primer orden 2( x − 2) + µ /( − x − y − 2) = 0 2( y − 1) + µ /( − x − y − 2) = 0 Para µ=100 Para µ=20 Para µ=4 Para µ=0.8 Para µ=0.16 Para µ=0.032 Para µ=0.0064 Para µ=0 x= 3 1 ± 100 + 16µ 4 8 ( x * , y * ) = ( −4.4039, −5.4039) ∇f ( x ) = 0 1 1 y = − ± 100 + 16µ 4 8 λ= µ x+ y+2 λ = −12.8078 ( x * , y * ) = ( −1.8117, −2.8117) ( x * , y * ) = ( −0.8508, −1.8508) λ = −5.7016 ( x * , y * ) = ( −0.5776, −1.5776) ( x * , y * ) = ( −0.5159, −1.5159) λ = −5.0318 Cada Cada uno uno es es una una optimización optimización sin sin restricciones restricciones ( x * , y * ) = ( −0.5032, −1.5032) ( x* , y * ) = ( −0.5006, −1.5006) λ = −5.0013 ( x* , y * ) = ( −0.5, −1.5) λ = −5 ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 114 Ejemplo 1 (iii) µ = 100 λ = −12.8078 µ=4 λ = −5.7016 ( −0.8508, −1.8508) ( −4.4039, −5.4039) λ = −5.0318 µ = 0.16 ( −0.5159, −1.5159) ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL λ = −5.0013 µ = 0.0064 ( −0.5006, −1.5006) Optimización no lineal - 115 Ejemplo 1 (iv) El hessiano del problema barrera es 2 + µ /( x + y + 2)2 ∇ φ ( x ( µ ), µ ) = 2 µ /( x + y + 2) 2 x µ /( x + y + 2) 2 2 + µ /( x + y + 2) 2 Para µ=100 3.64 1.64 ∇ 2xφ ( x ( µ ), µ ) = 1.64 3.64 Para µ=4 10.127 8.127 2 ∇ 2xφ ( x ( µ ), µ ) = cond ∇ π ) = λ1 / λ2 = 18.25 / 2 = 9.125 ( 8.127 10.127 Para µ=0.16 160.24 158.24 ∇ 2xφ ( x ( µ ), µ ) = 158.24 160.24 ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL cond (∇ 2π ) = λ1 / λ2 = 5.28 / 2 = 2.64 cond (∇ 2π ) = λ1 / λ2 = 318.48 / 2 = 159.24 Optimización no lineal - 116 Método del lagrangiano aumentado (i) El mal condicionamiento de los métodos anteriores puede mejorarse incluyendo los multiplicadores en la función de penalización. Los algoritmos ahora deben actualizar tanto las variables como los multiplicadores. La convergencia es más rápida que en los métodos anteriores. ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 117 Método del lagrangiano aumentado (ii) Sea el problema min f ( x ) x gi ( x ) = 0 i = 1,..., m El óptimo del lagrangiano coincide con el del problema anterior si el punto es factible m min L( x ) = f ( x ) + ∑ λ gi ( x ) x i =1 gi ( x ) = 0 i = 1,..., m Resolvemos este problema por el método de penalización m m exterior 1 2 k min A( x ) = f ( x ) + ∑ λi gi ( x ) + ρ k ∑ [ gi ( x ) ] x i =1 2 i =1 De forma general 1 min A( x, λ , ρ ) = f ( x ) + λ T g ( x ) + ρ g ( x )T g ( x ) 2 ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 118 Método del lagrangiano aumentado (iii) Elegir valores de x0 , λ0 y ρ0 Prueba de optimalidad. Si se verifica se detiene el algoritmo. ∇L( xk , λk ) = 0 Resolver el problema no lineal sin restricciones y calcular xk + 1 1 min A( x, λk , ρ k ) = f ( x ) + λkT g ( x ) + ρ k g ( x )T g ( x ) x 2 Actualizar λk +1 y ρ k +1 λk +1 = λk + ρ k g ( xk +1 ) ρ k +1 ha de ser mayor que ρk ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 119 Programación cuadrática secuencial (i) Sea el problema min f ( x ) x gi ( x ) = 0 i = 1,..., m Formulamos el lagrangiano m min L( x ) = f ( x ) + ∑ λi gi ( x ) x i =1 Condiciones de optimalidad de primer orden ∇L( x* , λ * ) = 0 ⇒ m ∇ x L( x, λ ) = ∇f ( x ) + ∑ λi ∇gi ( x ) = 0 i =1 ∇ L( x , λ ) = g ( x ) = 0 i λ Se formula el método de Newton para este sistema de ecs. x k +1 x k pk = + λk +1 λk vk donde pk y vk se determinan resolviendo el siguiente sistema de ecuaciones lineales ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 120 Programación cuadrática secuencial (ii) Sistema de ecuaciones lineales p ∇ 2 L( x k , λk ) k = −∇L( x k , λk ) vk ∇2xx L( xk , λk ) ∇g ( xk ) pk −∇ x L( xk , λk ) = T v g x ( ) g x ( ) 0 ∇ k k k Representa las condiciones de optimalidad de primer orden de este problema de optimización cuadrática con restricciones lineales 1 min p T ∇2xx L( xk , λk ) p + p T [∇ x L( xk , λk ) ] p 2 [∇g ( xk )]T p + g ( xk ) = 0 : vk En lugar de resolver un sistema de ecs lineales se resuelve este problema de optimización cuadrática con restricciones lineales ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 121 Programación cuadrática secuencial (iii) 1. Se resuelve el problema cuadrático min p 1 T 2 p ∇ xx L( xk , λk ) p + p T [∇ x L( xk , λk ) ] 2 [∇g ( xk )]T p + g ( xk ) = 0 : vk 2. Se obtienen ( pk , vk ) 3. Se actualizan los valores de las variables y multiplicadores x k +1 x k pk = + λk +1 λk v k ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 122 Función reducida (i) Sea el problema min f ( x ) x Ax = b, x ∈ ℝ n Supongamos un punto factible x y una dirección factible p, Ap=0, entonces cualquier punto factible se puede expresar min f ( x + p ) como x = x + p . p Ap = 0, p ∈ ℝ n ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 123 Función reducida (ii) Si Z es una matriz n x r ( r ≥ n − m ) del espacio nulo de A (espacio definido por el conjunto de vectores ortogonales a las filas de A) la región factible también se puede expresar como x = x + Zv , donde v ∈ ℝ r Ahora el problema se transforma en una minimización de la función φ (v ) que es la función reducida de f en la región factible, problema sin restricciones y de menores dimensiones min φ ( v ) = f ( x + Zv ) v v ∈ ℝr ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 124 Cálculo de Z (método de reducción de variables) Sean las matrices A ∈ ℝ m×n , B ∈ ℝ m×m , N ∈ ℝ m×( n −m ) , Z ∈ ℝ n×( n −m ) Las direcciones factibles han de cumplir Ap = 0 = (B pB N ) = BpB + NpN = 0 pN −1 pB − B N pN p = = pN I − B −1 N Z = I El nuevo punto se obtiene como B −1b − B −1 N + p N x = x + p = x + ZpN = 0 I ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 125 Condiciones de optimalidad NLP con restricciones lineales de igualdad Gradiente reducido (proyectado) de f en x Hessiano reducido (proyectado) de f en x ∇φ ( v ) = Z T ∇f ( x ) ∇ 2φ ( v ) = Z T ∇ 2 f ( x ) Z Condiciones necesarias de primer y segundo orden Z T ∇f ( x* ) = 0 pT ∇2 f ( x * ) p ≥ 0 siendo p=Zv un vector del espacio nulo de A Condiciones suficientes de primer y segundo orden para mínimo local estricto Ax * = b Z T ∇f ( x * ) = 0 Z T ∇2 f ( x* ) Z matriz definida positiva ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 126 Ejemplo Sea el problema min f ( x ) = x12 − 2 x1 + x22 − x32 + 4 x3 x1 − x2 + 2 x3 = 2 2 x1 − 2 2 ⋅ ⋅ ∇f ( x ) = 2 x2 , ∇2 f ( x ) = ⋅ 2 ⋅ ⋅ ⋅ −2 −2 x + 4 3 1 − 2 B = (1) N = ( −1 2 ) Z = 1 ⋅ ⋅ 1 3 2 ⋅ ⋅ 1 −2 1 1 ⋅ ⋅ T 2 1 1 ⋅ * 1 ⋅ = 4 −4 − = ∇ = ⋅ ⋅ Z T ∇f ( x * ) = 3 , Z f ( x ) Z 2 ⋅ −2 ⋅ 1 −4 6 − ⋅ 2 1 6 ⋅ ⋅ −2 ⋅ 1 2.5 x* = −1.5 −1 El hessiano no es una matriz definida positiva y, sin embargo, el hessiano reducido sí lo es. Luego el punto es un mínimo local estricto. ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 127 Método de Newton reducido Sea el problema min f ( x ) x Ax = b, x ∈ ℝn x=x+p siendo x punto factible inicial y p dirección factible x = x + Zv donde Z es una matriz n x n-m del espacio nulo de A La función reducida es min φ (v) = f ( x + Zv ) v v ∈ ℝr Se aplica el método de Newton para calcular la dirección [Z T ∇2 f ( xk ) Z ]v = − Z T ∇f ( xk ) vk resolviendo este sistema de ecuaciones lineales pk se obtiene a partir de vk , p = Zv . No depende matemáticamente de Z pero sí numéricamente. −1 pk = Zvk = − Z Z T ∇ 2 f ( xk ) Z Z T ∇f ( xk ) ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 128 Método del gradiente conjugado lineal (i) Sea el sistema de ecuaciones Ax = b donde A es una matriz simétrica y definida positiva Resolver el sistema es equivalente a resolver min f ( x) = 1 T x Ax − bT x 2 ya que por condiciones de optimalidad ∇f ( x) = Ax − b = 0 y el hessiano es definido positivo ∇ 2 f ( x) = A Vectores conjugados piT Ap j = 0 ∀i ≠ j Si A=I entonces los vectores conjugados son ortogonales. ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 129 Método del gradiente conjugado lineal (ii) Supongamos que tenemos un punto y combinación lineal de m+1 vectores conjugados m y = ∑ α i pi i =0 Evaluando la función T T m m 1 m m f ( y ) = f ∑ α i pi = ∑α i pi A ∑α j p j − b ∑α i pi = i =0 2 i =0 j =0 i =0 m 1 m m T = ∑∑ α iα j pi Ap j − ∑ α ibT pi 2 i =0 j =0 i =0 m 1 m 2 T = ∑ α i pi Api − ∑ α ibT pi 2 i =0 i =0 Desaparecen los productos piApj 1 = ∑ α i2 piT Api − α ibT pi i =0 2 m ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 130 Método del gradiente conjugado lineal (iii) Minimizando la función m m 1 min f ( y ) = min f ∑α i pi = ∑ min α i2 piT Api − α ibT pi y αi i =0 i = 0 αi 2 El problema de minimización multidimensional se ha transformado en m+1 problemas de minimización unidimensionales Para cada dimensión α i ( p Api ) − b pi = 0 T i T bT pi αi = T pi Api Es decir, si representamos un punto como combinación lineal de un conjunto de vectores conjugados la solución es inmediata ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 131 Método del gradiente conjugado lineal (iv) Determina iterativamente el conjunto de vectores conjugados y los pesos Método x0 = 0, r0 = b = b − Ax0 , p−1 = 0, β 0 = 0 Para i = 0,1,… Si ri < ε fin. Si i > 0 → β i = T i i T i −1 i −1 r r r r pi = ri + β i pi −1 riT ri αi = T pi Api xi +1 = xi + α i pi Dirección de movimiento Longitud de paso Actualización del punto Actualización del residuo ri +1 = ri − α i Api x es la solución, p son vectores conjugados, r son vectores ortogonales ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 132 Método del gradiente conjugado lineal (v) Ejemplo 1 ⋅ ⋅ 1 A = ⋅ 2 ⋅ b = 1 ⋅ ⋅ 3 1 ⋅ 1 x0 = ⋅ , r0 = 1 , ⋅ 1 ⋅ p−1 = ⋅ , β 0 = 0, ε = 10−12 ⋅ r0 = 1.73 > ε , 1 0.5 0.5 p0 = 1 , α 0 = 0.5, x1 = 0.5 , r1 = ⋅ 1 0.5 −0.5 r1 = 0.71 > ε , 0.667 0.9 0.1 p1 = 0.167 , α1 = 0.6, x2 = 0.6 , r2 = −0.2 −0.333 0.3 0.1 r2 = 0.245 > ε , 0.18 1 ⋅ p2 = −0.18 , α 2 = 0.556, x3 = 0.5 , r3 = ⋅ 0.06 0.33 ⋅ ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 133 Método del gradiente conjugado lineal (vi) Adecuado para la resolución de problemas de gran tamaño Requieren poco almacenamiento Poco cálculo por iteración Convergencia lineal con este ratio xi +1 − x* xi − x* y 2 A ≡ A ≤ A cond ( A) − 1 cond ( A) + 1 1 T y Ay 2 Si cond ( A) = 1 → ratio = 0 → converge en una iteración Si cond ( A) = 100 → ratio = 0.82 Si cond ( A) = 1000000 → ratio = 0.998 ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 134 Método del gradiente conjugado no lineal (i) Sólo requiere el uso de primeras derivadas min f ( x) x0 = 0, p−1 = 0, β 0 = 0 Para i = 0,1,… Si ∇f ( xi ) < ε fin. ∇f ( xi ) ∇f ( xi ) T Si i > 0 → β i = ∇f ( xi −1 ) ∇f ( xi −1 ) T pi = −∇f ( xi ) + β i pi −1 Determinar α i para minimizar f ( xi + α i pi ) xi +1 = xi + α i pi ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Dirección de movimiento Longitud de paso Actualización del punto Optimización no lineal - 135 Método del gradiente conjugado no lineal (i) Ejemplo 1 1 T min f ( x ) = ( x − e ) D ( x − e ) + xT x − 10 4 x0 = (1 −1 1 −1) T f ( x0 ) = 16.46 ∇f ( x0 ) = (15 −15.8 15 −16.6 ) T 2 e = (1 1 ⋯ 1) T 1 2 D= ⋱ n p = −∇f ( x0 ) α = 0.0625 x1 = ( 0.0625 −0.0125 0.0625 0.0375 ) T f ( x0 ) = 0.985 ∇f ( x0 ) = ( −0.248 −0.393 −0.623 −0.806 ) T p = −∇f ( x0 ) α = 0.5 x1 = ( 0.177 0.194 0.364 0.451) T ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 136 Precondicionamiento Idea básica Sacar partido de información auxiliar sobre el problema para acelerar la convergencia Supongamos que conocemos la matriz M definida positiva En lugar de resolver Ax = b resolvemos M −1 Ax = M −1b 2000 1000 x1 1 = 1 2 x2 1 M −1 cond ( A) = 1700 1000 ⋅ = 1 ⋅ 2 1 x1 0.001 1 2 x = 1 2 cond ( M −1 A) = 3 El objetivo es encontrar M de manera que ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL M≈A Optimización no lineal - 137