Apéndice Fundamentos algebraicos: simplex, dualidad y sensibilidad Formas canónica y estándar del modelo de programación lineal La forma canónica para un modelo de programación lineal (pl) con maximización de la función objetivo (FO) es: Máx z = cx s. a. Ax ≤ b x≥0 La forma canónica para un modelo de pl con FO de minimizar es: Mín z = cx s. a. Ax ≥ b x≥0 La forma estándar es: Máx z = cxMín z = cx s. a.s. a. Ax = bAx = b x ≥ 0o bien:x ≥ 0 Todo problema de pl puede llevarse a la forma estándar al aumentar o disminuir variables de holgura. 1) Si la restricción es del tipo ≤, se agrega una variable llamada de holgura positiva, y esta restricción se convierte en ecuación: 191 Programación lineal a11 x1 + a12 x2 + … + a1n xn ≤ bi → a11 x1 + a12 x2 + … + a1n xn + hi = bi 2) Si la restricción es del tipo ≥, se agrega una variable llamada de holgura negativa: a11 x1 + a12 x2 + … + a1n xn ≥ bi → a11 x1 +a12 x2 +… + a1n xn - hi = bi Por ejemplo, considérese un modelo de pl de tres variables y tres restricciones representadas por desigualdades: Máx z = c 1 x 1 + c 2 x 2 + c 3 x 3 s. a. a11 x1 + a12 x2 + a13 x3 ≤ b1 a21 x1 + a22 x2 + a23 x3 ≤ b2 a31 x1 + a32 x2 + a33 x3 ≤ b3 La forma estándar o aumentada correspondiente es: Máx z = c1x1 + c2x2 + c3x3 s. a. a11 x1 + a12 x2 + a13 x3 + h1 = b1 ⎫ a21 x1 + a22 x2 + a23 x3 + h2 = b2 ⎬sistema por resolver a31 x1 + a32 x2 + a33 x3+ h3 = b3 ⎭ El conjunto de restricciones toma la forma matricial: a11 a21 a31 a31 a12 a22 a33 a33 a13 x1 1 0 a23 x2 + 0 1 a34 x3 0 0 a34 x3 0 0 1 0 h1 b1 0 h2= b2 1 h3 b3 h3b3 Es decir: Ax + I h = b Método algebraico para la solución de un modelo de programación lineal El modelo de pl puede resolverse al construir subsistemas de orden m + n. El sistema del ejemplo anterior tiene 6 variables y 3 ecuaciones, por tanto hay 6 – 3 = 3 grados de libertad y por lo tanto se pueden elegir 3 variables iguales a 0. 192 apéndice El sistema tiene ⎛ 6 ⎞ = 6! = 20 ⎝ 3 ⎠ 3! (6 - 3)! soluciones posibles, no todas son factibles; las variables que de antemano se igualan a cero se llaman no básicas, y las que resuelven el subsistema se llaman básicas. La primera solución factible es asignar a las variables originales el valor de 0 y en consecuencia las variables de holgura toman el valor del lado derecho, lo que es muy fácil observar en el sistema de forma matricial: a11 a21 a31 a31 a12 a22 a33 a33 a13 x1 1 0 0 h1 b1 a23 x2 + 0 1 0 h2=b2 a34 x3 0 0 1 h3 b3 a34 x3 0 0 1 h3 b3 Variables no básicas: x1 = 0, x2 = 0, x3 = 0 Variables básicas: h1 = b1, h2 = b2, h3 = b3 Un ejemplo numérico aclara estos conceptos. Ejemplo A.1 Considere el siguiente modelo de pl: Máx z = 450x1 +500x2 + 435x3 s. a. 4x1 + 5x2 + 3x3 ≤ 50 5x1 + 10x2 + 5x3 ≤ 65 xj ≥ 0 El procedimiento para resolverlo se inicia con la construcción de la forma estándar del modelo agregando las variables de holgura: Máx z = 450x1 + 500x2 + 435x3 s. a. 4x1 + 5x2 + 3x3 + h1 = 50 5x1 + 10x2 + 5x3 + h2 = 65 xj ≥ 0 193 Programación lineal Esta forma estándar tiene 5 variables (3 originales y 2 de holgura) y 2 ecuaciones, por tanto hay 5 – 2 = 3 grados de libertad, y se pueden elegir 3 variables iguales a 0. El sistema tiene ⎛ 5 ⎞ = 101 ⎝3⎠ soluciones posibles, no todas son factibles; las variables que de inicio se igualan a 0 se llaman no básicas y las que resuelven el subsistema se llaman básicas. 1) La primera solución factible es cuando se le asigna el valor de 0 a las variables originales, es decir, x1 = 0, x2 = 0, x3 = 0, y el sistema ha es: h1 = 50 h2 = 65 Solución Variables no básicas: x1 = 0, x2 = 0, x3 =0 Variables básicas: h1 = 50, h2 = 65 -1 1 0 La matriz básica es B = 1 0yB = 0 1 0 1 2) La segunda solución factible es cuando se le asigna el valor de 0 a las variables: x1 =0, x2 =0, h1 = 0 El sistema por resolver es: 3x3 = 50 5x3 + h2 = 65 0 La base es B = 3 0 y B-1= -⅓ -5/3 1 5 1 1 n = m 1 n! m!(n-m)! 194 apéndice Solución Variables no básicas: x1 = 0, x2 = 0, h1 = 0 Variables básicas: x3 = 50yh2 = -55 3 3 que no es factible por tomar un valor negativo. En el cuadro A.1 se presentan los subsistemas de 2 x 2 que son el resultado de elegir tres de las cinco variables como variables no básicas y por lo tanto igualándolas a cero; se muestran las bases, sus inversas, la solución, si ésta es factible o no, y en caso de ser factible, el valor de la variable z, para determinar la solución óptima del modelo de programación lineal. La solución óptima que maximiza la FO es: x1 = 11 y x3 = 2, con z = 5 829 3) Las variables que quedaron fuera de la base son: x2 = 0, h1 = 0 y h2 = 0. El sistema que se resolvió fue: 4x1 + 3x2 = 50 5x1 + 5x2 = 65 3 La base óptima fue B =4 3 cuya inversa es B-1= -1 - /5 -1 -4/5 5 5 Para encontrar la solución se evaluaron 10 posibilidades, de ellas cuatro fueron no factibles ya que asignaban valores negativos a alguna de las variables originales o de holgura. Este procedimiento al igual que el método gráfico es relevante para entender las soluciones factibles, pero es muy engorroso y además muy caro numéricamente al hacer muchas operaciones innecesarias cuando se obtienen soluciones no factibles. El matemático estadounidense George Bernard Dantzig (1914-2005) desarrolló el método Simplex en 1947, este método es muy eficiente ya que solamente busca la solución óptima entre las soluciones factibles. 195 Variables básicas h1 y h2 x3 y h2 x3 y h1 x2 y h2 x2 y h1 x2 y x3 x1 y h2 x1 y h1 x1 y x3 x1 y x2 Variables no básicas x1=0, x2=0, x3=0 x1=0, x2=0, h1=0 x1=0, x2=0, h2=0 x1=0, x3=0, h1=0 x1=0, x3=0, h2=0 x1=0, h1=0, h2=0 x2=0, x3=0, h1=0 x2=0, x3=0, h2=0 x2=0, h1=0, h2=0 x3=0, h1=0, h2=0 4x1 + 5x2 = 50 5x1 + 10x2 = 65 4x1 + 3x2 = 50 5x1 + 5x2 = 65 4x1+ h1 = 50 5x1 = 65 4x1 = 50 5x1 + h2 = 65 5x2 + 3x3=50 10x2 +5x3=65 5x2 + h1 = 50 10x2 = 65 5x2 = 50 10x2 + h2 = 65 3x3 + h1 = 50 5x3 = 65 3x3 = 50 5x3 + h2 = 65 h1 = 50 h2 = 65 Sistema de ecuaciones x2 = 13 /2 h1 = 35/2 x2 = -11 x3 = 35 x1 = 25/2 h2 = 5/2 x 1 = 13 h1 = -2 -0 /10 1 -1/20 -1 -3/5 2 -1 1 - /4 0 - 5 /4 1 - 0 /5 1 -4/50 15 1 10 0 4 15 5 10 4 3 5 5 4 1 5 0 4 0 5 1 15 3 10 5 - - 1/3 1/3 4/15 2/3 1 -3/5 -1 4 / 5 1 1 x1 = 35/3 x2 = 2/3 x1 = 11 x3 = 2 x2 = 10 h2 = -35 1 - /5 0 -2 1 1 15 0 10 1 3 -5/3 x3 = 13 h1 = 11 3 1 5 0 3 0 5 1 -0 /5 1 -3/5 1/ 1 0 50 0 1 65 h1 = 50 h2 = 65 Solución B -1b x3=50 3 h2=55 3 - 1 0 0 1 B -1 0 1 1 0 0 1 B Sí Sí No Sí No Sí No Sí No Sí Factible 450x1 + 500x2 = 5 583.33 450x1 + 435x3 = 5 820 450x1 = 5 625 500x2 = 3 250 435x3 = 5 655 0 Valor de z apéndice Método Simplex Como se observó en el método algebraico, cuando se agregan variables al modelo, éste se convierte en un sistema que tiene más variables que ecuaciones, ya que se agregan m variables, con lo que se obtiene un sistema de m ecuaciones con n + m variables, y por lo tanto existen n + m - m = n grados de libertad, es decir, se pueden elegir n variables e igualarlas a cero, a las que se denominan variables no básicas. Las restantes m variables se denominan básicas. Así se tienen ⎛ m+ n ⎞ ⎝ m ⎠ subsistemas de ecuaciones de m variables y m incógnitas, pero como vimos arriba no todas son factibles. Ahora veremos el método Simplex que sólo obtiene soluciones factibles. El método Simplex es un algoritmo2 que se usa para resolver problemas de pl. Construye una solución inicial factible a partir de llevar el modelo de pl a la forma estándar agregando variables de holgura y asegurándose de que los valores del lado derecho b sean positivos para identificar la solución inicial factible. Una vez que el modelo está en la forma estándar o aumentada, se construye la tabla Simplex y sobre ella se verifica si la solución es óptima o no lo es; en el primer caso el problema está solucionado, en el segundo, hay que mejorar la solución mediante operaciones sobre la tabla Simplex. Esquemáticamente, este algoritmo consta de tres fases: Inicialización: construcción de una solución inicial factible Criterio de optimización: ¿la solución es óptima? Fin: el modelo está resuelto Paso interactivo: mejorar la solución El Algoritmo es un conjunto de pasos ordenados con el objeto de resolver problemas. 2 197 Programación lineal En la etapa final, en la que el modelo se encuentra resuelto, existen tres posibilidades: que se haya encontrado la solución óptima, que el problema no tenga solución o bien que no esté acotado. La descripción de las tres fases se presenta a continuación: 1) Inicialización: construcción de la solución inicial factible. Esta etapa consiste en la construcción de una solución básica factible aumentando variables de holgura en las restricciones de tipo menor o igual, así como igualando z con ci x. Forma canónica: Máx z = c1 x1 + c2 x2 + ... + cn xn s. a. a11 x1 + a12 x2 + … + a1n3 xn ≤ b1 ... ... am1 x1 + am22 x2 + … amnxn ≤ bm Forma estándar: Máx z – (c1 x1 + c2 x2 + ... + cn xn) = 0 s. a. a11 x1 + a12 x2 + … + a1n xn + h1 = b1 .... .... am1 x1 + am2 x2 + + … + amn xn +hm = bm Matricialmente: Máx z – [c1 … cn] s. a. a11 … a13 aij a31 … a34 x1 xn =0 xn 1 0 0 h1 b1 xj + 1 = xn 0 … 1 h b m m 198 apéndice O bien con las dos expresiones siguientes: Maximizar z en: z 1 -ct 0 x = 0 0 -a 1 h b Máx z – ctx s. a. Ax + Ih = bx, h ≥ 0 Construcción de la tabla Simplex inicial: Variables básicas n variables originales x 1 x 2 x j x n m variables de holgura h 1 h 2 ... h m Solución B -1b h1 a11 a12 a1j a1n 1 0 0 b1 h2 a21 a22 a2j a2n 0 1 0 b2 hm am1 am2 amj amn 0 0 1 bm z -c1 -c2 -cj -cn 0 0 0 0 ⎫ | | ⎬ | | ⎭ ⎫ | | ⎬ | | ⎭ ⎫ | ⎬ | ⎭ Costos reducidos z – cj yi Variables duales o precios sombra Valor de z Su forma reducida es: Vb VO x Vh h Sol h A B B-1b z z – cj y -1 0 Obsérvese que en la matriz que ocupa el lugar de las variables de holgura se encuentra la inversa de la matriz básica, es decir, de la matriz de coeficiente de las variables básicas. La solución inicial es: h1 = b1 hm = bm x1 = 0 xj = 0 xn = 0 y1 = 0 ym = 0 z=0 199 Programación lineal Esta solución es factible. Lo siguiente es preguntarnos si es óptima. Será óptima cuando todos los valores del renglón objetivo donde se encuentre la variable z sean positivos. Así se enuncia el criterio de optimización. 2) Criterio de optimización Si zj – cj ≥ 0 y yi ≥ 0 → la solución presentada en la tabla Simplex es óptima. En caso contrario, si alguna zj – cj ≤ 0 o yi ≤ 0, es necesario mejorar la presente solución, y pasar a la etapa 3. 3) Paso iterativo para mejorar la solución y cambiar la base. 3.1.Elección de la variable que entra a la base. Se selecciona la variable no básica con el coeficiente en el renglón objetivo z más negativo. 3.2.Elección de la variable básica que sale de la base. La variable que sale de la base es la que cumple con el siguiente criterio: mín bi, aij > 0 aij Variables básicas xj Solución B - 1 b h1 a1j b1 b1/a1j hi aij bi b1/aij hm amj bm b m/ a mj z -cj Costos mayor reducido - cj Entra a la base la variable xj y sale la variable hi . 3.3.Cambio de la base por medio de operaciones elementales en los renglones de la matriz. 3.3.1. Se transforma en uno el coeficiente que está en la intersección; entran la variable que sale y la que entra con la siguiente operación: = 1 R aij i 200 apéndice Variables básicas xj Solución B - 1 b h1 a1j b1 xj ai1 aij ain aij aij aij bi aij amj bm hm z - cj Variables básicas xj Solución B - 1 b h1 a1j b1 xj ai1 1 ain aij aij bi aij amj bm Y se obtiene: hm z -cj El 1 en la intersección del renglón i, columna j hace que Ri sea el renglón pivote y se utiliza para convertir en ceros las demás entradas de la columna j. 3.3.2. Se convierten en cero las demás posiciones de la columna j. k = k – akj i 3.3.3. Finalmente abrá que ir a la etapa 2 para probar la optimalidad. Un ejemplo numérico aclarará la explicación. Ejemplo A.2 Consideremos el problema que se resolvió con el método algebraico: Máx z = 450x1 + 500x2 + 435x3 s. a. 4x1 + 5x2 + 3x3 ≤ 50 5x1 + 10x2 + 5x3 ≤ 65 xj ≥ 0 201 Programación lineal 1) Inicialización: construcción de la solución inicial factible. Esta etapa consiste en la construcción de una solución básica factible, aumentando variables de holgura en las restricciones de tipo menos o igual, así: como igualando z con cx. Máx z – (450x1 +500x2 + 435x3) = 0 s. a. 4x1 + 5x2 + 3x3 + h1 = 50 5x1 + 10x2 + 5x3 + h2 = 65 xj ≥ 0 Construcción de la tabla Simplex inicial: Variables básicas 3 variables originales x 1 x 2 x 3 2 variables de holgura h 1 h 2 Solución B -1b h1 4 5 3 1 0 50 h2 5 10 5 0 1 65 z -450 -500 -435 0 0 0 La solución inicial factible es: Variables no básicas: x1 = 0, x2 = 0, x3= 0 Variables básicas: h1= 50, h2 = 65 Variables duales o precios sombra: y1 = 0, y2 = 0 La matriz básica es B =1 0 y B-1 = 1 0 0 1 0 1 2) Criterio de optimización ¿Son zj – cj ≥ 0 y yi ≥ 0? La respuesta es no. 3) Paso iterativo para mejorar la solución y cambiar la base. 3.1.Elección de la variable que entra a la base: entra x2 a la base porque tiene el coeficiente -500 que es el mayor negativo. 3.2.Elección de la variable básica que sale de la base: Sale h2 porque cumple con: 202 apéndice mín 50, 65 = 6.5 5 10 Variables básicas 3 variables originales x 1 x 2 x 3 2 variables de holgura h 1 h 2 Solución B -1b h1 4 5 3 1 0 50 50/5 h2 5 10 5 0 1 65 65/10 z -450 -500 -435 0 0 0 Para cambiar la base se realizan las siguientes operaciones: = 1 R2 10 1= R 1– 5 2 obj = obj 2 + 500 2 Variables básicas 3 variables originales x 1 x 2 x 3 2 variables de holgura h 1 h 2 Solución B -1b h1 1.5 0 0.5 1 0.5 17.5 17.5/1.5 6.5/0.5 x2 0.5 1 0.5 0 0.1 6.5 z -200 0 -185 0 5 0 3 250 La solución actual es: Variables no básicas: x1 = 0, x3 = 0, h2= 0 Variables básicas: h1 = 17.5, x2 = 6.5 Variables duales o precios sombra: y1 = 0, y2 = 500, B-1 = 1 -5 0 0.1 2. Criterio de optimización ¿Son zj – cj ≥ 0 y yi ≥ 0? La respuesta es no. 3. Paso iterativo para mejorar la solución y cambiar la base. 3.1. Elección de la variable que entra a la base: entra x1 a la base porque tiene el coeficiente -200 que es el mayor negativo. 3.2. Elección de la variable básica que sale de la base: Sale h1 porque cumple con: 203 Programación lineal mín 17.5, 3 2 6.5 1 2 = 35,13 3 = 35 3 Para cambiar la base se realizan las siguientes operaciones: = 1 R1 1.5 1 2= 2 – 2 1 obj = obj 1 + 200 1 Variables básicas 3 variables originales x 1 x 2 x 3 2 variables de holgura h 1 h 2 Solución B -1b x1 1 0 1/3 2/3 -1/3 35/3 x2 0 1 1/3 z 0 0 -183.33 -1/3 1/4 133.33 - 1 6 . 6 6 2/3 5 583.33 La solución actual es: Variables no básicas: h1 = 0, h2 = 0, x3 = 0 Variables básicas: x1 = 35/3, x2 = 2/3, z = 5 583.33 Variables duales o precios sombra: y1 = 133.33, y2 = -16.66 B-1= 2/3 -1/3 -1/3 1/4 2. Criterio de optimización ¿Son zj – cj ≥ 0 y yi ≥ 0? La respuesta es no. 3. Paso iterativo para mejorar la solución y cambiar la base. 3.1. Elección de la variable que entra a la base: entra x3 a la base porque tiene el coeficiente -183.33 que es el mayor (único) negativo. 3.2.Elección de la variable básica que sale de la base: Sale x2 porque cumple con: 204 apéndice mín 35 3 , 1 3 2 3 1 3 = {35, 2} = 2 Para cambiar la base se realizan las siguientes operaciones 2 =3R2 = 1– 1 3 1 obj = obj 2 + 183.33 2 Variables básicas 3 variables originales x 1 x 2 x3 2 variables de holgura h 1 h 2 x1 1-1 0 1 -3/5 11 x3 03 1 -1 4/5 2 z 0335 0 15 7 8 5 820 La solución actual es óptima: Variables no básicas: x2 = 0, h1 = 0, h2 = 0 Variables básicas: x1 = 11, x3 = 2, z = 5 820 Variables duales o precios sombra: y1 = 15, y2 = 78, B-1= Solución B -1b 1 -3/5 -1 4/5 Interpretación Se debe hacer, producir o activar 11 unidades de la actividad 1, y 2 unidades de la actividad 3 para obtener una ganancia máxima de 5 820. No hacer la actividad 2. Como h1 = 0 y h2 = 0, implica que se acabaron los recursos 1 y 2 respectivamente. Con el precio sombra o variable dual y1 = 15, significa que por cada unidad adicional del recurso i aumenta z en 15. Con el precio sombra o variable dual y2 = 78, significa que por cada unidad adicional del recurso i aumenta z en 78. 205 Programación lineal Observar las siguientes relaciones: 1)xb = B-1b = x1 1 –3/5 x3 –1 4/5 50 = 11 65 2 2 2) z = cBB-1b = 450 435 11 = 2 5 820 3) y = cBB-1 450 435 1 -3/5 2= 215 78 -1 4/5 2 4) además una nueva relación w = yb = S yibi = 15 (50) + 78 (65) = 5 820 i=1 Resumen La primera y última tabla Simplex contienen los siguientes elementos: Coeficientes de variables Coeficientes de variables Originales Holgura Originales Holgura h A I b xb B–1A B-1A B-1b z -c 0 0 z cBB A -c cBB cBB-1b –1 -1 En el cuadro inicial: 1) A es la matriz de coeficiente técnico 2) I es la matriz idéntica 3) -c son los costos iniciales 4) h son las variables duales 5) b es el lado derecho que contiene los límites de los recursos En el cuadro final: 1) xb son las variables básicas = B-1b 2) B-1 es la inversa de la matriz de coeficiente técnico de las variables básicas. 3) cBB-1A-c son los costos reducidos finales, que deben ser mayores o iguales a cero. 4) y = cBB-1 es el valor de las variables duales o precios sombra. 5) z es el valor de la función objetivo óptima = cBB-1b 206 apéndice y además: m w = yb = S yibi i=1 Dualidad Todo problema de pl tiene asociado otro problema que también es de pl, conocido como problema dual dual. El planteamiento de un modelo de pl para maximizar es el siguiente: Halle x1, x2, …, xn tal que: n M á x z = S cj xj j=1 s. a. n S aij xj ≤ bi j=1 x j ≤ 0 El cual se denomina problema primal. De las relaciones a, 3 y 4 del resumen anterior, se cumple: m w = y b = S yi bi j=1 cBB-1A-c ≥ 0 como y = cBB-1, entonces y A-c ≥ 0 → yA ≥ c Recordemos que el precio sombra yi para el recurso i mide el valor marginal de este recurso, es decir, la tasa a la que z puede aumentar si se incrementa en una unidad la cantidad que se proporciona de este recurso; y dado que w = z, w deberá ser el mínimo valor que asegure la factibilidad del primal; en consecuencia se desea que estos precios sombra sean mínimos cuando se quiere maximizar la utilidad. De aquí se define el problema de pl denominado dual del primal: Halle y 1 , y 2 , … , y m t a l que m Mín w = S yibi i=1 s. a. n S aij yi ≥ cj j=1 yi ≥ 0 207 Programación lineal Las expresiones matriciales son: Problema primalProblema dual Máx z = cxMín w = yb s. a.s. a. Ax ≤ byA ≥ c x ≥ 0y ≥ 0 Es importante observar que ambos problemas de pl tienen los mismos datos: los coeficientes tecnológicos, los costos y requerimientos. En el primal las variables son cantidades definidas en unidades específicas, en el dual las variables siempre son unidades monetarias. Mientras que el primal maximiza ganancias generadas por las actividades, el dual minimiza la suma de los precios de cada recurso; las restricciones del primal corresponde a cada recurso, las restricciones del primal corresponde a cada costo. Hay tantas restricciones en el dual como variables en el primal, y tantas variables en el dual como restricciones en el primal. El siguiente cuadro sintetiza el proceso de obtener el dual. Primal Dual Maximización Minimización j variables xj ≥ 0 xj ≤ 0 xj no restringida j restricciones j ésima restricción ≥ j ésima restricción ≤ j ésima restricción = i restricciones i ésima restricción ≤ i ésima restricción ≥ i ésima restricción = i variables yi ≥ 0 yi ≤ 0 yi no restringida Ejemplo A.3 Primal Máx z = 9x1 + 7x2 s.a x1 + 8x2 ≥ 5 x1 - 1x2 = -2 x1 ≤ 0x2 ≥ 0 208 apéndice Dual Mín w = 5y1 – 2y2 s. a y1 + y2 ≤ 9 8y1 – 1y2 ≥ 7 y1 ≤ 0 y2 no restringida. Teorema fundamental de dualidad En los problemas de pl, primal y dual, exactamente una de las siguientes proporciones es cierta: 1. Ambos problemas tienen solución óptima: x* y* con los valores óptimos: n m S cj xj = i=1 S bi yi es decir z = w j=1 2. Uno de lo problemas es no acotado, lo que implica que el otro no es factible. 3. Ambos problemas son no factibles. El siguiente cuadro presentan todas las posibles formas de dualidad. Todas las restricciones del primal son ≤ Primal Dual n n Máx z = S cj xj j=1 s. a. aij xj ≤ bi para i = 1, ..., m xj ≥ 0 n Máx z = S cj xj j=1 s. a. aij xj ≤ bi para i = 1, ..., m xj ≤ 0 S j=1 m m Mín w = S bi yi i=1 s. a. aij yi ≥ cj para j = 1, ..., n yi ≥ 0 m Mín w = S bi yi i=1 s. a. aij yi ≤ cj para j = 1, ..., n yi ≥ 0 S i=1 n S j=1 m S i=1 n n S j=1 m Máx z = S cj xj j=1 s. a. aij xj ≤ bi para i = 1, ..., m xj no restringida m S i=1 209 Mín w = S bi yi i=1 s. a. aij yi = cj para j = 1, ..., n yi ≥ 0 Programación lineal Todas las restricciones del primal son ≥ Primal Dual n n S j=1 m Máx z = S cj xj j=1 s. a. aij xj ≥ bi para i = 1, ..., m xj ≥ 0 m S i=1 n n Máx z = S cj xj j=1 s. a. aij xj ≥ b1 para i = 1, ..., m xj ≤ 0 n Máx z = S cj xj j=1 s. a. aij xj ≥ bi para i = 1, ..., m xj no restringida S j=1 m m Mín w = S bi yi i=1 s. a. aij yi ≤ cj para j = 1, ..., n yi ≤ 0 m Mín w = S bi yi i=1 s. a. aij yi = cj para j = 1, ..., n yi ≤ 0 S i=1 n S j=1 Mín w = S bi yi i=1 s. a. aij yi ≥ cj para j = 1, ..., n yi ≤ 0 m S i=1 Todas las restricciones del primal son = Primal Dual n n Máx z = S cj xj j=1 s. a. aij xj = b1 para i = 1, ..., m xj ≥ 0 n Máx z = S cj xj j=1 s. a. aij xj = b1 para i = 1, ..., m xj ≤ 0 n Máx z = S cj xj j=1 s. a. aij xj = bi para i = 1, ..., m xj no restringida S j=1 m m Mín w = S bi yi i=1 s. a. aij yi ≥ cj para j = 1, ..., n yi no restringida m Mín w = S bi yi i=1 s. a. aij yi ≤ cj para j = 1, ..., n yi no restringida m Mín w = S bi yi i=1 s. a. aij yi = cj para j = 1, ..., n yi no restringida S i=1 n S j=1 m S i=1 n S j=1 m S i=1 Ejemplo A.4 Considere el problema de los ejemplos A.1 y A.2 que se resolvieron con el método algebraico y con el Simplex respectivamente. 210 apéndice Máx z = 450x1 +500x2 + 435x3 s. a. 4x1 + 5x2 + 3 x3 ≤ 50 5x1 +10x2 + 5 x3 ≤ 65 xj ≥ 0 El dual asociado a este primal es: Mín w = 50 y1 + 65 y2 s. a. 4y1 + 5y2 ≥ 450 4y1 + 10y2 ≥ 500 3y1 + 5y2 ≥ 435 y1 ≥ 0y2 ≥ 0 Las soluciones óptimas se encuentran en el cuadro óptima. Variables básicas 3 variables originales x 1 x 2 x 3 2 variables de holgura h 1 h 2 Solución B -1b x1 1 -1 0 1 -3/5 11 x3 0 3 1 -1 4/5 2 z 0 335 0 15 7 8 5 820 z* = 5 820 = w* Variables primales: x1* =11, x 2* =2 Variables duales: y1* = 15, y 2* = 78 Ejemplo A.5 Considere los siguientes modelos de pl primal y su dual. Se verán sus soluciones con el método gráfico. PrimalDual Máx z = 10x1 + 5x2Mín w = 12y1 + 5y2 s. a.s. a. 3x1 + 2x2 ≤ 123y1 + y2 ≥ 10 x1 + x2 = 52y1 + y2 ≥ 5 x1 ≥ 0 x2 ≥ 0y1 ≥ 0 y2 no restringida 211 Programación lineal Máximización 15 10 Región factible x1 5 (0, 9) -2 -3 -1 0 (2, 3) (5, 0) 1 0 3 2 5 4 7 6 -5 x2 3x1 + 2x2 = 12 x1 + x2 = 5 Minimización 15 Región factible 10 5 x1 0 -5 0 1 2 3 4 5 6 (-5, 5) mínimo -10 -15 -20 -25 3y1 + y2 = 10 x2 2y1 + y2 = 5 212 7 8 9 10 apéndice Puntos vértice z = 10x1 + 5x2 Puntos vértice w = 12y1 + 5y2 (0, 5) 25 (0, 5) 25 (2, 3) 35 (5, -5) 35 Solución óptima: y1 = 5, y2 = -5, w = 35 Solución óptima: x1 = 2, x2 = 3, z = 35 Análisis de sensibilidad para modelos con más de dos variables Cuando se ha resuelto el modelo de más de dos variables con el algoritmo Simplex y por tanto se cuenta con el cuadro óptima, el análisis de sensibilidad se hace con los valores óptimos y sobre el cuadro. A continuación se verán tres casos de este análisis. Caso 1. Cambio total del lado derecho Considere un vector p de perturbación del lado derecho; es decir, El nuevo lado derecho es:b = b + p entonces la nueva solución será: = B-1 b Donde B-1 es la inversa de la base óptima. La nueva solución puede resultar factible o no. 1. Si ≥ 0, entonces la base no cambia y el valor de la función óptima será = c . 2. Si existe en la nueva solución alguna variable de decisión no factible, es decir: xj ≤ 0, deberá cambiar la base, lo cual se desarrolla con el método dual Simplex. Ejemplo A.6 Caso en el que la solución que resulta es factible. Considere el siguiente modelo de pl: Máx z = 27x1 + 25x2 + 18x3 + 26x4 s. a. 5x1 + 5x2 + 2x3 + 3x4 ≤ 12 4x1 + 3x2 + 4x3 + 3x4 ≤ 30 213 Programación lineal Con tabla Simplex óptima: Variable x1 x2 x3 x4 S1 S2 B -1b S1 11/3 4 2/3 0 1 -1/3 2 x4 4/3 1 4/3 1 0 1/3 10 z 23/3 1 50/3 0 0 26/3 260 Y la solución óptima es x1 = 0, x2 = 0, x3 = 0, x4 = 10, S1 = 2, S2 = 0, z = 260 Y la base óptima es B-1= 1 –⅓ 0 1/3 Si se suma el vector de perturbación p= 20 44 al lado derecho del modelo de pl, se tiene b = b + 20 = 12 + 20 = 32 4 4 30 4 4 34 = = = La nueva solución será = B-1 b = 1 –⅓ 32 = 20.667 0 –⅓ 34 11.333 = =c ≥ = [27 25 18 26] 11 0 11.3 0 = 294.66 110 11.333 Y la nueva solución óptima es: x1 = 0, x2 = 0, x3 = 0, x4 = 11.333, S1 = 20.667, S2 = 0, z = 294.66. La inversa de la base no cambia. Ejemplo A.7 Como ejemplo se encuentra el caso en el que la solución que resulta no es factible. Si se utiliza el vector de perturbación p = -10 en el problema anterior. – 10 214 apéndice El nuevo lado derecho es b = b + 20 = 12 + -10 =–2 4 4 30 – 10 40 = = = La nueva solución es = B-1 b = 1 -⅓ 2 = -34/3 0 –⅓ 40 – 40/3 = Que no es factible porque S1 = –11.32. Para mejorar esta solución es necesario cambiar la base mediante el método dual Simplex, como sigue: 1) Se calcula la nueva z: = [27 1 0 25 18 26] 1 0 = 346.667 1 0 40/3 2) Se introduce la solución obtenida en la tabla Simplex óptima: Variable x1 x2 x3 x4 S1 S2 B -1b S1 11/3 4 2/3 0 1 -1/3 -34/3 x4 4/3 1 4/3 1 0 1/3 40/3 z 23/3 1 50/3 0 0 26/3 346.667 Como no es factible, se mejora la solución: 3) La variable que sale de la base es S1. 4) La variable que entra a la base es aquella que Máx bi aij < 0, → -34/3 = 34; aij-1/3 es decir, S2 entra a la base. 5) Se efectúan las operaciones en los renglones de la tabla Simplex. 1 = -3 * R1 = R2 _ 1 * 3 2 = R3+ 26 * 3 3 1 1 215 Programación lineal Variable x1 x2 x3 x4 S1 S2 B -1b S1 -11 -12 -2 0 -3 1 34 x4 5 5 2 1 1 0 2 z 103 105 34 0 26 0 52 La nueva solución óptima es x1 = 0, x2 = 0, x3 = 0, x4 = 2, S1 = 0, S2 = 34, y z = 54. La inversa de la base cambia B-1= -3 1 –1 0 Para saber si una perturbación dará una solución factible se obtiene el intervalo de factibilidad para cada elemento del vector del lado derecho. Caso 2. Intervalo de factibilidad para cada elemento del lado derecho. Considere el modelo de pl: Máx z = 4x1 + 3x2 + 6x3 s. a. 3x1 + x2 + 3x3 ≤ 30 2x1 + 2x2 + 3x3≤ 40 x1 ≥ 0, x2 ≥0, x3 ≥ 0 Variable básica x1 x2 x3 S1 S2 Ld = B -1b x1 1 0 9/4 1/2 -1/4 5 x2 0 1 -3/4 -1/2 3/4 15 z 0 0 3/4 1/2 5/4 65 1. Intervalo de factibilidad para b1 = 30 Para obtener este intervalo se obtienen los intervalos para cada variable básica utilizando los valores en el cuadro de S1, porque es la variable de holgura de la primera restricción, donde b1 es el límite. Variable básica Ecuación Límite inferior Δ Límite superior Δ Intervalo x1 5+½Δ≥0 Δ ≥ -10 Δ<∞ -10 ≤ Δ < ∞ x2 15 – ½ Δ ≥ 0 Δ > -∞ Δ ≤ 30 -∞ < Δ ≤ 30 216 apéndice El intervalo es -10 ≤ Δ ≤ 30, lo que significa que b1 puede disminuir hasta 10 y aumentar hasta 30. Los nuevos valores de b1, , , y sin que cambie la base, son: -10 ≤ Δ ≤ 30 b1 + Δ con Δ = -10 con Δ = -10 con Δ = 30 con Δ = 30 30 – 10 a 30 + 30 x1 = 15 + ½ (-10) x2 = 15 – ½ (-10) x1 = 15 + ½ (30) x2 = 15 – ½ (30) z = 4x1 + 3x2 + 6x3(*) z = 4(0) + 3(20) z = 4x1 + 3x2 + 6x3(*) z = 4(20) + 3(0) 20 a 60 x1 = 20 x2 = 20 x1 = 20 x2 = 20 z = 60 z = 80 * x3 no está en la base y por tanto vale cero y no se toma en cuenta. Valor original Disminución máxima Aumento máximo b1 30 10 30 b2 40 20 20 2) Intervalo de factibilidad para b2 = 40 Con un procedimiento idéntico, pero ahora se toma la variable de holgura S2 que corresponde a las restricción, en donde b2 es su límite. Variable básica Ecuación Límite inferior Δ Límite superior Δ Intervalo x1 5 – 1/4 Δ ≥ 0 Δ > -∞ Δ ≤ 20 -∞ < Δ ≤ 20 x2 15 + 3/4 Δ ≥ 0 Δ ≥ -20 Δ<∞ -20 < Δ ≤ ∞ El intervalo de factibilidad es -20 ≤ Δ ≤ 20, lo que significa que b2 puede disminuir hasta 20 y aumentar hasta 20. Los nuevos valores de b2, , , y sin que cambie la base, son: -20 ≤ Δ ≤ 20 B2 + Δ con Δ = -20 con Δ = 20 con Δ = -20 con Δ = 20 40 – 20 a 40 + 20 x1 = 15 – 1/4 (-20) x2 = 15 + 3/4 (-20) x1 = 15 – 1/4 (20) x2 = 15 + 3/4 (20) z = 4x1 + 3x2 (*) z = 4(10) + 3(0) z = 4x1 + 3x2 (*) z = 4(0) + 3(30) 20 a 60 x1 = 10 x2 = 00 x1 = 00 x2 = 30 z = 40 z = 90 * x3 no está en la base y por tanto vale cero y no se toma en cuenta. Finalmente se resumen los intervalos para cada elemento del lado derecho. 217 Programación lineal Caso 3. Cambio máximo o mínimo en la utilidad o costo Para obtener el intervalo para el costo cj de xj básica, se resuelven las ecuaciones: ( – ) + aij d ≥ 0, y* + aij d ≥ 0 para todo ( – ) ≥ 0, y* ≥ 0 Ejemplo A.8 Considere el modelo de pl: Máx z = 4x1 + 3x2 + 6x3 s. a. 3x1 + x2 + 3x3 ≤ 30 2x1 + 2x2 + 3x3 ≤ 40 x1 ≥ 0, x2 ≥ 0, x3 ≥ 0 Variable básica x1 x2 x3 S1 S2 Ld = B -1b x1 1 0 9/4 1/2 -1/4 5 x2 0 1 -3/4 -1/2 3/4 15 z 0 0 3/4 1/2 5/4 65 Si se quiere obtener el intervalo para c1 = 4 z = (4+d)x1 + 3x2 + 6x3 Ecuación Límite inferior d Límite superior d Intervalo 3/4 + 9/4 d ≥ 0 d ≥ – 1/3 d<∞ -1/3 ≤ d < ∞ 1/2 + 1/2 d ≥ 0 d≥–1 d<∞ -1 ≤ d < ∞ 5/4 – 1/4 d ≥ 0 d≥–∞ d≤5 -∞ ≤ d ≤ 5 El intervalo de factibilidad es -1/3 ≤ d ≤ 5, lo que significa que c1 puede disminuir hasta -1/3 y aumentar hasta 5. Si d = -1/3 → z = (4 –1/3) x1 + 3x2 + 6x3 = 11/3 (5) + 3 (15) + 6 (0) = 190/3 = 63.333 O bien con la ecuación z = 65 + 5 d = 65 + 5 (-1/3) = 190/3 218 apéndice Si d = 5 → z = (4 +5)x1 + 3x2 + 6x3 = 9 (5) + 3 (15) + 6 (0) = 90 O bien con la ecuación z = 65 + 5 d = 65 + 5 (5) = 90 Variable básica x1 x2 x3 S1 S2 Ld = B -1b x1 1 0 9/4 1/2 -1/4 5 x2 0 1 -3/4 -1/2 3/4 15 z 0 0 3/4 1/2 5/4 65 Para obtener el intervalo para c2: z = 4x1 + (3 + d)x2 + 6x3 Ecuación Límite inferior d Límite superior d Intervalo 3/4 – 3/4 d ≥ 0 d>–∞ d≤1 -∞ < d ≤ 1 1/2 – 1/2 d ≥ 0 d>–∞ d≤1 -∞ < d ≤ 1 5/4 + 3/4 d ≥ 0 d ≥ – 5/3 d<∞ -5/3 ≤ d < ∞ El intervalo de factibilidad es -5/3 ≤ d ≤ 1, lo que significa que c2 puede disminuir hasta 5/3 y aumentar hasta 1. Si d = -5/3 → z = 4x1 + (3–5/3)x2 + 6x3 = 4 (5) + 4/3 (15) + 6 (0) = 40 O bien con la ecuación z = 65 + 15, d = 65 + 15 (-5/3) = 40 Si d = 1 → z = 4x1 + (3 + 1)x2 + 6x3 = 4 (5) + 4 (15) + 6 (0) = 80 O bien con la ecuación z = 65 + 15, d = 65 + 15 (1) = 80 Finalmente se resumen los intervalos para cada elemento del lado derecho: Valor original Disminución máxima Aumento máximo c1 4 -1/3 5 63.333 90 c2 3 5/3 1 40 80 219 Valores de z Programación lineal Resultado con Solver: Celda Nombre Valor igual Gradiente reducido Coeficiente objetivo Aumento permisible Aumento permisible $D$14 x1 5 0 4 5 0.333333333 $E$14 x2 15 0 3 1 1.666666667 $F$14 x3 0 -0.75 6 0.75 1E+30 220