2.2 PROGRAMACION LINEAL: METODOS DE SOLUCION 1. METODO GRAFICO 2. METODO SIMPLEX - ALGEBRAICO 3. METODO SIMPLEX - TABULAR 4. METODO SIMPLEX - MATRICIAL 1 2.2.1 METODO GRAFICO (modelos con 2 variables) 1. TRAZAR EN UN PLANO LAS RESTRICCIONES 2. IDENTIFICAR LA REGION FACTIBLE 3. TRAZAR LA DIRECCIóN DE MAX ASCENSO 4. IDENTIFICAR EL PUNTO OPTIMO NOTAS: - En modelos con 2 variables: - Una restricción de exacta igualdad se representa por una recta - Una restricción “mayor igual” ó “menor igual” divide el espacio de soluciones en dos semiplanos - La Región factible es el conjunto de puntos que satisfacen todas las restricciones - Los Vértices ocurren en la intersección de 2 ó mas restricciones - Los Vértices siempre estan localizados en la frontera de la region factible - Toda función lineal f(x1,x2,. . .) se puede expresar como el producto escalar del vector de coeficientes c = (c 1, c2, … ) y el vector de variables de decisión x = (x1, x2, … ). Es decir f(x1,x2) = c1x1 + c2x2 = c⋅ x - La dirección de max ascenso sobre la función objetivo f es la dirección del vector c - El punto óptimo es aquel en la región factible asociado con el vector que tiene la mayor proyección sobre el vector c. - De existir, una solucion óptima de un modelo de PL siempre ocurre en un vértice de la región factible. 2 METODO GRAFICO Ejemplo: Máx X1 + 2X2 sa. 4X1 + 2X2 ≤ 16 3X1 + 3X2 ≥ 18 X2 ≥ 3 X1, X2 ≥ 0 a) Determinar la solución óptima b) Deteminar las restricciones activas y las inactivas c) En el punto óptimo, determinar los valores de holgura y excedente para cada restricción d) Determinar las restricciones redundantes e) Determinar la solución óptima si la F.O. fuese Min f) Determinar la solución óptima si además la 2da restricción cambia a 3X1 + 6X2 ≥ 18 g) Determinar la solución óptima si además la 1ra restricción cambia a X1 + X2 ≤ 2 3 Modelo en forma estándar Máx X1 + 2X2 sa. 4X1 + 2X2 + S1 3X1 + 3X2 = 16 - S2 = 18 X2 - S3 =3 X1, X2 , S1, S2 ,S3 ≥ 0 § La solución básica de un sistema de ecuaciones lineales de n por m, si existe, es una solución en la que se forza a que (n-m) variables tomen valor igual a cero. § A las (n-m) variables forzadas a tomar valor igual a cero se les llama variables no básicas. § El valor de las variables restantes resulta de resolver el sistema de ecuaciones lineales. A estas variables se les llama variables básicas. § El máximo número de soluciones BASICAS es igual al número de parejas que se pueden formar con 5 variables: 5 2 Solución Básica No. X1 1 2 3 4 5 6 7 8 9 10 Variables S1 X2 0 0 0 0 = 5! = 10 2! (5 − 2)! Función objetivo Z S2 S3 0 No factible 0 0 0 0 0 0 0 0 0 0 0 No factible No factible No factible No factible 0 0 0 0 No factible No factible 4 2.2.2 ANÁLISIS POSTERIOR A LA RESOLUCIÓN Una vez resuelto un modelo de PL se debe distinguir entre: RESTRICCIONES ACTIVAS Son aquellas que se cumplen con exacta igualdad en la solución óptima RESTRICCIONES INACTIVAS Son aquellas que tiene holgura o excedente Las restricciones activas son las que impiden el obtener una solución mejor que la solución óptima ya encontrada RESTRICCIONES REDUNDANTES Son aquellas que de no estar presentes en el modelo, no modificarían la región factible ni la solución óptima. 5 MÉTODO GRÁFICO con 3 variables X3 5 3 1 2 X1 4 X2 6 2.2.3 CASOS ESPECIALES 1. MULTIPLES OPTIMOS (óptimos alternos) Una restricción es paralela a la función objetivo Máx -3X1 + 6X2 sa. 5X1 + 7X2 ≤ 35 -X1 + 2X2 ≤ 2 X1, X2 ≥ 0 2. SOLUCION OPTIMA ILIMITADA (no acotada) La región factible se extiende sin límites en alguna dirección Máx 2X1 + X2 sa. X1 - X2 2X1 - X2 ≤ 10 ≤ 40 X1, X2 ≥ 0 (y si la función objetivo fuese Máx 2X1 - 1.5 X2 ? ) 3. NO EXISTE SOLUCION (inconsistencia) No existe región factible Máx 3X1 + 2X2 sa. 2X1 + X2 ≤ 2 3X1 + 4X2 ≥ 12 X1, X2 ≥ 0 7 2.2.4 ANÁLISIS GRÁFICO Sea la restricción : a1 x1 + a2 x2 ≤ b que se puede escribir como: x2 ≤ b a - 1 x1 a2 a2 y graficar como: X2 b a2 b a1 X1 Del gráfico se puede concluir que: 1. Si únicamente cambia el valor de b la recta se mueve paralelamente 2. Si sólo cambia el valor a2 la recta rota girando alrededor de b a1 b 3. Si sólo cambia el valor a1 la recta rota girando alrededor de a2 8 EJERCICIO Considere el siguiente modelo de PL: Máx Z = 600 X1 + 1000 X2 s.a. 100 X1 + 60 X2 ≤ 21,000 4000 X1 + 800 X2 ≤ 680,000 X1 + X2 ≤ 290 12 X1 + 30 X2 ≤ 6,000 X1 , X2 ≥ 0 a) Determine la solución óptima b) Determine las restricciones activas, inactivas y redundantes. c) Cuál es el cambio mínimo del lado derecho de cada restricción redundante que la convierte en restricción activa ? d) El coeficiente de X1 en la tercera restricción es igual a uno. Cual es el cambio mínimo de este coeficiente que la convertiría en activa ? e) Suponga que el coeficiente de X1 en la función objetivo cambiase mientras que el coeficiente de X2 permanece inalterable. Cual es el cambio mínimo del coeficiente de X1 que ocasiona que existan multiples optimos en la solución ? 9 2.2.5 FORMA ESTANDARD (Se usa para resolver un modelo por medio del algoritmo Simplex) - Todas las variables son NO negativas - Los elementos del lado derecho de cada restricción son No negativos Si el lado derecho es negativo debe multiplicarse toda la restricción por (-1) invirtiendo el sentido de la desigualdad - Todas las restricciones se convierten a ecuaciones, agregando variables de holgura ó de excedente (excepto las restricciones de No negatividad) Si la restricción es del tipo ≤ se debe sumar una variable de holgura al lado izquierdo de la restricción Si la restricción es del tipo ≥ se debe restar una variable de excedente al lado izquierdo de la restricción EJEMPLO Modelo Original Modelo en Forma Estándar Min Z = 5x1 + 2x2 - x3 sujeto a -x1 + x2 - x3 ≤ 16 2x1 - 2x3 ≥ 30 x1 + 2x2 ≥ -8 8 Min Z = 5x1 - 2x2 - x3 + 0s 1 + 0 s2 + 0s 3 sujeto a -x1 - x2 - x3 + s1 = 16 2x1 - 2x3 -s 2 = 30 -x1 + 2x2 +s3 = x1 , x3 ≥ 0 x2 ≤ 0 x1 , x2 , x3 , s1 , s 2, s3 ≥ 0 El convertir el modelo a forma estándar aumenta el número de variables, manteniendo el número de restricciones. 10 EJEMPLO Máx Z = 18.5x1 + 20 x2 sujeto a 0.05x1 + 0.05 x2 ≤ 1100 0.05x1 + 0.10 x2 ≤ 1800 0.10x1 + 0.05 x2 ≤ 2000 x1 , x2 ≥ 0 este modelo tiene n = 2 variables de decisión y m = 3 restricciones (sin considerar las de no negatividad) Este modelo convertido a forma estándar es: Máx Z = 18.5x1 + 20x2 + 0s 1 + 0s 2 + 0s 3 sujeto a 0.05x1 + 0.05 x2 + s1 0.05x1 + 0.10 x2 +s2 0.10x1 + 0.05 x2 x1 , x2 , s 1 , s 2 , ahora el modelo tiene y = 1100 = 1800 +s3 = 2000 s3 ≥ 0 n = 5 variables m = 3 restricciones Forma matricial de las restricciones del modelo en forma estándar: 0.05 0.05 1 0.05 0.10 0 0.10 0.05 0 0 1 0 0 0 1 3x5 X1 X2 S1 S2 S3 = 1100 1800 2000 3x1 5x1 11 Al expresar un modelo en forma estándar se convierte el conjunto de restricciones de un modelo de programación lineal a un sistema de ecuaciones lineales simultáneas. Si denotamos por n el número de variables en el modelo en forma estándar y por m el número de restricciones, decimos que el modelo en forma estándar es de dimensiones n por m. Esto porque el modelo incluye m ecuaciones lineales simultaneas en n variables. Un sistema de ecuaciones lineales simultaneas de m por n puede tener solución o no. En general puede ocurrir uno de tres situaciones. Que el sistema 1. Tenga una solución única 2. Tenga infinitas soluciones 3. No tenga solución Si el sistema no tiene solución se dice que es un sistema inconsistente. En un modelo de programacion lineal en forma estándar siempre se cumple que m < n. Y salvo casos excepcionales, supondremos que el sistema de ecuaciones del modelo tendrá infinitas soluciones. Cada una de éstas corresponde a un punto de la región factible. DEFINICION Se denomina punto extremo de la región factible a aquel punto que no puede expresarse como una combinación lineal convexa de otros puntos en esta región. En términos sencillos un punto extremo se representa como un vértice de la región factible PROPOSICION La solución óptima de un modelo de programación lineal, si existe y no es ilimitada, siempre corresponde a un punto extremo de la región factible. Esta proposición es muy importante. Con base en ella, basta solo con tener un método que evalúe la función objetivo de un modelo de programacion lineal en los puntos extremos de la región factible. DEFINICION La solución básica de un sistema de ecuaciones lineales de n por m, si existe, es una solución en la que se forza a que (n-m) variables tomen valor igual a cero. A las (n-m) variables forzadas a tomar valor igual a cero se les llama variables no básicas. El valor de las variables restantes resulta de resolver el sistema de ecuaciones lineales. A estas variables se les llama variables básicas. 12 DEFINICION La solución básica de un sistema de ecuaciones lineales de n por m existe si al eliminar (n-m) variables el sistema resultante de m por m es consistente. Esta definición indica que al forzar a que (n-m) variables tomen valor igual a cero puede ocurrir que las m ecuaciones lineales resulten en un sistema sin solución (inconsistente). Por ejemplo en el siguiente sistema 2x1 + 4 x2 + 3x3 = 8 3x1 + 6 x2 + 3x3 = 17 si se consideran variable no basica a la variable x3 entonces el sistema resultante mostrado no tiene solución. 2x1 + 4 x2 = 8 3x1 + 6 x2 = 17 DEFINICION La solución básica de un sistema de ecuaciones lineales de n por m se dice factible (y se denota por SBF) si todas las variables toman valor no negativo. En nuestro ejemplo: n-m = 5 - 3 = 2 variables S2 = 0 S3 = 0 ⇒ Si: X2 = 0 S3 = 0 ⇒ X1 = 14,666.66 X2 = 10,666.66 S1 = - 166.66 Esta es una Solucion BASICA No Factible X1 = 20,000 S2 = 800 S1 = 100 Esta es una Solución BASICA Factible Se llama BASE al conjunto de VARIABLES BASICAS. PROPOSICION Cada SBF de un modelo de programación lineal corresponde a un punto extremo de su región factible. Por tanto la solución optima de un modelo de programación lineal, si existe y no es ilimitada, correponde a una solución básica factible. En otras palabras, cada SOLUCION BASICA FACTIBLE representa un vértice de la región factible. 13 En el ejemplo, el máximo número de soluciones BASICAS es igual al número de parejas que se pueden formar con 5 variables: 5 2 = 5! = 10 2! (5 − 2)! En general, el máximo número de soluciones BASICAS es igual al número de conjuntos de m elementos, que se pueden formar con n variables, es decir n m = n! m!(n − m)! 14 SOLUCIONES BÁSICAS Solución Variables No. X1 X2 S1 1 0 0 1,100 2 0 22,000 0 3 0 18,000 200 4 0 40,000 -900 5 36,000 0 -700 6 20,000 0 100 7 22,000 0 0 8 8,000 14,000 0 9 18,000 4,000 0 10 14,666.6 10,666.6 -166.61 S2 Función objetivo Z $0 No factible $360,000 No factible No factible $370,000 No factible $428,000 $413,000 No factible S3 1,800 -400 0 -2,200 0 800 900 0 500 0 2,000 900 1,100 0 -1,600 0 -200 500 0 0 X2 4 Máx Z = 18.5x1 + 20 x2 sa. 0.05x1 + 0.05 x2 ≤ 1100 0.05x1 + 0.10 x2 ≤ 1800 0.10x1 + 0.05 x2 ≤ 2000 40 x1 , x2 ≥ 0 30 2 20 8 3 10 10 Región Factible 9 X1 1 6 10 7 20 5 30 15 EJEMPLO Considere el siguiente modelo de PL Máx Z= 5x1 -6x2 +3x3 -5x4 +12x5 sujeto a x1 + 3x2 + 5x3 +6x4 +3x5 ≤ 90 x1 , x2 , x3 , x4 , x5 ≥ 0 a) Cuántas varibales básicas tiene ? b) Cuántas soluciones básicas existen ? c) Cuáles son las soluciones básicas? d) Cuál es la solución óptima ? 16 Modelo en Forma Estándar Máx Z= 5x1 -6x2 +3x3 -5x4 +12x5 + 0 s sujeto a x1 , x2 , x3 , x4 , x5 , s ≥ 0 x1 + 3x2 + 5x3 +6x4 +3x5 + s = 90 a) Cuántas variables básicas tiene ? b) Cuántas soluciones básicas existen ? básicas m = 1 variable básica Cmn = C16 = 6 soluciones c) Cuáles son las soluciones básicas ? Sol.Bas 1 2 3 4 5 6 X1 90 0 0 0 0 0 X2 0 30 0 0 0 0 X3 0 0 16 0 0 0 X4 0 0 0 15 0 0 X5 0 0 0 0 30 0 S 0 0 0 0 0 90 Z 450 -180 90 -75 360 0 17 2.2.6 METODO SIMPLEX (George Dantzig, 1947) Existen varias formas de resolver un modelo de programación lineal. El metodo mas comunmente usado es el metodo simplex. Este metodo encuentra la solución óptima de un modelo de PL, evaluando la función objetivo, en cada vértice de la región factible. METODOLOGIA Nótese que en modelos de dos variables en cualquier intersección de dos restricciones, hay dos variables que toman valor igual a cero. Por tanto para conocer el valor de las otras variables se debe resolver el sistema de m restricciones con m variables. Una manera sencilla de encontrar una SOLUCION BASICA FACTIBLE es identificar una matriz identidad en las restricciones del modelo escrito en forma estándar. Las variables asociadas con esta matriz identidad son las VARIABLES BASICAS X1 X2 S1 S2 0.05 0.05 1 0.05 0.10 0 0.10 0.05 0 0 1 0 S3 0 0 1 3x5 X1 X2 S1 S2 S3 = 1100 1800 2000 3x1 5x1 En cada paso del algoritmo se resuelven simultáneamente las m ecuaciones que conforman un vértice para identificarlo. Se verifica si el vértice es el óptimo, si no lo es, se pasa a otro vértice adyacente. El algoritmo asegura que en el siguiente vértice, la funcion objetivo no tendrá un valor peor que en el vértice anterior 18 2.2.6.1 METODO SIMPLEX -ALGEBRAICO PROCEDIMIENTO 1. Encontrar una Solucion Basica Factible inicial Expresando el modelo en forma estándar identificando las columnas de una matriz identidad de m x m. 2. Expresar las variables basicas y la funcion objetivo en funcion de las variables No basicas 3. Verificar Optimalidad La solución es óptima si: La función objetivo no puede mejorar de valor al incrementar el valor de cualquiera de las Variables No Basicas 4. Identificar Nuevas variables básica y No básica Nueva VB : la VNB que mejora más la función objetivo. Nueva VNB: la VB que se hace igual a 0 al tomar la nueva VB el máximo valor posible. 5. Regresar al paso 2. 19 EJEMPLO En forma original: Máx Z = sujeto a: En Forma estándar: 10x1 + 14x2 Máx Z = sujeto a: 4x1 + 6x2 ≤ 24 2x1 + 6x2 ≤ 20 x1 , x2 ≥ 0 10x1 + 14x2 + 0s 1 + 0s 2 4x1 + 6x2 + 1s 1 + 0s 2 = 24 2x1 + 6x2 + 0s 1 + 1s 2 = 20 x1 , x2 , s1 , s2 ≥ 0 Inicio: Base (VB’s) s 1 = 24 s 2 = 20 VNB’s x1 = 0 x2 = 0 Z=0 Expresar VB’s y Z en función de VNB (del modelo en forma estándar ) S1 = 24 - 4x1 - 6x2 S2 = 20 - 2x1 - 6x2 Z = 0 + 10x1 + 14x2 (1) No estamos sobre el vértice óptimo ! Variable que entra a la base es x2 Variable que sale de la base es: S1 = 24 - 6x2 ≥ 0 S2 = 20 - 6x2 ≥ 0 3. 33 x2 ≤ 4 x2 ≤ 3.33 x2 entra a la base con valor x2 = ( s2 = 0 es la variable que sale ) 20 1ra iteración: Base (VB’s) s1 = 4 x2 = 3.33 VNB’s x1 = 0 s2 = 0 Z = 46.66 Expresar VB’s y Z en función de VNB (comenzar de (1) ) X2 = (20 - 2x1 - s 2 ) / 6 S1 = 24 - 4x1 - 6 (1/6 (20 - 2x1 - s 2 )) Z = 0 + 10 x1 + 14 (1/6 (20 - 2x1 - s 2 )) = 3.33 - 0.33x1 - 0.166s 2 = 4 2x1 + s2 = 46.6 + 5.33 x1 - 2.33 s2 No estamos sobre el vértice óptimo ! Variable que entra a la base es x1 Variable que sale de la base es: X2 = 3.33 - 0.33x1 ≥ 0 S1 = 4 - 2x1 ≥ 0 X1 ≤ 10 X1 ≤ 2 x1 entra a la base con valor x1 = 2 ( s1 = 0 es la variable que sale ) 21 2da iteración: Base (VB’s) x1 = 2 x2 = 2.66 VNB’s s1 = 0 s2 = 0 Z = 57.33 Expresar VB’s y Z en función de VNB X1 = (4 + s2 - s 1 ) / 2 = 2 + 0.50s 2 - 0.5s 1 X2 = 3.33 - 0.33 ( 2 +.50s 2 - 0.5s 1 )-0.16s 2 = 2.66 - 0.33s 2 + 0.16s 1 Z = 46.66 + 5.33 (2 +0.50s 2 - 0.5s 1) -2.33s 2 = 57.3 + 0.33s2 - 2.66 s1 No estamos sobre el vértice óptimo ! Variable que entra a la base es s 2 Variable que sale de la base: X1 = 2 + 0.50s 2 ≥ 0 X2 = 2.66 - 0.33s 2 ≥ 0 s2 ≥ - 4 s2 ≤ 8 s 2 entra a la base con valor s 2 = 8 ( X2 = 0 es la variable que sale ) 3ra iteración: Base (VB’s) x1 = 6 s2 = 8 VNB’s s1 = 0 x2 = 0 Z = 60 Expresar VB’s y Z en función de VNB S2 = (2.66 - x2 + 0.166s 1 ) / 0.33 = 8 - 3x2 + 0.50 s1 X1 = 2 + 0.50 (8 - 3x2 + 0.5s 1 ) - 0.5s 1 = 6 - 1.5x2 - 0.25 s 1 Z = 57.33 + 0.33 (8 - 3x2 + 0.5s 1) - 2.66s 1 = 60 x2 - 2.50 s1 estamos sobre el vértice óptimo! 22 2.2.6.1 METODO SIMPLEX - MATRICIAL El método simplex matricial se puede aplicar siguiendo los siguientes pasos 1. Encontrar una Solucion Basica Factible inicial Expresando el modelo en forma estándar identificando las columnas de una matriz identidad de m x m. (esto define a XB, CB y B) 2. Calcular B-1 , B-1b y B-1N 3. Expresar XB y Z en función de las variables no básicas. XB = B-1b - B-1N XN Z = CBT B-1 b + [C NT - CBT B-1 N ] XN 4. Verificar la condición de optimalidad ([CNT - CBT B-1N ] ≤ 0 para max Z) 5. Si la condición de optimalidad no se cumple se debe seleccionar § la nueva variable básica NVB (aquella con el mejor valor en [CNT - CBT B-1N] § la nueva variable no básica (la que toma valor cero cuando la NVB toma el max valor posible) 23 2.2.6.2 METODO SIMPLEX -TABULAR PROCEDIMIENTO 1. Encontrar una Solucion Basica Factible inicial Convirtiendo las m restricciones en igualdades e identificando las columnas de una matriz identidad de m x m. 2. Construir la Tabla Inicial y verificar Optimalidad (ver paso 5) 3. Identificar Nuevas Variable Básica (NVB) y Nueva variable No Básica NVB : máx valor positivo de Cj - Zj (maximizacion) NVNB: dividir bj entre los coeficientes positivos de la columna de NVB. La NVNB se encuentra en el renglón que tiene el menor cociente. 4. Actualizar la Tabla - Identificar elemento Pivote - Nuevos valores en el renglón de NVB se obtienen al dividir el renglón que sale entre el pivote - Otros renglones se obtienen por: Nuevo renglon = Renglon anterior [elemento en columna del pivote] x renglon de NVB - Calcular Zj como la suma de productos de CB por las tasas de sustitucion 5. Verificar Optimalidad (maximización) La base es óptima si todos los valores de Cj - Zj son cero o negativos. 6. Volver al paso 3 24 TABLA INICIAL En Forma estándar: Máx Z = sujeto a: 10x1 + 14x2 Máx Z = sujeto a: 4x1 + 6x2 ≤ 24 2x1 + 6x2 ≤ 20 x1 , x2 ≥ 0 CB 0 0 CB 0 0 CB 0 0 Cj base S1 S2 Zj Cj - Zj Cj base S1 S2 Zj Cj - Zj Cj base S1 S2 Zj Cj - Zj 10x1 + 14x2 + 0s1 + 0s2 4x1 + 6x2 + 1s1 + 0s2 = 24 2x1 + 6x2 + 0s1 + 1s2 = 20 x1 , x2 , s1 , s2 ≥ 0 10 X1 4 2 14 X2 6 6 0 S1 1 0 0 S2 0 1 bj 24 20 0 10 X1 4 2 0 10 14 X2 6 6 0 14 0 S1 1 0 0 0 0 S2 0 1 0 0 bj 24 20 0 10 X1 4 2 0 10 14 X2 6 6 0 14 0 S1 1 0 0 0 0 S2 0 1 0 0 bj 24 20 pivote 4 3.33 cocientes la tabla no es óptima! x2 entra a la base con valor x2 = 3. 33 ( s2 = 0 es la variable que sale ) 25 1ra iteración: CB 0 14 Cj base S1 X2 Zj Cj - Zj bj 10 X1 3.33 0.33 14 X2 0 S1 0 S2 1 0 0.166 se divide el renglón del pivote entre él CB 0 14 Cj base S1 X2 Zj Cj - Zj 10 bj X1 4 2 3.33 0.33 14 X2 0 1 0 S1 1 0 0 S2 -1 0.166 renglon anterior 24 4 6 1 0 - valor asociado -6 (3.33 0.33 1 0 0.166) al pivote por el renglón actualizado del pivote CB 0 14 Cj base S1 X2 Zj Cj - Zj 10 bj X1 4 2 3.33 0.33 46.66 4.66 5.33 14 X2 0 1 14 0 pivote x1 entra a la base con valor x2 = 2 0 S1 1 0 0 0 0 S2 -1 0.166 2.33 -2.33 2 10 cocientes ( s1 = 0 es la variable que sale ) 26 2da iteración: CB 10 14 Cj base X1 X2 Zj Cj - Zj bj 2 10 X1 1 14 X2 0 0 S1 0.5 0 S2 -0.5 se divide el renglon del pivote entre él CB 10 14 Cj base X1 X2 Zj Cj - Zj 10 bj X1 2 1 2.66 0 renglon anterior 3.33 0.33 - valor asociado -.33( 2 1 al pivote x renglón actualizado del pivote CB 10 14 Cj base X1 X2 Zj Cj - Zj 10 bj X1 2 1 2.66 0 57.24 10 0 S2 entra a la base con valor S2 = 8 14 X2 0 1 0 S1 0.5 -.166 0 S2 -0.5 0.33 1 0 0 0.5 0.166 -0.5 ) 14 X2 0 1 14 0 0 S1 0.5 -.166 2.66 -2.66 0 S2 -0.5 0.33 -.33 0.33 pivote (X2 = 0 es la variable que sale ) 27 3ra iteración: CB 10 0 Cj base X1 S2 Zj Cj - Zj bj 10 X1 14 X2 0 S1 0 S2 8 0 3 -0.5 1 se divide el renglon del pivote entre él CB 10 0 Cj base X1 S2 Zj Cj - Zj bj 6 8 renglon anterior 2 - valor asociado +.5(8 al pivote x CB 10 0 Cj base X1 S2 Zj Cj - Zj bj 6 8 60 10 X1 1 0 1 0 10 X1 1 0 10 0 14 X2 1.5 3 0 S1 0.25 -0.5 0 0.5 3 -0.5 renglón actualizado del pivote 14 X2 1.5 3 15 -1 0 S1 0.25 -0.5 2.5 -2.5 0 S2 0 1 -0.5 1 ) 0 S2 0 1 0 0 Esta tabla es la óptima ! 28 2.2.6.2 METODO SIMPLEX -TABULAR SIMPLIFICADO Para simplificar el procedimiento anterior se va a trabajar con una tabla más sencilla en la que en cada renglón se representa a las variables básicas y en cada columna se representa a las variables no básicas. En esta tabla las celdas sombreadas no se utilizan durante el procedimiento. CB BASE bj XB Valor de las variables básicas CN XN tasas de sustitución ZJ CJ - ZJ Donde: XB = conjunto de nombres de las variables básicas XN = conjunto de nombres de las variables no básicas CB = vector de coeficientes de las variables básicas en la función objetivo CN = vector de coeficientes de las variables no básicas en la función objetivo bj = valor de las variables básicas El renglón marcado como Zj resulta de multiplicar cada valor en la columna CB por cada valor de la columna bj y por cada valor de la columna XN. El renglón marcado como Cj – Zj resulta de restar cada valor en el renglon Zj de cada valor en el renglón CN. En cada iteración del procedimiento, una variable que reemplaza a otra ocupa el lugar que ésta tenía. 29 30 PROCEDIMIENTO 1. Encontrar una Solucion Basica Factible inicial Convirtiendo las m restricciones en igualdades e identificando las columnas de una matriz identidad de m x m. 2. Construir la Tabla Inicial y verificar Optimalidad (ver paso 5) 3. Identificar Nueva Variable Básica (NVB) y Nueva Variable No Básica (NVNB) NVB : aquella con el mayor valor positivo de Cj - Zj aquella con el mayor valor negativo de Cj - Zj (maximizacion) ó (minimizacion) NVNB: obtener cocientes al dividir bj entre los coeficientes positivos de la columna de NVB. La NVNB es aquella ubicada en el renglón con el menor cociente. 4. Actualizar la Tabla - Reemplazar el nombre de la columna de la NVB por el nombre de la NVNB - Identificar elemento Pivote - Invertir el valor númerico del Pivote - El renglón actualizado de NVB se obtiene al dividirlo entre el pivote - La columna actualizada de NVNB se obtiene al dividirla entre (-pivote) - Otros renglones se obtienen por: Nuevo renglon = Renglon anterior [elemento en columna del pivote] x renglon de NVB - Calcular Zj como la suma de productos de CB por cada una de las columnas de la tabla. 5. Verificar Optimalidad Si el modelo es de maximización: La base es óptima si todos los valores de Cj - Zj son cero o negativos. Si el modelo es de minimización: La base es óptima si todos los valores de Cj - Zj son cero o positivos. 31 6. Volver al paso 3 32 EJEMPLO En Forma estándar: Máx Z = sujeto a: 10x1 + 14x2 Máx Z = sujeto a: 4x1 + 6x2 ≤ 24 2x1 + 6x2 ≤ 20 x1 , x2 ≥ 0 CB 0 0 CB 0 0 CB 0 0 Cj base S1 S2 Zj Cj - Zj Cj base S1 S2 Zj Cj - Zj Cj base S1 S2 Zj Cj - Zj + 0s1 + 0s2 4x1 + 6x2 + 1s1 + 0s2 = 24 2x1 + 6x2 + 0s1 + 1s2 = 20 x1 , x2 , s1 , s2 ≥ 0 10 X1 4 2 14 X2 6 6 bj 24 20 0 10 X1 4 2 0 10 14 X2 6 6 0 14 bj 24 20 0 10 X1 4 2 0 10 14 X2 6 6 0 14 bj 24 20 10x1 + 14x2 4 3.33 pivote cocientes la tabla no es óptima! x2 entra a la base con valor x2 = 3. 33 ( s2 = 0 es la variable que sale ) 33 1ra iteración: Primero se divide el renglon del pivote entre él CB 0 14 CB 0 14 Cj base S1 X2 Zj Cj - Zj Cj base S1 X2 Zj Cj - Zj bj 10 X1 0 S2 3.33 0.33 0.166 10 bj X1 4 2 3.33 0.33 0 S2 -1 0.166 renglon anterior 24 4 - valor asociado -6 (3.33 0.33 ) al pivote por el renglón actualizado del pivote CB 0 14 Cj base S1 X2 Zj Cj - Zj 10 bj X1 4 2 3.33 0.33 46.66 4.66 5.33 0 S2 -1 0.166 2.33 -2.33 pivote x1 entra a la base con valor x2 = 2 2 10 cocientes ( s1 = 0 es la variable que sale ) 34 2da iteración: Primero se divide el renglon del pivote entre él CB 10 14 CB 10 14 Cj base X1 X2 Zj Cj - Zj Cj base X1 X2 Zj Cj - Zj bj 2 0 S1 0.5 0 S2 -0.5 bj 2 2.66 0 S1 0.5 -.166 0 S2 -0.5 0.33 renglon anterior 3.33 0.166 - valor asociado -.33( 2 -0.5 ) al pivote x renglón actualizado del pivote CB 10 14 Cj base X1 X2 Zj Cj - Zj bj 2 2.66 57.24 0 S1 0.5 -.166 2.66 -2.66 S2 entra a la base con valor S2 = 8 0 S2 -0.5 0.33 -.33 0.33 pivote (X2 = 0 es la variable que sale ) 35 3ra iteración: Primero se divide el renglon del pivote entre él CB 10 0 CB 10 0 Cj base X1 S2 Zj Cj - Zj Cj base X1 S2 Zj Cj - Zj bj 0 S1 14 X2 8 -0.5 3 bj 6 8 0 S1 0.25 -0.5 14 X2 1.5 3 renglon anterior 2 0.5 - valor asociado +.5 (8 -0.5 ) al pivote x renglón actualizado del pivote CB 10 0 Cj base X1 S2 Zj Cj - Zj bj 6 8 60 0 S1 0.25 -0.5 2.5 -2.5 14 X2 1.5 3 15 -1 Esta tabla es la óptima ! 36 Ahora comparemos esta tabla óptima ya encontrada, con la solución del método SIMPLEX con matrices. Sean las variables básicas X1 y S2 entonces XB = [X1 S2] XN = [S 1 X2] CBT = [10 0] CNT = [0 14] B = [4 [2 N = [1 [0 0] 1] 6] 6] Determinamos B-1, B-1N y B-1b, ¦ B¦ B-1 = = 4(1) – 0 (2) = 4 [¼ [-½ 0] 1] B-1N = [¼ [-½ 0] [1 6] = [ ¼ 3/2 ] 1] [0 6] [ -½ 3 ] B-1b = [¼ [-½ 0] [24] 1] [20] = [6] [8] Y expresamos XB y Z en función de XN XB = [X1] = [S2 ] [6] - [ ¼ [8] [-½ 3 /2] [S1 ] = [ 6 - ¼S 1 - 3/2 X2 ] 3 ] [X2] [ 8 + ½S 1 – 3X2 ] 37 Por tanto si comparamos ambas soluciones óptimas encontramos lo siguiente CB BASE bj C NT XNT XB B-1b B-1N ZJ CBT B1 b CBT B-1N CNT - CBT B-1N CJ - ZJ Y ya sea de la tabla o de las operaciones matriciales podemos obtener XB = B-1b Z = CNT - CBT B-1N – B-1N es decir X1 = 6 - ¼ S1 – 3/2 X2 S2 = 8 + ½ S1 – 3 X2 Z = 60 – 5/2 S1 – X2 Estas son expresiones de las variables básicas y de la variable de resultado en función de las variables no básicas. Los coeficientes de las variables no básicas en estas expresiones corresponden a los coeficientes de la matriz B-1N y se les llama tasas de sustitución porque representan las tasas a las que una variable aumenta o disminuye cuando una variable no básica la reemplaza. Por ejemplo si X2 toma valor unitario la variable X1 debe reducir su valor en 1.5 unidades. 38 La condición de optimalidad para un modelo de PL del tipo maximizar, establece que si los coeficientes de [CNT - CBT B-1N ] son todos negativos, como por ejemplo en Z = 60 – 5/2 S1 – X2 entonces el aumentar de valor a una variable básica no mejorará el valor de la variable de resultado Z y por tanto la última solución básica encontrada es la óptima. Qué establecen las ecuaciones ? Supongamos que la variable no básica X2 incrementase su valor de 0 a 1. Entonces ocurrirían simultáneamente los siguiente § § § § La var. de respuesta Z aumentaría en 4 unidades (ya que Z = 10X1 + 14X2 ) La var. X1 disminuiría en 1.5 unidades La var. S2 disminuiría en 3 unidades La var. de respuesta Z disminuiría en 1.5(10) = 15 unidades El efecto neto en Z resultaría 14 – 15 = -1. El método simplex matricial se puede aplicar siguiendo los siguientes pasos 6. Seleccionar un conjunto de variables básicas (la base). Esto define a XB. 7. Especificar las matrices CBT , CNT , B y N 8. Calcular B-1 , B-1b y B-1N 9. Expresar XB y Z en función de las variables no básicas. 10. Verificar la condición de optimalidad ( [CNT - CBT B-1N ] = 0 para max Z) 11. Si la condición de optimalidad no se cumple se debe seleccionar § la nueva variable básica NVB (aquella con el mejor valor en § la nueva variable no básica (aquella que toma el valor cero cuando la NVB toma el CNT - CBT B-1N) max valor posible) 39 2.2.6.3 METODO SIMPLEX -CASOS ESPECIALES MULTIPLES OPTIMOS Ocurre si para una(s) variable(s) No Básica(s) 1. Cj - Zj =0 ; y 2. Existe alguna tasa de sustitución positiva en la tabla óptima MINIMIZACION 1. La regla para la variable que entra a la Base cambia: elegir la que tiene el valor Cj - Zj más negativo 2. La tabla óptima se identifica cuando todos los valores de Cj - Zj son cero o pósitivos. Alternativamente se puede multiplicar Z por (-1) 40 MODELOS CON RESTRICCIONES ≥ y = En los modelos con restricciones ≥ y =, al añadir variables de holgura o de excedente no obtenemos una solución básica factible inicial Para encontrar una, agregamos al modelo en forma estándar, VARIABLES ARTIFICIALES a cada restriccion de ≥ y = . Estas variables formarán parte de la base inicial Existen dos métodos para resolver modelos de PL con variables Artificiales: Método de las M Se asignan números negativos grandes "M" a los coeficientes de las variables artificiales en la función objetivo. (Maximizar) Si en la solución básica óptima existen variables artificiales con valor diferente de cero entonces el modelo de PL no tiene solución 41 EJEMPLO MÉTODO DE LAS Ms - Minimización - Todo tipo de restricción - Optimo en vértice degenerado Modelo Original: Min 4X1 sa. 3X1 4X1 X1 + X2 + X2 = 3 + 3X2 ≥ 6 + 2X2 ≤ 3 X1, X2 ≥ 0 Modelo en forma estándar: Min 4X1 sa. 3X1 4X1 X1 X1, + X2 + 0S 1 + 0S 2 + MA1 + MA2 + X2 + A1 + 3X2 - S1 + A2 + 2X2 + S2 X2 , S1, S2 , A1 , = 3 = 6 = 3 A2 ≥ 0 42 Método de las 2 Fases Se divide la solución en dos etapas. En la primera etapa se resuelve el modelo de PL con f.objetivo (MIN ) igual a la suma de todas las variables artificiales. Como resultado de esta etapa, se encuentra una solución básica factible (SBF). En la segunda etapa se eliminan del modelo las variables artificiales, se restaura la f.o. original y se aplica el método simplex con la solución básica factible (SBF) encontrada en la primera etapa. NOTAS Si en la solución básica óptima de la primera etapa existen variables artificiales con valor diferente de cero entonces el modelo original de PL no tiene solución. Si en la solución básica óptima de la primera etapa existen variables artificiales con valor igual a cero entonces se deben intercambiar por variables no basicas que no sean artificiales (aun si el pivote resultase negativo). Esto con la intención que en la base no hayan variables artificiales. Si aun así, permanecen variables artificiales, entonces representan restricciones redundantes y a estas restricciones se las elimina del modelo. 43 EJEMPLO MÉTODO DE LAS DOS FASES - Minimización - Todo tipo de restricción - Optimo en vértice degenerado Modelo Original: Min 4X1 sa. 3X1 4X1 X1 + X2 + X2 = 3 + 3X2 ≥ 6 + 2X2 ≤ 3 X1, X2 ≥ 0 Modelo en forma estándar para la primera fase Min A1 + A2 sa. 3X1 + X2 + A1 4X1 + 3X2 - S1 + A2 X1 + 2X2 + S2 X1, X2 , S1, S2 , A1 , A2 = 3 = 6 = 3 ≥ 0 Modelo en forma estándar para la segunda fase Min 4X1 sa. 3X1 4X1 X1 X1, + X2 + 0S1 + 0S2 + X2 + 3X2 - S1 + 2X2 + S2 = 3 = 6 = 3 X2 , S1, ≥ 0 S2 , 44 EJEMPLO 2 MÉTODO DE LAS DOS FASES Modelo Original: Min 2X1 + X2 sa. X1 + 2X2 ≤ 2 X2 ≤ 2 3X1 + X2 = 6 X1, X2 ≥ 0 Modelo en forma estándar para la primera fase Min 0X1 + 0X2 + 0S3 + 0S4 + 0S5 + A6 sa. X1 + 2X2 + S3 X2 + S4 3X1 + X2 - S5 + A6 X1, X2 , S3, S4, S5 , A6 = 2 = 2 = 6 ≥ 0 Modelo en forma estándar para la segunda fase Min 2X1 + X2 + 0S3 + 0S4 + 0S5 sa. X1 + 2X2 + S3 X2 + S4 3X1 + X2 - S5 X1, X2 , S3, S4, S5 = 2 = 2 = 6 ≥ 0 45 Primera Fase: CB 0 0 1 CB 0 0 0 Cj base S3 S4 A6 Zj Cj - Zj Cj base S3 S4 X1 Zj Cj - Zj bj 2 2 6 6 0 X1 1 0 3 3 -3 0 X2 2 1 1 1 -1 0 S5 0 0 -1 -1 1 bj 0 2 2 0 1 A6 -1/3 0 1 /3 0 1 0 X2 5 /3 1 1 /3 0 0 0 S5 1 /3 0 -1/3 0 0 1 X2 5 /3 1 1 /3 2 /3 1 /3 0 S5 1 /3 0 -1/3 -2/3 2 /3 2 2 tabla optima ! Segunda Fase: CB 0 0 2 Cj base S3 S4 X1 Zj Cj - Zj bj 0 2 2 4 tabla optima ! 46 2.2.7. METODO SIMPLEX - PROBLEMAS SIN SOLUCION 1. PROBLEMAS NO ACOTADOS - La región factible carece de frontera; y - La funcion objetivo puede ser mejorada sin límites En la tabla simplex se detecta cuando las tasas de sustitucion de la columna de la variable que debe entrar a la base tienen valor cero ó negativo. Por tanto no podria calcularse la siguiente base. 2. INCONSISTENCIA Cuando las restricciones identifican areas mutuamente exclusivas. No existe entonces un conjunto de valores para las variables de decisión que satisfaga simultaneamente todas las restricciones. En la tabla simplex se detecta cuando existen variables artificiales con valor diferente de cero en el óptimo. 2.2.8 PROBLEMAS DEGENERADOS Ocurre cuando un vertice está definido por "demasiadas" restricciones. En un caso No-degenerado: cada solucion Basica Factible tendría m variables basicas positivas diferentes de cero. En un caso Degenerado existen una ó mas variables en la base con valor cero. La degeneración puede ocurrir en cualquier vertice, no necesariamente en el vertice de la solución optima. La degeneracion no impide que exista solucion óptima. Optima 47