Transcript Document
Optimización de Procesos Tier I: Métodos Matemáticos de Click to edit Master title style Optimización Sección 3: Programación No Lineal Introducción a la Programación No Click to edit Master title style Lineal • Ya hemos hablado sobre los aspectos básicos de la programación no Lineal (nonlinear programming, NLP) en el capítulo de Introducción cuando consideramos la optimización no restringida. Introducción a la Programación No Click to edit Master title style Lineal • Anteriormente optimizamos funciones no lineales de una variable usando la 1a y 2a derivadas. • Usaremos el mismo concepto aqui pero ahora extendido a funciones con más de una variable. Optimización Multivariable No Click to edit Master title style Restringida • Para funciones con una variable, usamos la 1a y 2a derivadas. • Para funciones con múltiples variables, usamos información idéntica que es el gradiente y el Hessiano. • El gradiente es la primera derivada con respecto a todas las variables, mientras que el Hessiano es el equivalente de la segunda derivada Click to edit El Gradiente Master title style • Repaso del gradiente (): Para una función “f ”, de variables x1, x2, …, xn: f f x1 Ejemplo: f x2 f xn f 15x1 2( x2 )3 3x1 ( x3 )2 f 15 3( x3 )2 6( x2 )2 6x1x3 Click to edit El Hessiano Master title style • El Hessiano (2) de f(x1, x2, …, xn) es: f 2 2 x12 f 2 f x x 2 1 2 f x x n 1 f x1x2 2 f 2 x2 f 2 xn x2 2 f x1xn 2 f x2 xn f 2 2 xn 2 ClickEjemplo to edit Master de Hessiano title style • Ejemplo (de antes): f 15x1 2( x2 )3 3x1 ( x3 )2 f 15 3( x3 )2 6( x2 )2 0 0 2 f 0 12x2 6 x3 0 6x1x3 6 x3 0 6 x1 Click Optimización to edit Master No Restringida title style El procedimiento de optimización para funciones multivariables es: 1. Resolver el gradiente de la función igual a cero para obtener puntos candidatos. 2. Obtener el Hessiano de la función y evalúalo en cada uno de los puntos candidatos • • Si el resultado es "positivo definitivo" (será definido después) entonces el punto es un mínimo local. Si el resultado es un“negativo definitivo” (será definido después) entonces el punto es un máximo local. Click Positivo/Negativo to edit MasterDefinitivo title style • Una matriz es un “positivo definitivo” si todos los eigenvalores de la matriz son positivos (> 0) • Una matriz es un “negativo definitivo” si todos los eigenvalores de la matriz son negativos (< 0) Positivo/Negativo Semi-definitivo Click to edit Master title style • Una matriz es un “positivo semi-definitivo” si todos los eigenvalores son no-negativos (≥ 0) • Una matriz es un “negativo semi-definitivo” si todos los eigenvalores son no-positivos (≤ 0) Click Matriz to edit Master de Ejemplo title style Dada la matriz A: 4 5 2 A 5 7 1 1 1 2 Los eigenvalores de A son: 1 3.702 2 2 3 2.702 Esta matriz es un negativo definitivo Ejemplo Click tode edit NLP Master No Restringida title style Considera el problema: Minimizar f(x1, x2, x3) = (x1)2 + x1(1 – x2) + (x2)2 – x2x3 + (x3)2 + x3 Primero, encontramos el gradiente con respecto a xi: 2 x1 1 x2 f x1 2 x2 x3 x2 2 x3 1 Ejemplo Click tode edit NLP Master No Restringida title style A continuación, igualamos el gradiente a cero: 2 x1 1 x2 0 f 0 x 2 x 0 2 3 1 x2 2 x3 1 0 Entonces, tenemos un sistema de 3 ecuaciones y 3 incógnitas. Cuando resolvemos, obtenemos: x1 1 x x2 1 x3 1 Ejemplo Click tode edit NLP Master No Restringida title style Así tenemos solo un punto candidato para verificar. Encuentra el Hessiano: 2 1 0 2 f 1 2 1 0 1 2 Ejemplo Click tode edit NLP Master No Restringida title style Los eigenvalores de esta matriz son: 1 3.414 2 0.586 3 2 Todos los eigenvalores son > 0, entonces el Hessiano es un positivo definitivo. Entonces, el punto mínimo x1 1 x x2 1 x3 1 es un Ejemplo Click tode edit NLP Master No Restringida title style A diferencia de la Programación Lineal, a menos que conozcamos la forma de la función a ser minimizada o podamos determinar si es convexa, no podemos decir si este punto es el mínimo global o si hay valores de función más pequeños. ClickMétodo to edit Master de Solución title style • En el ejemplo previo, cuando igualamos el gradiente a cero, tuvimos un sistema de 3 ecuaciones lineales y 3 incógnitas. • Para otros problemas, estas ecuaciones pueden ser no lineales. • Entonces, el problema se puede convertir en un sistema de ecuaciones no lineales, que puede ser muy difícil de resolver. ClickMétodo to edit Master de Solución title style • Para evitar esta dificultad, los problemas de NLP son usualmente resuletos numéricamente. • Ahora veremos ejemplos de métodos numéricos usados para encontrar el punto óptimo para problemas de NLP de una sola variable. Estos y otros métodos pueden ser encontrados en cualquier referencia de métodos numéricos. ClickMétodo to edit Master de Newton title style Al resolver la ecuación f (x) = 0 para encontrar un mínimo o un máximo, uno puede usar el paso de iteración: ' k f ( x ) k 1 k x x '' k f (x ) donde k es la iteración actual. La iteración se continua hasta que |xk+1 – xk| < e donde e es la tolerancia especificada. Diagrama del Método de Click to edit Master title style Newton Tangente de f (x) en xk f (x) x* xk+1 xk x El método de Newton aproxima f (x) como una línea recta a xk y obtiene un nuevo punto (xk+1), que es usado para aproximar la función a la siguiente iteración. Esto es llevado a cabo hasta que el nuevo punto es suficientemente cercano a x*. Comentarios del Método de Click to edit Master title style Newton • Uno debe asegurar que f (xk+1) < f (xk) para encontrar un mínimo y f (xk+1) > f (xk) para encontrar un máximo. • Desventajas: – Tanto la primera como la segunda derivada deben ser calculadas – El valor estimado inicial es muy importante – si no es suficientemente cercano a la solución, pudiera ser que el método no converja ClickMétodo to edit Regula-Falsi Master title style Este método requiere dos puntos, xa y xb que que agrupan la solución a la ecuación f (x) = 0. ' b b a f (x ) (x x ) c b x x ' b ' a f (x ) f (x ) Donde xc estará entre xa y xb. El siguiente intervalo será xc y xa o xb, cualquiera que tenga el signo opuesto a xc. Click Diagrama to edit Master Regula-Falsi title style f (x) xa xc x* x x b El método Regula-Falsi aproxima la función f (x) como una línea recta e interpola para encontrar la raíz. Comentarios del método Click to edit Master title style Regula-Falsi • Este método requiere conocimiento inicial de dos puntos que limiten la solución • Sin embargo, no requiere el cálculo de la segunda derivada • El Método Regula-Falsi requiere ligeramente más iteraciones para converger que el Método de Newton Click Optimización to edit Master Multivariable title style • • Ahora consideraremos la optimización multivariable no restringida Casi todos los métodos de optimización multivariable hacen lo siguiente: 1. Eligen una dirección de búsqueda dk 2. Minimizan a lo largo de esa dirección para encontrar un nuevo punto: x k 1 x a d k k k donde k es el número de iteración actual y ak es un escalar positivo llamado tamaño de paso. ClickEl to Tamaño edit Master de Paso title style • El tamaño de paso, ak, es calculado de la siguiente manera: • Queremos minimizar la función f(xk+1) = f(xk +akdk) donde la única variable es ak porque xk y dk son conocidas. • Establecemos y resolvemos para ak usando un método de solución de una sola variable como los mostrados previamente. df x k a k d k 0 k da Método de Descenso más Click to edit Master title style Inclinado • Este método es muy simple – usa el gradiente (para maximización) o el gradiente negativo (para minimización) como la dirección de búsqueda: max k k d f (x ) for min Entonces, x k 1 k x a f (x k ) k Método de Descenso Más Click to edit Master title style Inclinado • Puesto que el gradiente es la velocidad de cambio de la función en ese punto, usar el gradiente (o gradiente negativo) como la dirección de búsqueda ayuda a reducir el número de iteraciones requeridas x2 f(x) = 5 -f(xk) f(x) = 20 f(xk) xk f(x) = 25 x1 Pasos del Método de Descenso Click to edit Master title style Más Inclinado Los pasos del Método de Descenso más Inclinado son: 1. Elige un punto inicial x0 2. Calcula el gradiente f(xk) donde k es el número de iteración 3. Calcula el vector de búsqueda:dk f (xk ) 4. Calcula la siguiente x: xk 1 xk a k dk Usa un método de optimización de una variable para determinar ak. Pasos del Método de Descenso Click to edit Master title style Más Inclinado 5. Para determinar la convergencia, usa alguna tolerancia dada e1 y evalúa: f (x k 1 ) f (x k ) e 1 para convergencia O, usa otra tolerancia e2 y evalúa: f ( x k ) e 2 para convergencia Click to Convergencia edit Master title style • Estos dos criterios pueden ser usados para cualquiera de los métodos de optimización multivariable discutidos aquí Recordatorio: La normal de un vector, ||x|| está dada por: x xT x ( x1 ) 2 ( x2 ) 2 ( xn ) 2 Ejemplo del Método de Click to edit Master title style Descenso Más Inclinado Resolvamos el problema anterior con el Método del Descenso Más Inclinado: Minimizar f(x1, x2, x3) = (x1)2 + x1(1 – x2) + (x2)2 – x2x3 + (x3)2 + x3 0 Seleccionemos x 0 0 0 Ejemplo del Método de Click to edit Master title style Descenso Más Inclinado f (x) 2x1 (1 x2 ) x1 2x2 x3 x2 2x3 1 d0 f (x0 ) 2(0) 1 0 0 0 0 0 0 1 1 0 1 1 0 1 x1 0 0 0 a 0 1 0 1 Ahora, necesitamos determinar a0 Ejemplo del Método de Click to edit Master title style Descenso Más Inclinado f (x ) (a ) (a )(1) 0 0 (a ) (a ) 1 0 2 0 0 2 2(a ) 2(a ) 0 2 0 1 df (x ) 0 4(a ) 2 0 da A continuación, iguala a cero y resuelve: 4(a 0 ) 2 a 0 2 1 4 2 0 Ejemplo del Método de Click to edit Master title style Descenso Más Inclinado Entonces, x 0 0 0 a 1 0 1 1 0 1 1 0 0 0 0 2 2 1 1 x 0 2 2 1 Ejemplo del Método de Click to edit Master title style Descenso Más Inclinado Toma el gradiente negativo para encontrar la siguiente dirección de búsqueda: 1 1 d f (x ) 1 1 0 0 0 1 1 2 2 1 1 d1 0 1 0 Ejemplo del Método de Click to edit Master title style Descenso Más Inclinado Actualiza la fórmula de iteración: 1 1 x 0 a 1 0 1 0 2 2 2 1 1 1 a 2 2 Ejemplo del Método de Click to edit Master title style Descenso Más Inclinado Insertala en la función original y toma la derivada para encontrar a1: 1 1 1 1 1 1 2 1 1 f (x ) 1 a (a ) (a ) 4 2 2 4 2 (a 1 ) 2 a 1 1 2 2 1 df (x ) 1 2(a ) 1 1 da Ejemplo del Método de Click to edit Master title style Descenso Más Inclinado Ahora podemos igualar la derivada a cero y resolver para a1: 2(a ) 1 a 1 2 1 1 Ejemplo del Método de Click to edit Master title style Descenso Más Inclinado Ahora, calcula x2: 1 1 1 x 0 a 0 1 0 2 2 1 1 1 0 0 0 2 2 2 2 1 x 2 2 1 2 1 2 Ejemplo del Método de Click to edit Master title style Descenso Más Inclinado 1 1 1 1 d f (x ) 1 1 1 1 1 2 2 2 2 1 1 2 d 0 2 2 Así, 1 1 1 1 3 2 1 x a 0 2 2 2 2 2 1 1 2 1 2 (a 1) (a 1) 2 2 2 2 2 Ejemplo del Método de Click to edit Master title style Descenso Más Inclinado Encuentra a2: 1 2 3 2 1 2 f (x ) (a 1) (a 1) 2 2 4 3 df (x 3 ) 3 2 (a 1) 2 da 2 Iguala la derivada a cero y resuelve: 3 2 (a 1) a 12 2 2 Ejemplo del Método de Click to edit Master title style Descenso Más Inclinado Calcula x3: 1 1 1 1 2 1 x a 0 2 2 2 2 2 1 1 1 1 1 0 2 2 4 4 2 3 3 x 4 3 1 2 3 4 Ejemplo del Método de Click to edit Master title style Descenso Más Inclinado Encuentra la siguiente dirección de búsqueda: 1 1 d f (x ) 0 0 0 0 2 2 3 3 1 3 x 2 4 4 3 1 3 a 0 0 4 2 1 3 3 3 (a 1) 2 4 4 Ejemplo del Método de Click to edit Master title style Descenso Más Inclinado Encuentra a3f: (x 4 ) 1 (a 3 1) 2 3 (a 3 ) 3 4 2 2 df (x 4 ) 1 3 9 (a 1) 0 3 da 2 8 5 a 4 3 Ejemplo del Método de Click to edit Master title style Descenso Más Inclinado Entonces, x4 se convierte en: 3 x 4 4 1 2 3 5 0 0 4 8 3 x 4 4 9 8 3 4 Ejemplo del Método de Click to edit Master title style Descenso Más Inclinado La siguiente dirección de búsqueda: 3 5 5 3 5 4 4 d f (x ) 4 8 8 4 8 3 x 4 5 9 8 3 4 5 a 4 8 3 4 5 8 5 8 5 4 3 3 1 5 4 1 4 (3 a ) ( a ) (3 a ) 2 4 2 4 2 4 Ejemplo del Método de Click to edit Master title style Descenso Más Inclinado Encuentra a4:f (x5 ) 73 (a 4 ) 2 43 a 4 51 32 32 64 df (x 5 ) 73 4 43 a 0 4 da 16 32 4 a 43 146 Ejemplo del Método de Click to edit Master title style Descenso Más Inclinado Actualiza para x5: 9 3 x 8 4 5 3 43 5 4 146 8 3 5 4 8 66 1091 1091 x 1168 73 1168 5 Ejemplo del Método de Click to edit Master title style Descenso Más Inclinado Revisemos si el criterio de convergencia es satisfecho Evalúa ||f(x5)||: 21 21 35 f (x ) 584 584 584 5 f ( x ) 5 21584 35 584 21584 2 2 2 0.0786 Ejemplo del Método de Click to edit Master title style Descenso Más Inclinado Entonces, ||f(x5)|| = 0.0786, que es muy pequeña y lo suficientemente cercana a cero para nuestro ejemplo Nota que la respuesta de 66 1091 1091 x 1168 73 1168 es muy cercana al valor de x 1 1 1 que obtuvimos analíticamente * Click Funciones to edit Master Cuadráticas title style • Las funciones cuadráticas son importantes para el siguiente método que veremos • Una función cuadrática puede ser escrita en la forma: xTQx donde x es el vector de variables y Q es una matriz de coeficientes Ejemplo:x1 x2 2 1 0 x1 x3 1 2 1 x2 2(x1 ) 2 2x1x 2 2(x2 ) 2 0 1 2 x3 – 2x2 x 3 2(x3 )2 Método del Gradiente Click to edit Master title style Conjugado • El Método del Gradiente Conjugado tiene la propiedad de que si f(x) es cuadrática, tomará exactamente n iteraciones para converger, donde n es el número de variables en el vector x • Aunque funciona especialmente bien con funciones cuadráticas, este método también podrá funcionar con funciones no cuadráticas A Pasos del Método del Gradiente Click to edit Master title style Conjugado 1. Elige un punto inicial x0 y calcula f(x0). Deja d0 = -f(x0) 2. Calcula usando: x x a d Encuentra a0 realizando optimización de una variable en f(x0 +a0d0) usando los métodos discutidos anteriormente. (Observa la ilustración después del algoritmo de explicación) x1 1 0 0 0 Pasos del Método del Gradiente Click to edit Master title style Conjugado 3. Calcula f(x1) y f(x1). La nueva dirección de búsqueda es calculada usando la ecuación: T 1 1 f ( x ) f ( x ) 1 1 0 d f (x ) d T f (x0 ) f (x0 ) Esto puede ser generalizado para la iteración kth: T k 1 k 1 f ( x ) f ( x ) k 1 k 1 k d f (x ) d T f (x k ) f (x k ) Pasos del Método del Gradiente Click to edit Master title style Conjugado 4. Usa cualquiera de los dos métodos discutidos antes para determinar la tolerancia: f (x k 1 ) f (x k ) e 1 O, f ( x ) e 2 k Click Número to editde Master Iteraciones title style • Para funciones cuadráticas, este método convergerá en n iteraciones (k = n) • Para funciones no cuadráticas, después de n iteraciones, el algoritmo se cicla nuevamente con dn+1 convirtiéndose en d0. Tamaño de Paso para Funciones Click to edit Master title style Cuadráticas • Al optimizar el tamaño de paso, podemos aproximar la función a optimizar de la siguiente manera: f (xk ad k ) f (xk ) T f (xk ) ad k 12 (ad k )T 2 f (xk ) (ad k ) • Para una función cuadrática, esta no es una aproximación – es exacta Tamaño de Paso para Funciones Click to edit Master title style Cuadráticas Tomamos la derivada de la función con respecto a a e igualamos a cero: df (x k ad k ) T f (x k ) d k (d k )T 2 f (x k ) ad k 0 da La solución a esta ecuación es: a k ,opt T f (x k ) d k k T 2 (d ) f (x k ) d k Tamaño de Paso para Funciones Click to edit Master title style Cuadráticas • Entonces, para el problema de optimizar una función cuadrática a k ,opt T f (x k ) d k k T 2 (d ) f (x k ) d k es el tamaño de paso óptimo. • Para una función no cuadrática, esta es una aproximación del tamaño de paso óptimo. Método Multivariable de Click to edit Master title style Newton Podemos aproximar el gradiente de f a un punto x0 usando: f (x) f (x ) f (x ) (x x ) 0 2 0 0 Podemos hacer el lado derecho de la ecuación igual a cero y rearreglar para obtener: 1 x x f (x ) 0 2 0 f (x ) 0 Método Multivariable de Click to edit Master title style Newton Podemos generalizar esta ecuación para dar una expresión iterativa del Método de Newton: x k 1 x f (x ) k 2 k 1 f (x ) donde k es el número de iteración k Click Pasosto del edit Método Master detitle Newton style 1. Elige un punto inicial, x0 2. Calcula f(xk) y 2f(xk) 3. Calcula la siguiente x usando la ecuación x k 1 x f (x ) k 2 k 1 f (x ) k 4. Usa cualquiera de los criterios de convergencia discutidos anteriormente para determinar la convergencia. Si no ha convergido, regresa al paso 2. Comentarios del Método de Click to edit Master title style Newton • Podemos ver que a diferencia de los dos métodos previos, el Método de Newton usa ambos, el gradiente y el Hessiano • Esto usualmente reduce el número de iteraciones requerido, pero aumenta el cálculo necesitado para cada iteración • De esta manera, para funciones muy complejas, un método más simple es por lo general más rápido Ejemplo Click to del editMétodo Master de title Newton style Como ejemplo, usaremos el mismo problema que antes: Minimizar f(x1, x2, x3) = (x1)2 + x1(1 – x2) + (x2)2 – x2x3 + (x3)2 + x3 f (x) 2x1 x2 1 x1 2x2 x3 x2 2x3 1 Ejemplo Click to del editMétodo Master de title Newton style El Hessiano es: 2 1 0 2 f ( x) 1 2 1 0 1 2 Y necesitaremos el inverso del Hessiano: 2 1 0 1 2 f (x) 1 2 1 0 1 2 1 3 4 1 2 1 4 1 2 1 1 2 1 4 1 2 3 4 Ejemplo Click to del editMétodo Master de title Newton style Entonces, elige 0 0 x 0 0 Calcula el gradiente para la 1a iteración: f (x0 ) 0 0 1 0 0 0 0 0 1 f (x0 ) 1 0 1 Ejemplo Click to del editMétodo Master de title Newton style Así, la nueva x es: 1 x x f ( x ) f ( x 0 ) 1 1 3 2 4 1 0 4 0 1 1 1 0 2 2 0 1 1 3 1 4 2 4 1 0 2 0 1 x1 1 1 Ejemplo Click to del editMétodo Master de title Newton style Ahora calcula el nuevo gradiente: f (x ) 2 1 1 1 2 1 1 2 1 0 0 0 1 Puesto que el gradiente es cero, el método ha convergido Click Comentarios to edit Master del Ejemplo title style • Puesto que usa la 2a derivada, el Método de Newton modela funciones cuadráticas exactamente y puede encontrar el punto óptimo en una iteración. • Si la función hubiera sido de mayor orden, el Hessiano no hubiera sido constante y se hubiera requerido mucho más trabajo para calcular el Hessiano y tomar el inverso para cada iteración. Optimización Restringida No Click to edit Master title style Lineal • Previamente en este capítulo, resolvimos problemas de NLP que solo tenían funciones objetivo, sin restricciones. • Ahora veremos métodos sobre como resolver problemas que incluyen restricciones. NLP con Restricciones de Click to edit Master title style Igualdad • Primero, trataremos problemas que solo contienen restricciones de igualdad: Minimiza f(x) Sujeta a: hi(x) = bi x = [x1 x2 … xn] i = 1, 2, …, m Click to edit Ilustración Master title style Considera el problema: Minimiza x1 + x2 Sujeta a: (x1)2 + (x2)2 – 1 = 0 La región factible es un círculo con un radio de uno. Las posibles curvas de función objetivo son lines con pendiente de -1. El mínimo será el punto donde la línea más baja todavía toque el círculo. Click Gráfica to editde Master Ilustración title style f (x) Región Factible El gradiente de f apunta en la dirección de incremento de f f(x) = 1 0.707 x* 0 . 707 f(x) = 0 f(x) = -1.414 ClickMás to edit sobre Master la Gráfica title style • Puesto que las líneas de la función objetivo son líneas rectas paralelas, el gradiente de f es una línea recta apuntando en la dirección del incremento de f, que es a la derecha superior • El gradiente de h estará apuntando fuera del círculo y su dirección dependerá del punto al que el gradiente es evaluado. Click to edit Más Master Detallestitle style x2 Plano Tangente Región Factible f (x1 ) 1 x1 0 f (x ) * h(x1 ) f(x) = 1 h(x* ) 0.707 x* 0 . 707 f(x) = 0 f(x) = -1.414 x1 Click to Conclusiones edit Master title style • En el punto óptimo, f(x) es perpendicular a h(x) • Como podemos ver en el punto x1, f(x) no es perpendicular a h(x) y podemos mover (bajar) para mejorar la función objetivo • Podemos decir que en un max o min, f(x) debe ser perpendicular a h(x) – De otra manera, podemos mejorar la función objetivo cambiando de posición Condiciones Necesarias de Primer Click to edit Master title style Orden Entonces, para que un punto sea un mínimo (o un máximo), debe satisfacer la siguiente ecuación: f (x* ) * h(x* ) 0 Esta ecuación significa que f(x*) y h(x*) deben estar exactamente en direcciones opuestas en un punto mínimo o máximo Click La to función edit Master Lagrangiano title style Para ayudar al usar este hecho, introducimos la Función Lagrangiano, L(x,): L(x, ) f (x) h(x) Repaso: La notación x f(x,y) significa el gradiente de f con respecto a x. Entonces, x L(x, ) x f (x) x h(x) Condiciones Necesarias de Primer Click to edit Master title style Orden • Así, usando la nueva notación para expresar las Condiciones Necesarias de Primer Orden (First Order Necessary Conditions, FONC), si x* es un mínimo (o máximo) entonces x L(x, ) x* ,* 0 * y h(x ) 0 para asegurar la factibilidad. Condiciones Necesarias de Primer Click to edit Master title style Orden (FONC) • Otra manera de verlo es que una Función Lagrangiano incluye toda la información sobre nuestro problema • Entonces, podemos tratar el Lagrangiano como un problema de optimización no restringida con variables x1, x2, …, xn y 1, 2, …, m. Podemos resolverlo al resolver las ecuaciones L 0 & L 0 x λ Click to Usando edit Master las FONC title style Usando las FONC para el ejemplo previo, L(x, ) f (x) h(x) x1 x2 x1 x2 1 2 2 Y la primera ecuación FONC es: L x1 0 x L(x, ) L 0 x2 Click Ejemplo to edit Master de FONC title style L Esto se vuelve: 1 2x1 0 x1 L & 1 2x2 0 x2 La ecuación de factibilidad es: x1 x2 2 o, 2 1 0 L 2 2 x1 x2 1 0 Click Ejemplo to edit Master de FONC title style Entonces, tenemos tres ecuaciones y tres incógnitas. Cuando se resuelven simultáneamente, obtenemos x1 x2 0.707 & 0.707 Podemos ver de la gráfica que x1 y x2 positivas corresponden a un máximo, mientras que x1 y x2 negativas corresponden a un mínimo. Click Observaciones to edit Master de title FONC style • Si regresas al capítulo de LP y revisas la definición matemática de las condiciones KKT, puedes notar que se parecen a las FONC que acabamos de usar • Esto se debe a que es el mismo concepto • Simplemente usamos una derivación ligeramente diferente esta vez, pero obtuvimos el mismo resultado Click Limitaciones to edit Master de FONC title style • Las FONC no garantizan que las soluciones será mínimos/máximos. • Como en el caso de la optimización no restringida, solo proveen puntos candidatos que deben ser verificados por las condiciones de segundo orden. • Solo si el problema es convexo las FONC garantizan que las soluciones serán puntos extremos. Condiciones Necesarias de Segundo Click to editOrden Master title style (Second Order Necessary Conditions, SONC) Para 2x L(x, ) donde 2x L(x, ) 2 f (x) 2h(x) h1 y para cualquier y x * donde J h (x ) y y 0 hm x ( x* ) Si x*es un mínimo local, entonces y L(x , ) y 0 T 2 x * Condiciones Suficientes de Click toSegundo edit Master title style Orden (Second Order Sufficient Conditions, SOSC) yT 2x L(x* , ) y 0 • y puede considerarse como un plano tangente tal como en el ejemplo gráfico mostrado anteriormente – Jh es solo el gradiente de cada ecuación h(x) y vimos en el ejemplo que el plano tangente debe ser perpendicular a h(x) y por esa razón J h (x) y 0 El Vector Click to edit Masterytitle style x3 h( x) 0 x2 x* x1 h(x) Plano Tangente (todos los vectores y posibles) El plano tangente es la ubicación de todos los vectores y y se intersecta con x* Debe ser ortogonal (perpendicular) a h(x) Click Problemas to editde Master Maximización title style • Las definiciones previas de SONC y SOSC son para problemas de minimización • Para problemas de maximización, el sentido del signo de desigualdad debe ser invertido Para problemas de maximización: T 2 * y L ( x , ) y 0 SONC: x SOSC: yT 2x L(x* , ) y 0 Click Necesario to edit Master y Suficiente title style • Las condiciones necesarias son requeridas para que un punto sea un extremo pero incluso si son satisfechas, no garantizan que el punto es un extremo. • Si las condiciones suficientes son reales, entonces se garantiza que el punto es un extremo. Pero si no se satisfacen, no significa que el punto no es un extremo. Click toProcedimiento edit Master title style 1. Resuelve las FONC para obtener puntos candidatos. 2. Prueba los puntos candidatos con las SONC – Elimina cualquier punto que no satisfaga las SONC 3. Prueba los puntos restantes con las SOSC – Los puntos que las satisfacen son min/max’s – Para los puntos que no las satisfacen, no podemos decir si son puntos extremos o no Problemas con Restricciones de Click to edit Master title style Desigualdad Consideraremos problemas como: Minimiza f(x) Sujeta a: hi(x) = 0 i = 1, …, m y gj(x) ≤ 0 j = 1, …, p Una restricción de desigualdad, gj(x) ≤ 0 es llamada “activa” en x* si gj(x*) = 0. Dejemos que el grupo I(x*) contenga todos los índices de las restricciones activas en x*: g j (x ) 0 Para todo j en el grupo I(x*) * Lagrangianos para Problemas con Click to edit Master title style Restricciones de Igualdad y Desigualdad El Lagrangiano está escrito: m p i 1 j 1 L(x, λ, μ) f (x) i hi (x) m j g j (x) Usamos ’s para las igualdades y m’s para las desigualdades. FONC para Restricciones de Click to edit Master title style Igualdad y Desigualdad Para el Lagrangiano general, las FONC se vuelven m p i 1 j 1 L(x*,λ*,μ*) f (x*) *i hi (x*) m *j g j (x*) 0 y la condición de soltura complementaria: m 0, m * j * j g (x ) 0, * j j 1, p SONC para Restricciones de Click to edit Master title style Igualdad y Desigualdad Las SONC (para un problema de minimización) son: T 2 * * * y x L(x , , m ) y 0 donde J(x ) y 0 como antes. * Ahora, J(x*) es la matriz de los gradientes de todas las restricciones de igualdad y solo las restricciones de desigualdad que están activas en x*. SOSC para Restricciones de Click to edit Master title style Igualdad y Desigualdad • Las SOSC para un problema de minimización con restricciones de igualdad y desigualdad son: y L(x , , m ) y 0 T 2 x * * * Ejemplo de Lagrangiano Click to edit Master title style Generalizado • Resuelve el problema: Minimizar f(x) = (x1 – 1)2 + (x2)2 Sujeta a: h(x) = (x1)2 + (x2)2 + x1 + x2 = 0 g(x) = x1 – (x2)2 ≤ 0 El Lagrangiano para este problema es: m x x L(x, , m ) ( x1 1) x2 x1 x 2 x1 x2 2 2 2 2 2 1 2 Ejemplo de Lagrangiano Click to edit Master title style Generalizado • Las condiciones necesarias de primer orden: L 2x1 1 2 x1 m 0 x1 L 2 x2 2 x2 2 m x2 0 x2 L 2 2 x1 x2 x1 x2 0 m x1 x2 0 2 Ejemplo de Lagrangiano Click to edit Master title style Generalizado Resolviendo las 4 ecuaciones FONC, obtenemos 2 soluciones: 1) x y (1) 0.2056 0.45 & m 0.9537 0.4534 2) x ( 2) 0 0 0 & m 2 Ejemplo de Lagrangiano Click to edit Master title style Generalizado Ahora trabaja las SONC en la 1a solución: Tanto h(x) como g(x) están activas en este punto (ambas son iguales a cero). Entonces, el Jacobiano es el gradiente de ambas funciones evaluado en x(1): 2 x1 1 2 x2 1 1.411 0.0932 1 J x 2 x2 x (1) 1 0.9068 1 Ejemplo de Lagrangiano Click to edit Master title style Generalizado La única solución a la ecuación: J (x ) y 0 (1) 0 0 es: y 0 0 Y el Hessiano del Lagrangiano es: 2 2 L 0 2 x 0 2 .9 2 2 2 m x (1) 0 0.993 0 Ejemplo de Lagrangiano Click to edit Master title style Generalizado Entonces, la ecuación SONC es: 0 0 0 0 0 0 0 2.9 0 0 0 0.993 0 0 0 0 0 Esta desigualdad es verdadera, entonces la SONC es satisfecha para x(1) y aún es un punto candidato. Ejemplo de Lagrangiano Click to edit Master title style Generalizado La ecuación SOSC es: y L(x , , m ) y 0 T 2 x * * * Y solo calculamos el lado izquierdo de la ecuación para ser la matriz cero. Entonces, en nuestro caso para x2: 0 0 T 2 y x L (1) y 0 x 0 0 Así, las SOSC no son satisfechas. Ejemplo de Lagrangiano Click to edit Master title style Generalizado Para la segunda solución: Nuevamente, tanto h(x) como g(x) son activos en este punto. Entonces, el Jacobiano es: Jx ( 2) 2 x1 1 2 x2 1 1 1 2 x2 x ( 2 ) 1 0 1 Ejemplo de Lagrangiano Click to edit Master title style Generalizado La única solución a la ecuación: J (x ) y 0 ( 2) 0 0 es: y 0 0 Y el Hessiano del Lagrangiano es: 2 2 L 0 2 x 2 0 2 2 2 m x ( 2 ) 0 2 0 Ejemplo de Lagrangiano Click to edit Master title style Generalizado Entonces, la ecuación SONC es: 0 0 2 0 0 0 0 0 0 0 0 2 0 0 0 0 0 Esta desigualdad es verdadera, entonces la SONC es satisfecha por x(2) y aún es un punto candidato Ejemplo de Lagrangiano Click to edit Master title style Generalizado La ecuación SOSC es: y L(x , , m ) y 0 T 2 x * * * Y solo calculamos el lado izquierdo de la ecuación para ser la matriz cero. Entonces, en nuestro caso para x2: 0 0 T 2 y x L ( 2) y 0 x 0 0 Así, las SOSC no son satisfechas. Click Conclusiones to edit Master del Ejemplo title style • De esta manera, podemos decir que tanto x(1) como x(2) pueden ser mínimos locales, pero no podemos estar seguros porque las SOSC no son satisfechas para ningún punto. ClickMétodos to edit Master Numéricos title style • Como pudiste observar de este ejemplo, el paso más difícil es resolver un sistema de ecuaciones no lineales para obtener los puntos candidatos. • En vez de tomar gradientes de funciones, solvers automatizados de NLP usan varios métodos para transformar una NLP general en un problema de optimización más fácil. Click to Ejemplo edit Master de Excel title style Resolvamos el ejemplo previo con Excel: Minimizar f(x) = (x1 – 1)2 + (x2)2 Sujeta a: h(x) = (x1)2 + (x2)2 + x1 + x2 = 0 g(x) = x1 – (x2)2 ≤ 0 Click to Ejemplo edit Master de Excel title style Introducimos la función objetivo y las ecuaciones de restricción en la hoja de cálculo: Variables: x1 0 x2 0 Función Objetivo: Valor =(A3-1)^2+B3^2 Restricción 1: Restricción 2: =A3^2+B3^2+A3+B3 =A3-B3^2 Límite 0 0 Click to Ejemplo edit Master de Excel title style Ahora, abre la ventana de diálogo del solver en el menú Herramientas y especifica el valor de la función objetivo como la celda objetivo y elige la opción Min. Como está escrito, A3 y B3 son las celdas variables. Y las restricciones deben adicionarse – la restricción de igualdad y la restricción ≤. Click to Ejemplo edit Master de Excel title style La ventana del solver debe verse como sigue: Click to Ejemplo edit Master de Excel title style • Este es un modelo no lineal, así que a diferencia de los ejemplos en el último capítulo, no elegiremos "Adoptar Modelo Lineal" en el menú opciones • También, x1 y x2 no son especificadas como positivas, así que no marcamos la casilla de "Asumir no Negativos" • Si se desea, la tolerancia puede ser disminuida hasta 0.1% Click to Ejemplo edit Master de Excel title style • Cuando resolvemos el problema, la hoja de cálculo no cambia porque nuestro valor inicial de x1 = 0 y x2 = 0 es una solución óptima, como vimos cuando resolvimos el problema analíticamente. Click to Ejemplo edit Master de Excel title style Sin embargo, si elegimos valores iniciales de -1 para x1 y x2 as, obtenemos la siguiente solución: Click to Conclusiones edit Master title style • Entonces, al variar los valores iniciales, podemos obtener los dos puntos candidatos que obtuvimos previamente • Sin embargo, el solver NLP nos dice que ambos son puntos mínimos locales Click to edit Referencias Master title style El material de este capítulo ha sido tomado de: • Optimization of Chemical Processes 2nd Ed.; Edgar, Thomas; David Himmelblau; & Leon Lasdon.