Pontificia Universidad Católica Escuela de Ingeniería Departamento de Ingeniería Industrial y de Sistemas Clase 22 • Análisis de Sensibilidad de los Resultados ICS 1102 • Optimización Profesor : Claudio Seebach 20 de octubre de 2006 Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 105 Análisis de Sensibilidad de los Resultados • El supuesto fundamental de los modelos de LP es que uno conoce en forma exacta los distintos parámetros del problema • En general, al modelar no se conocen los valores que pueden adoptar los parámetros • Muchas veces los paraḿetros no son determinı́sticos, sino que estocásticos • Dado esto, es importante poder saber cuan robustas son nuestras soluciones frente a: – Variaciones en los costos ci – Variaciones en los niveles de los recursos bj Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 106 Sensibilidad a variaciones en los costos • ¿como varı́a la solución óptima de un problema de LP si varı́an los costos de la función objetivo ? 1. Modificar la función objetivo no cambia el dominio del problema. 2. Una función objetivo diferente sólo puede modificar el vértice óptimo. • Identifiquemos el rango de las perturbaciones en uno de los coeficientes de la función objetivo de modo de no alterar la solución óptima alcanzada: • El vector de costos de la función objetivo se puede dividir entre: c!B xB + c!D xD – c!B : Costos asociados a las variables básicas – c!D : Costos asociados a las variables no básicas • A medida que la base cambia en búsqueda de una base óptima, los costos reducidos rD también cambian. Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 107 Variaciones de los costos de variables No Básicas • Para poder mantener la optimalidad de la solución óptima, los costos reducidos deben permanecer positivos o nulos. • Es decir: • Por lo tanto: rD = c!D − z! ≥ 0 donde z! = c!B B−1D. rk = ck − zk ≥ 0, ∀k no básico. • Si el costo cj asociado a la variable no básica xj varı́a en ∆cj para que esta variable siga siendo no básica debe cumplirse que su respectivo costo reducido siga siendo no negativo: cj + ∆cj − zj ≥ 0 → rj + ∆cj ≥ 0 • Por lo tanto, el rango de esta variación ∆cj es: −rj ≤ ∆cj ≤ ∞ Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 108 Variaciones de los costos de Variables Básicas • El análisis respecto a variaciones de los costos asociados a variables básicas es más complejo que en las no básicas: – Una perturbación en algún elemento cj de cB , altera todos los componentes del vector z! = c!B B−1D. • Si ante esta perturbación los costos reducidos no básicos siguen siendo no negativos la base óptima permanece inalterada. • Los costos reducidos básicos seguirán siendo nulos por construcción ! • Basta que uno de los costos reducidos no básicos se torne negativo para que la base (y por tanto la solución) óptima cambie. • Si definimos: zk = ! ciαik i∈B donde αik es el producto de la fila i de la matriz B−1, la inversa de la base, con la columna k de la matriz D, es decir: αik = B−1 fila i Dcolumna k Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 109 Variaciones de los costos de Variables Básicas • Si modificamos el costo cj en ∆cj , los costos reducidos r̂k de todas la variables no básicas serán: r̂k = ck − z! k = (ck − ciαik ) − ∆cj αjk i∈B = rk − ∆cj αjk ≥ 0, ∀k ∈ D (i.e. no básico) • En la medida que rk ≥ ∆cj αjk para todos los costos reducidos, la base óptima no cambia. • Dado que los αjk pueden ser positivos, negativos o nulos, deberá cumplirse que: rk Si αjk > 0 ⇒ ∆cj ≤ αjk rk Si αjk < 0 ⇒ ∆cj ≥ αjk Si αjk = 0 ⇒ ∆cj puede tomar cualquier valor Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 110 Variaciones de los costos de variables Básicas • El análisis anterior es para un k dado, pero para que no cambie la base óptima se debe cumplir rk ≥ 0 ∀ k • Por lo tanto el rango de la variación ∆cj que mantiene la base óptima inalterada será: " # " # rk rk max ≤ ∆cj ≤ min . ∀k:αjk >0 αjk ∀k:αjk <0 αjk • En este caso el valor óptimo cambia en ∆cj xj . Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 111 Variaciones de los costos de la función objetivo • ¿Qué ocurre si ∆cj llega a un lı́mite? ¿Cuál es la nueva base? • En ambos casos de perturbaciones en el coeficiente cj de la función objetivo de una variable xj ya sea básica o no básica, si ∆cj llega a uno de los bordes de los intervalos, el costo reducido de (al menos) una variable no básica se vuelve nulo. • En ese caso la solución óptima no serı́a única pues de incorporar la variable de costo reducido nulo a la base se obtendrı́a una nueva solución básica con idéntico valor en la función objetivo. i) si cj está asociada a una variable no-básica, entonces en la solución óptima alternativa esta variable pasará a ser básica. ii) si cj está asociada a una variable básica, entonces en la solución óptima alternativa la variable de ı́ndice k que establece el lı́mite entrará a la base, y dejará la base la variable de ı́ndice i tal que: " # xi . min i tal que αik >0 αik Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 112 Variaciones de los costos de variables Básicas x2 • En ambos casos la solución óptima alternativa corresponderá a un vértice adyacente al vértice asociado a la solución óptima original: xB={x1,x2} xD={x3,x4} xB={x3,x2} xD={x1,x4} 4 2 3 1 x1 Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 113 Ejemplo Variación Costos • En el ejemplo de las planchas de aluminio: ¿cuánto podrı́a variar el beneficio c1 de las planchas tipo 1 sin que cambie la polı́tica de producción ? • El tableau inicial era: x1 x2 x3 x4 x5 v.b. 15 5 1 0 0 600 x3 7 14 0 1 0 630 x4 0, 3 0, 3 0 0 1 15 x5 −800 −600 0 0 0 0 • Y el tableau final era: x1 x2 x3 x4 1 1 0 10 0 7 0 0 10 1 0 1 −1 0 10 0 0 20 0 Apuntes de Clases • Optimización • Claudio Seebach x5 −5 3 −175 3 v.b. 35 x1 175 x4 5 15 x2 5000 37000 3 Programación Lineal • 114 Ejemplo Variación Costos • Como podemos ver: 1 15 0 5 10 0 −1 7 7 1 14 1 B= , B = 10 −1 0, 3 0 0, 3 10 0 −5 3 −175 3 5 1 0 y D=0 0 0 1 • Como c1 está asociado a una variable básica, entonces su rango de variación está determinado por: " # " # rk rk max ≤ ∆cj ≤ min . ∀k:αjk <0 αjk ∀k:αjk >0 αjk • Aquı́ tenemos k = 3 y k = 5, son las variables no-básicas. Tenemos que calcular los α1k , es decir, α13 y α15. + 1 * 1 1 −5 0 = > 0, α13 = 10 0 3 10 0 + 0 * 1 −5 −5 0 0 = < 0. α15 = 10 3 3 1 Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 115 Ejemplo Variación Costos • Además sabemos que r3 = 20 y r5 = $ % max α1k <0 5000 3 −5 3 5000 3 . Ası́, $ ≤ ∆c1 ≤ min α1k >0 20 1 10 % , por lo tanto, −1000 ≤ ∆c1 ≤ 200 para que no cambie la base óptima. Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 116 Interpretación Gráfica Variación Costos Tipo 2 • Si ∆c1 = −1000 ⇒ ∇f = (−1800, −600), y si ∆c1 = 200 ⇒ ∇f = (−600, −600), que son colineales a los gradientes de las restricciones activas en el punto óptimo, respectivamente. ( 0,3 0,3 ) (155) x2= 15 ( ) -1800 -600 ∆c1 = - 1000 ∆c1 = 200 -600 -800 -600 -600 ( )( Apuntes de Clases • Optimización • Claudio Seebach ) x1= 35 Tipo 1 Programación Lineal • 117 Variaciones en los niveles de los recursos • Al cambiar el vector de nivel de recursos b, se mantiene inalterada la función objetivo, pero se modifica el dominio de las soluciones. • Si se modifica el nivel de recursos de una restricción activa, la solución óptima, a menos que sea degenerada, cambia inmediatamente. • Si la solución óptima continúa siendo definida por la misma base entonces los costos reducidos permanecen inalterados, ya que no dependen de b. Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 118 Variaciones en los niveles de los recursos x2 • Perturbaciones pequeñas en uno de los recursos disponibles no cambia el conjunto de variables básicas, pero si el valor que ellas toman en la solución óptima. xB={x1,x2} xD={x3,x4} 4 2 3 1 x1 Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 119 Variaciones en los niveles de los recursos x2 • Perturbaciones mayores a un determinado umbral pueden convertir la base en una base infactible: el valor que toma una de las variables básicas se hace negativo. xB={x1,x2} xD={x3,x4} 4 2 3 1 Apuntes de Clases • Optimización • Claudio Seebach x1 Programación Lineal • 120 Variaciones en los niveles de los recursos • ¿cuál es el rango de variación de un recurso, que mantiene la base óptima actual dentro del dominio ? • La factibilidad de una base queda definida por xB = B−1b, que debe ser no negativo. • La solución óptima puede β11 β12 .. x∗ = B−1b = .. βm1 βm2 expresarse como: b1β11 + b2β12 + · · · + bmβ1m b1 · · · β1m .. . . . .. .. = b1βm1 + b2βm2 + · · · + bmβmm bm · · · βmm • Si el nivel del recurso j varı́a en ∆bj , debe cumplirse que b1β11 + b2β12 + · · · + bmβ1m + ∆bj β1j .. ≥0 x̂∗ = b1βm1 + b2βm2 + · · · + bmβmm + ∆bj βmj Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 121 Variaciones en los niveles de los recursos • Es decir, x∗i + βij ∆bj ≥ 0, ∀i = 1, ..., m. • Para que la base óptima no cambie, debe cumplirse: " ∗# " ∗# −xi −xi max ≤ ∆bj ≤ min ∀i:βij >0 ∀i:βij <0 βij βij • Al hacer cambios en los bj , dentro de este rango, la nueva solución óptima será x∗i + βij ∆bj para todo i. • El cambio en la función objetivo será: λj ∆bj . • Dentro de este rango de variación, los costos reducidos no se alterarán. Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 122