Análisis de Sensibilidad Basado en Bertsimas, Tsitsiklis “Introduction to Linear Optimization” Chap. 5 IN3701 – Modelamiento y Optimización Nelson Devia C. Introducción Consideremos el problema (P) en forma estándar y su dual (D): ( P ) Min c ' x Ax = b x≥0 ( D ) Max y ' b y ' A ≤ c' Supongamos que tenemos la base óptima AB y la solución óptima asociada x * . Si alguno de los coeficientes de b ó c cambia: ¿Se mantiene la base óptima? ¿Cómo calcular la nueva solución óptima sin resolver el problema otra vez? Como AB es la base óptima sabemos que cumple las condiciones de: −1 Factibilidad: x B = AB b ≥ 0 Optimalidad: c ' N = c' N −c' B AB−1 AN ≥ 0' Si al cambiar el problema se siguen cumpliendo ambas condiciones, 2 entonces la base se mantiene óptima. Cambios en el Vector b Supongamos que la i-ésima componente de b es aumentada en δ Equivalentemente, b se reemplaza por b + δei Nos interesa saber en qué rango se puede mover δ sin que cambie la base óptima. −1 Factibilidad: AB (b + δei ) ≥ 0 x B + δAB−1ei ≥ 0 −1 Sea g la i-ésima columna de AB : Luego 3 δ − (x B ) j ≥ gj ≤ − (x B ) j gj ∀j / g j > 0 ∀j / g j < 0 x B + δg ≥ 0 − (x B ) j max ≤ δ { j / g j >0} g j − (x B ) j ≤ min { j / g j <0} g j Cambios en el Vector b Optimalidad: Al variar b, los costos reducidos no se ven afectados c ' N = c' N −c' B AB−1 AN ≥ 0' El nuevo costo óptimo está dado por: c' B AB−1 (b + δei ) = y '* b + δy i Donde y * es la solución óptima del problema dual (precio sombra) Ejemplo: Max 2 x1 + x 2 x2 ≤ 5 − x1 + x 2 ≤ −2 x1 , x 2 ≥ 0 4 Cambios en el Vector b En forma estándar: Min − 2 x1 − x 2 x 2 + x3 = 5 x1 − x 2 + x 4 = 2 x1 , x 2 , x3 , x 4 ≥ 0 La base óptima es: x B = {x1 , x 2 } 0 1 1 0 , AN = y . con AB = { } x N = x3 , x 4 1 − 1 0 1 Factibilidad: 1 1 AB−1 = 1 0 1 1 5 7 ⋅ = ≥ 0 AB−1b = 1 0 2 5 Optimalidad: 5 1 1 1 0 ⋅ = (3 2) ≥ 0 c' N −c' B A AN = (0 0) − (− 2 − 1) ⋅ 1 0 0 1 −1 B Cambios en el Vector b Si cambiamos b1: Min − 2 x1 − x 2 x 2 + x3 = b1 x1 − x 2 + x 4 = 2 Factibilidad: x1 , x 2 , x3 , x 4 ≥ 0 1 1 b1 b1 + 2 ≥ 0 ⋅ = AB−1b = 1 0 2 b1 b1 ≥ −2 b1 ≥ 0 b1 ≥ 0 Es decir, para cualquier b1 positivo la base se mantiene óptima 6 b1 =-0,5 (infactible) b1 =1 (base aún óptima) b1 =7 (base aún óptima) Cambios en el Vector b Si cambiamos b2: Min − 2 x1 − x 2 x 2 + x3 = 5 x1 − x 2 + x 4 = b2 Factibilidad: x1 , x 2 , x3 , x 4 ≥ 0 1 1 5 5 + b2 ⋅ = ≥ 0 A b = b 1 0 5 2 −1 B b2 ≥ −5 Es decir, para cualquier b2 ≥ −5 la base se mantiene óptima 7 b2 =-6 (infactible) b2 =-2 (base aún óptima) b2 =5 (base aún óptima) Cambios en el Vector c Supongamos que la j-ésima componente de c es aumentada en δ Nos interesa saber en qué rango se puede mover δ sin que cambie la base óptima. Factibilidad: Al variar c, la región factible no cambia y no se afecta la factibilidad: Optimalidad: AB−1b ≥ 0 c' N −c' B AB−1 AN ≥ 0 Si cj es el costo de una variable no básica, cB no cambia y se tiene c' j +δ ≥ c' B AB−1 A j la condición: Equivalentemente, usando los costos reducidos: 8 δ ≥ −c' j Cambios en el Vector c Si c j es el costo de una variable básica y cambia a c j + δ Equivalentemente los costos de las variables básicas ahora son: c B + δek Donde j = B(k ) (la k-ésima variable básica) Se tiene que: (c B + δek )' AB−1 AN Luego: ≤ c' N δ (AB−1 AN )k ≤ c ' N Sea q la k-ésima fila de (AB−1 AN ) δ 9 (c N )i ≤ qi ≥ (c N )i qi qi > 0 qi < 0 (c ) max N i ≤ δ {i / q j <0} qi (c ) ≤ min N i {i / q j >0} qi Cambios en el Vector c Ejemplo: Max 2 x1 + x 2 x2 ≤ 5 − x1 + x 2 ≤ −2 x1 , x 2 ≥ 0 En forma estándar: Min − 2 x1 − x 2 x 2 + x3 = 5 x1 − x 2 + x 4 = 2 x1 , x 2 , x3 , x 4 ≥ 0 Al variar los coeficientes de la función objetivo se cambia su pendiente… 10 Cambios en el Vector c Si cambiamos c1: Min c1 x1 − x 2 x 2 + x3 = 5 x1 − x 2 + x 4 = 2 x1 , x 2 , x3 , x 4 ≥ 0 Optimalidad: c' N −c' B AB−1 AN = (0 0) − (c1 c1 ≤ 1 c1 ≤ 0 1 1 1 0 ⋅ = (1 − c1 − 1) ⋅ 1 0 0 1 − c1 ) ≥ 0 c1 ≤ 0 Es decir, para cualquier c1 negativo la base se mantiene óptima 11 c1 =-200 (base aún óptima) c1 =0 (base aún óptima) c1 =2 (la base óptima cambió) Cambios en el Vector c Si cambiamos c2: Min − 2 x1 + c 2 x 2 x 2 + x3 = 5 x1 − x 2 + x 4 = 2 Optimalidad: x1 , x 2 , x3 , x 4 ≥ 0 1 1 1 0 ⋅ = (2 − c 2 c' N −c' B AB−1 AN = (0 0) − (− 2 c 2 ) ⋅ 1 0 0 1 2) ≥ 0 c2 ≤ 2 Es decir, para cualquier c 2 ≤ 2 la base se mantiene óptima 12 c2 =0 (base aún óptima) c2 =2 (base aún óptima) c2 =3 (la base óptima cambió) Análisis de Sensibilidad Basado en Bertsimas, Tsitsiklis “Introduction to Linear Optimization” Chap. 5 IN3701 – Modelamiento y Optimización Nelson Devia C.