Tema II: Programación Lineal Contenido: Solución algebraica a los problemas de programación lineal con el método simplex. Introducción El método simplex resuelve cualquier problema de PL con un conjunto finito de variables de decisión. De manera general el procedimiento consiste en escoger una solución factible y básica por un proceso iterativo, mejorarla en cada ciclo hasta obtener la solución óptima si existe. Problema de PL en forma estándar Se dice que un problema está en forma estándar cuando: a) Todas las variables son no negativas b) Todas las restricciones están presentadas como igualdades c) Los valores de la derecha de la ecuación son contantes positivos Para que una desigualdad de la forma ≤ (menor o igual) se convierta en una igualdad se le agrega en el lado izquierdo una variable Si llamada variable de holgura. Esta variable representa la cantidad de recurso ocioso o sobrante en la solución. Así mismo, una desigualdad de la forma ≥ (mayor o igual) se convierte en una igualdad restando en el lado izquierdo una variable Si llamada variable de excedente y sumando otra variable Ai llamada variable artificial. Si representa la cantidad en que se sobrepasa a la exigencia o a la norma mínima establecida. Ai no tiene significado económico, se agrega solamente para garantizar las condiciones de no negatividad. Si la restricción es una igualdad solo se agrega una variable artificial. Cambios en la función objetivo: Los coeficientes de las variables de holgura y excedente deben aparecer con coeficiente cero en la función objetivo. En el caso de las variables artificiales deben aparecer con coeficientes muy grandes representados con la letra “M”. Si el problema es de maximizar el coeficiente asignado es “-M” y si el problema es de minimizar el coeficiente será “+M”. Ejemplo: Consideremos el siguiente problema en el cual X1 y X2 son las unidades a fabricar de los productos A y B, respectivamente. Max Z = 50X1 + 70X2 + 40X3 Sujeto a 4X1 + 5X2 + 10X3 ≤ 1000 8X1 + 7X2 + 5X3 ≥ 500 2 X1 + 5X2 + 4X3 ≤ 300 X1 , X2 , X3 ≥ 0 El modelo estandarizado sería: Max Z = 50X1 + 70X2 + 40X3 + 0S1 – 0S2 – MA1 + 0S3 Sujeto a 4X1 + 5X2 + 10X3 + S1 ≤ 1000 8X1 + 7X2 + 5X3 – S2 + A1 ≥ 500 2X1 + 5X2 + 4X3 + S3 ≤ 300 X1 , X2 , X3 , S1 , S2 , S3 , A1 ≥ 0 Tabla inicial simplex Conceptos Básicos: a) Una solución básica factible (SBF) se obtiene si en el sistema de m ecuaciones con n variables (n ≥ m), se asigna arbitrariamente el valor de cero a n – m variables. b) Las n – m variables que toman el valor cero en el sistema son conocidas como variables no básicas (VNB) y las m variables restantes son llamadas variables básicas (VB) y estás pasan a formar parte de la base en la tabla inicial simplex. c) Al plantear la tabla inicial las variables básicas (VB) siempre serán las variables de holgura y/o las variables artificiales. Las variables no básicas serían las variables de decisión y de excedente. En el ejemplo anterior el número de variables en el modelo estandarizado es n = 7, y el número de ecuaciones es m= 3 El número de variables no básicas (VNB) sería n-m es decir 7- 3 = 4 Estas variables son:(X1, X2, X3, S2) El número de variables básicas (VB) sería m = 3, las cuales son: (S1, A1, S3) Tabla inicial Simplex Cj 50 70 40 0 0 -M 0 VB X1 X2 X3 S1 S2 A1 S3 bi 0 S1 4 5 10 1 0 0 0 1000 -M A2 8 7 5 0 -1 1 0 500 0 S3 2 5 4 0 0 0 1 300 Zj -8M -7M -5M 0 M -M 0 -500M Cj - Zj 50 + 8M 70 + 7M 40 + 5M 0 -M 0 0 En el primer renglón Cj se colocan todos los coeficientes de las variables que aparecen en la F.O. En el segundo renglón se colocan todas las variables que están en la F.O. En la primera columna Cj se ubican los coeficientes de las VB. En la segunda columna se ubican las variables básicas (VB) que en este caso serían: S1 (variable de holgura en la Ecuación 1) A2 (variable artificial en la Ecuación 2) S3 (variable de holgura en la Ecuación 3) El resto de variables se clasifican como variables no básicas (VNB), es decir que se les asigna el valor cero arbitrariamente. En la tercera columna se colocan los coeficientes de la variable X1 que le correspondan en cada ecuación, de igual manera se procede con el resto de variables hasta llegar a la última columna bi que se forma con los valores del lado derecho de cada ecuación. Los valores que aparecen en el renglón Zj se obtienen al sumar los productos de los coeficientes de la columna Cj con los coeficientes de cada variable en su columna correspondiente. Así para la columna X1 el valor de Z1 correspondiente se obtiene de la siguiente manera: Z1 = 0 (4) + (-M) (8) + 0 (2) Z1 = - 8M Z2 = 0 (5) + (-M) (7) + 0 (5) Z2 = - 7M Z3 = 0 (10) + (-M) (5) + 0 (4) Z3 = - 5M Z4 = 0 (1) + (-M) (0) + 0 (0) Z4 = 0 Z5 = 0 (0) + (-M) (-1) + 0 (0) Z5 = M Z6 = 0 (0) + (-M) (1) + 0 (0) Z6 = - M Z7 = 0 (4) + (-M) (0) + 0 (1) Z7 = 0 Z8 = 0 (1000) + (-M) (500) + 0 (300) Z8 = - 500M Los valores del renglón Cj – Zj se obtienen restando los valores del primer renglón Cj con los valores del renglón Zj En consecuencia se obtiene: C1 – Z1 = 50 – (- 8M) = 50 + 8M C2 – Z2 = 70 – (- 7M) = 70 + 7M C3 – Z3 = 40 – (- 5M) = 40 + 5M C4 – Z4 = 0 – 0 = 0 C5 – Z5 = 0 – (M) = - M C6 – Z6 = – M + 0 = - M C7 – Z7 = 0 - 0 = 0 Solución Básica Factible Inicial (SBFI) En la tabla simplex los valores ubicados en la columna bi corresponde al valor o solución de cada variable básica ubicada en la columna VB. En consecuencia la solución básica factible que se presenta en la tabla inicial simplex (SBFI) es la siguiente: X1 = 0 X2 = 0 X3 = 0 S1 = 1000 (VB) S2 = 0 (VNB) (Estas son VNB) S3 = 300 (VB) A1 = 500 (VB) Zoptimo = - 500 M Mejoramiento de la solución inicial Una tabla simplex es óptima si cumple que: 1) ∀ (𝐶𝑗 − 𝑍𝑗 ) ≤ 0 cuando el problema es de Maximizar 2) ∀ (𝐶𝑗 − 𝑍𝑗 ) ≥ 0 cuando el problema es de Minimizar La tabla inicial nunca es óptima y para mejorar la solución que presenta, una nueva variable debe entrar a la base (es decir de VNB pasar a VB) y otra variable debe salir de la base (es decir de VB pasar a VNB). En este proceso se aplican los siguientes criterios: 1) Criterio de optimalidad (para seleccionar la variable entrante) a) Si el problema es de maximizar, visualizar el mayor valor del renglón Cj - Zj y seleccionar la variable que corresponde a ese valor, al inicio de la columna (en el renglón VB). b) Si el problema es de minimizar, visualizar el menor valor del renglón Cj – Zj y seleccionar la variable correspondiente a ese valor al inicio de la columna (en el renglón VB). 2) Criterio de factibilidad (para seleccionar la variable saliente) Cuando ya se tiene seleccionada la variable entrante se efectúan los cocientes entre los valores de la columna bi y los valores de la columna correspondiente a la variable entrante Xj, seguidamente visualizar el menor cociente obtenido y seleccionar la variable básica en la columna VB correspondiente al menor cociente. No se deben considerar cocientes negativos, ni cocientes indefinidos (división entre cero). En el ejemplo dado, la F.O. es de maximizar por lo tanto: La variable entrante es X1, porque es la que corresponde al mayor valor en el renglón Cj – Zj (50 + 8M) La variable saliente se selecciona después de efectuar los cocientes (1000 / 4 = 250), (500 / 8 = 62.5), (300 / 2 =150). Luego la variable saliente será A2 porque es la que corresponde al menor cociente. Tabla inicial Simplex V.E. Cj 50 70 40 0 0 -M 0 VB X1 X2 X3 S1 S2 A1 S3 bi 0 S1 4 5 10 1 0 0 0 1000 ÷ 4 -M A2 8 7 5 0 -1 1 0 500 ÷ 8 0 S3 2 5 4 0 0 0 1 300 ÷ 2 Zj -8M -7M -5M 0 M -M 0 -500M Cj - Zj 50 + 8M 70 + 7M 40 + 5M 0 -M 0 0 Ejercicio: 1) Max Z = 250X1 + 200X2 s.a. X1 + 2X2 ≥ 12 - X1 + X2 ≤ 2 6X1 + 4X2 ≥ 48 X1, X2 ≥ 0 2) Min s.a. Z = 400X1 + 300X2 3X1 + 2X2 ≤ 330 2X1 + X2 ≥ 80 2X1 + 4X2 ≤ 240 X1, X2 ≥ 0 V.S.