UNIVERSIDAD NACIONAL EXPERIMENTAL “FRANCISCO DE MIRANDA” ÁREA DE TECNOLOGÍA DEPARTAMENTO DE GERENCIA UNIDAD CURRICULAR: INVESTIGACIÓN DE OPERACIONES PROFESOR: JUAN LUGO MARÍN Tema No. 3 Métodos de Resolución de Modelos de Programación Lineal. Introducción En este material se presentan los detalles de los métodos empleados para resolver Modelo de Programación Lineal. Inicialmente se explica el Método Gráfico que, aún cuando tiene severas limitaciones para su aplicación, ya que está basado en una geometría plana, resulta conveniente para ilustrar muchos de los elementos importante de los modelos de programación lineal. Aunque la geometría plana se limita a un caso muy restringido, es fácil de manejar y mucho de los conceptos generales que se aplican a modelos de dimensiones superiores pueden ser conectados con los esquemas bidimensionales. La columna vertebral de este tema es presentar detalladamente el método simplex, que es un método algebraico que puede resolver cualquier problema de programación lineal. La información que pueda obtenerse con el método simplex, va más allá de la determinación de los valores óptimos de las variables y de la función objetivo. De hecho, la solución simplex proporciona interpretaciones económicas y resultados del análisis de sensibilidad, como se verá con mayor detalle en el Tema 4. Los economistas de la antigua Unión Soviética fueron los primeros en aplicar las técnicas de la programación lineal en la organización y planificación de la producción. Sin embargo, fue durante la Segunda Guerra Mundial cuando la programación lineal adquirió importancia. La Fuerza Áerea de los Estados Unidos creó el proyecto SCOOP (Scientific 1 Computation of Optima Programs) dirigido por G. B. Dantzig . El método más conocido para resolver problemas de programación lineal, el método simplex, es debido a Dantzig, quien lo introdujo en 1947. Afortunadamente, el crecimiento de la capacidad de cálculo de los computadores ha permitido el uso de las técnicas desarrolladas en problemas de gran dimensión. Durante las últimas décadas se ha dedicado mucho trabajo e investigación a los problemas de programación lineal (PPL). Mientras que la implementación del método simplex ha sufrido modificaciones importantes, los conceptos fundamentales no han variado. El Método Gráfico El método gráfico de solución para problemas lineales representa una manera útil de resolver problemas lineales con dos variables de decisión; para modelos con tres o más variables de decisión el método gráfico es impráctico o imposible. No obstante podemos deducir conclusiones generales del método gráfico que servirán como base para el método simplex que veremos más adelante. Para la solución gráfica de programas lineales con dos variables, lo que se tiene que hacer es trazar un eje de coordenadas cartesianas, para graficar las desigualdades dadas por el problema, después encontrar el Área de Soluciones Factibles y proceder a graficar la función objetivo para conocer el valor óptimo (maximizar o minimizar) que será la solución del problema. Ejemplo: Problema de mezcla de productos. Un fabricante está tratando de decidir sobre las cantidades de producción para dos artículos: mesas y sillas. Se cuenta con 96 unidades de material y con 72 horas de mano de obra. Cada mesa requiere 12 unidades de material y 6 horas de mano de obra. Por otra parte, las sillas usan 8 unidades de material cada una y requieren 12 horas de mano de obra por silla. El margen de contribución es el mismo para las mesas que para las sillas: $5.00 por unidad. El fabricante prometió construir por lo menos dos mesas. Paso 1: formulación del problema. El primer paso para resolver el problema es expresarlo en términos matemáticos en el formato general de PL. ¿Cuál es el objetivo? Es maximizar la contribución a la 2 ganancia. Cada unidad de mesas o sillas producidas contribuirá con $5 en la ganancia. Así las dos alternativas son la producción de mesas y la producción de sillas. Ahora puede escribirse la función objetivo: Maximizar Z = 5x1 + 5x2 en donde: x1 = número de mesas producidas x2 = número de sillas producidas ¿Cuáles son las restricciones o limitaciones del problema? Existen tres restricciones. Primero, el material está limitado a 96 unidades. Cada mesa se lleva 12 unidades de material y cada silla usa 8 unidades. La primera restricción es, entonces: 12x1 + 8x2 <= 96 La segunda restricción es el total de horas de mano de obra. Una mesa se lleva 6 horas, una silla 12 horas y se dispone de un total de 72 horas. Así: 6x1 + 12x2 <=72 Existe una limitación más. El fabricante prometió producir por lo menos dos mesas. Esto puede expresarse como: x1 >= 2 Por último, las restricciones de no negatividad son: x1 >= 0, x2 >= 0 Poniendo todo junto el modelo se tiene: Maximizar Z = 5x1 + 5x2 Restricciones: 12x1 + 8x2 <= 96 6x1 + 12x2 <= 72 x1 >= 2 x1 >= 0, x2 >= 0 3 Paso 2: gráfica de las restricciones. El siguiente paso en el método gráfico es dibujar todas las restricciones en una gráfica. Esto puede hacerse en cualquier orden. Por conveniencia se comenzará con las restricciones de no negatividad. Éstas se muestran en la siguiente figura: En esta gráfica, una solución se representaría por un punto con coordenadas x1 (mesas) y x2 (sillas). Las coordenadas representarían las cantidades de cada artículo que se deben producir. El cuadrante superior derecho se llama Región Factible puesto que es el único cuadrante en que pueden estar las soluciones. Los otros tres cuadrantes no son factibles, ya que requerirían la producción de cantidades negativas de mesas o de sillas o de ambas. La siguiente restricción es x1 >= 2. La manera más sencilla de dibujar las restricciones de recursos es en dos pasos: (1) convertir una desigualdad en una ecuación y graficar la ecuación y (2) sombrear el área apropiada arriba y abajo de la línea que resulta en el paso 1. Convertir una igualdad en una ecuación aquí significa ignorar la parte de “mayor que” o “menor que” de la restricción. Así, en el ejemplo, x1 >= 2 se convierte en x1 = 2. Esta ecuación está trazada en la siguiente figura: 4 Cualquier punto en la línea x1 = 2 satisface la ecuación. Sin embargo, la restricción es más amplia, ya que cualquier punto x1 > 2 también la cumplirá. Esto incluye todos los puntos que están a la derecha de la línea x1 = 2. Entonces, la región factible incluye todos los valores de x1 que están sobre o a la derecha de la línea x1 = 2. La limitación sobre las horas de mano de obra es la siguiente restricción. Como antes, primero se convierte en una ecuación: 6x1 + 12x2 = 72. Puede graficarse esta línea si se encuentran dos puntos sobre ella. El par de puntos más sencillos de localizar son las intersecciones con los ejes X1 y X2. Para encontrar la intersección con el eje X2 se hace x1 = 0. La ecuación se reduce, entonces, a: 12x2 = 72 x2 = 6 La intersección con el eje X1 se encuentra haciendo x2 = 0. Así: 6x1 = 72 x1 = 12 Estos dos puntos y la línea que los une se muestran en la siguiente figura: 5 Cualquier punto que está sobre o abajo de esta línea cumplirá con la restricción. Cualquier punto arriba de esta línea requerirá más de 72 horas de mano de obra y no es aceptable. En la siguiente figura se combina esta restricción con la anterior. En la región factible, ambas restricciones se cumplen. La última restricción es la de material. Siguiendo el procedimiento anterior, primero se encuentran las intersecciones para la igualdad. Éstas son x1 = 0, x2 = 12 y x1 = 8, x2 =0. Se localizan los dos puntos en la gráfica; se traza la línea, y como la restricción es del tipo menor o igual que, se sombrea el área que está abajo de la línea. El resultado se muestra en la siguiente figura: 6 Cualquier solución que esté en la frontera o dentro del área sombreada cumplirá con todas las restricciones. Ahora se utilizará la función objetivo para seleccionar la solución óptima. Paso 3: obtención de la solución óptima: líneas de indiferencia. Para encontrar la solución óptima, se grafica la función objetivo en la misma gráfica de las restricciones. La función objetivo en este problema es Z = 5x1 + 5x2. Como todavía no se conoce el máximo valor factible de Z, no puede trazarse el óptimo de la función objetivo. No obstante, es posible suponer algunos valores para Z y graficar las líneas resultantes. En la siguiente figura se muestran las líneas para Z = 25 yZ = 50: Las líneas de este tipo se llaman líneas de indiferencia, porque cualquier punto sobre una línea dada da la misma ganancia total. Nótese que la distancia perpendicular del origen a la línea aumenta al aumentar el valor de Z. También, todas las líneas de indiferencia son paralelas entre sí. Estas propiedades gráficas pueden usarse para resolver el problema. 7 En la siguiente figura, se ilustran todas las restricciones y las dos líneas de indiferencia supuestas. En la gráfica puede observarse que la línea de indiferencia para Z = 50 está completamente fuera de la región factible. Para Z = 25, parte de la línea cae dentro de la región factible. Por tanto, existe alguna combinación de x1 y x2 que satisface todas las restricciones y da una ganancia total de $25. Por inspección, puede observarse que hay ganancias más altas que son factibles. Imaginando que la línea de indiferencia Z = 25 se mueve hacia la línea Z = 50, de las propiedades de la gráfica que se hicieron notar antes, el punto óptimo estará sobre la línea de indiferencia más lejana al origen pero que todavía toque la región factible. Esto se muestra en la siguiente figura: Con el punto óptimo localizado gráficamente, la única tarea que queda es encontrar las coordenadas del punto. Nótese que el punto óptimo está en la intersección de las líneas de restricción para materiales y horas de mano de obra. Las coordenadas de este punto se pueden encontrar resolviendo el sistema de ecuaciones que forman estas dos restricciones utilizando cualquiera de los métodos de solución (suma y resta, 8 sustitución o igualación). Las coordenadas de este punto resultan ser (6, 3). La sustitución de este punto en la función objetivo da la ganancia máxima: Z = 5(6) + 5(3) = $45 Observación: Otra forma de encontrar el óptimo es determinando cada una de las soluciones asociadas a los vértices de la región factible (Soluciones básicas) y sustituyendo esos valores en la Ecuación Objetivo a objeto de evaluar y determinar la solución básica que arroja el mejor valor objetivo (Solución Óptima) Resumen del método gráfico. Para resolver gráficamente problemas de programación lineal: 1. Exprésense los datos del problema como una función objetivo y restricciones. 2. Grafíquese cada restricción. 3. Localícese la solución óptima. Uso del método gráfico para minimización. Consideremos un Problema de PL en el cual el objetivo es minimizar costos. La solución del problema de minimización sigue el mismo procedimiento que la de problemas de maximización. La única diferencia es que ahora se quiere el menor valor posible para la función objetivo. Supóngase que se tiene el siguiente problema: Ejemplo: Problema de dieta. Un comprador está tratando de seleccionar la combinación más barata de dos alimentos, que debe cumplir con ciertas necesidades diarias de vitaminas. Los requerimientos vitamínicos son por lo menos 40 unidades de vitamina W, 50 unidades de vitamina X y 49 unidades de vitamina Y. Cada onza del alimento A proporciona 4 unidades de vitamina W, 10 unidades de vitamina X y 7 unidades de vitamina Y; cada onza del alimento B proporciona 10 unidades de W, 5 unidades de X y 7 unidades de Y. El alimento A cuesta 5 pesos/kilogramo y el alimento B cuesta 8 pesos/kilogramo. Paso 1: formulación del problema. La meta en este problema es encontrar la manera menos costosa para satisfacer las necesidades vitamínicas. Las dos alternativas disponibles son los alimentos A y B. Matemáticamente la función objetivo es: Minimizar Z = 5A + 8B 9 Las restricciones son los requerimientos mínimos de las tres vitaminas. Éstas se muestran enseguida: Restricciones: 4A + 10B >= 40 vitamina W 10A + 5B >= 50 vitamina X 7A + 7B >= 49 vitamina Y A >= 0, B >= 0 no negatividad Paso 2: gráfica de las restricciones. El procedimiento para graficar es el mismo que se usó antes: (1) graficar cada ecuación de restricción; (2) graficar el área apropiada. Para la primera restricción la ecuación es 4A + 10B = 40. Las dos intersecciones con los ejes son (0,4) y (10,0). Esta línea se muestra en la siguiente figura: La restricción pide 40 unidades o más de la vitamina W. Cualquier punto que esté arriba de la línea de restricción será factible y todos los puntos que quedan abajo de esa línea serán aceptables. En la siguiente figura se muestra la región factible: 10 Después se grafica la restricción para la vitamina X. La ecuación 10A + 5B = 50 tiene intersecciones con los ejes en (0,10) y (5,0). En la siguiente figura se ilustran las restricciones para las vitaminas W y X. Nótese que las soluciones que quedan en las áreas a o b no son factibles, ya que quedarían abajo de las líneas de restricción. Al agregar la tercera restricción, este segundo paso queda terminado, como se muestra en la siguiente figura: 11 Paso 3: localización de la solución óptima. En la siguiente figura se muestra la frontera extrema más dos líneas de indiferencia, las de Z = 40 pesos y Z = 60 pesos. La frontera extrema está formada por los puntos a, b, c y d, puesto que éstos son los puntos de intersección factibles más cercanos al origen. Gráficamente, el objetivo de minimizar el valor de Z significa ajustar una línea de indiferencia tan cerca del origen como sea posible. En la figura anterior puede observarse que existen muchas soluciones posibles para Z = 60, pero ninguna para Z = 40. Imaginando mover la línea Z = 60 hacia el origen, el último punto de contacto con 12 la frontera extrema será el punto b. Entonces, el punto b es la solución óptima. En la figura anterior se observa que el punto b es la intersección de dos líneas: (1) 4A + 10B = 40 (2) 7A + 7B = 49 Resolviendo el sistema de ecuaciones: Multiplíquese la ecuación (1) por 7: (3) Multiplíquese la ecuación (2) por – 4: 28A + 70B = 280 (4) –28A – 28B = –196 42B = 84 B= 2 Sustitúyase en la ecuación (1): 4A + 10(2) = 40 A= 5 La solución menos costosa es 5 kilogramos de alimento A y 2 kilogramos de alimento B. El costo total de esta combinación es: Z = 5A + 8B = 5(5) + 8(2) = 25 + 16 = 41 pesos Si se usa el método de prueba y error para localizar la solución óptima, se deben encontrar las coordenadas de los puntos a, b, c, y d. Se debe calcular después el valor de la función objetivo para cada punto. A continuación se muestran los resultados de este procedimiento: Resultados de prueba y error Punto Coordenadas Z = 5A + 8B A A = 10, B = 0 50 B A = 5, B = 2 41 menor C A =3, B = 4 47 D A = 0, B = 10 80 13 CASOS POSIBLES DE SOLUCIÓN EN LA RESOLUCIÓN DE PROBLEMAS DE PROGRAMACIÓN LINEAL. Soluciones Factibles Si existe el conjunto de soluciones o valores que satisfacen las restricciones. A su vez, pueden ser: Con solución única En una urbanización se van a construir casas de dos tipos: A y B. La empresa constructora dispone para ello de un máximo de 1800 millones de pesetas, siendo el coste de cada tipo de casa de 30 y 20 millones, respectivamente. El Ayuntamiento exige que el número total de casas no sea superior a 80. Sabiendo que el beneficio obtenido por la venta de una casa de tipo A es 4 millones y de 3 millones por una de tipo B, ¿cuántas casas deben construirse de cada tipo para obtener el máximo beneficio? • Variables: x = nº de casas tipo A ; y = nº de casas tipo B • Función objetivo: Maximizar Z = f(x,y) = 4x + 3y • Conjunto de restricciones: El coste total 30x + 20y Ayuntamiento impone x + y Tiene por región 80 . De no negatividad: x factible la región 1800 . El 0,y 0. coloreada. Si hallamos los valores de la función objetivo en cada uno de los vértices : f(O) = f(0,0) = 0 ; f(C)=f(60,0) = 240 ;f(D) = f(20,60) = 260 ; f(E) = f(0,80) = 240 La solución es única, y corresponde al vértice para el que la función objetivo toma el valor máximo. En este caso es el vértice D(20,60). Por tanto se deben construir 20 casas de tipo A y 60 de tipo B con un coste de 260 millones de pesetas. Con solución Si existe más de una solución óptima. múltiple: Maximizar la función Z = f(x,y) = 4x + 2y sujeta a las restricciones 2x + y 4,x-y 1,x 0,y 0. Los valores de la fucnión objetivo en cada uno de los vértices son: f(O)=f(0,0) = 0 , f(A) = f(1,0) = 4 ; f(B)=f(5/3,2/3) = 8 , f(C) = f(0,4) = 8 La función objetivo alcanza el valor máximo en los vértices B y C, por tanto, 14 en todos los puntos del segmento BC. Hay infinitas soluciones, solución múltiple, que corresponden a los puntos del segmento situado entre dos vértices de la región factible. En estos casos, como ya vimos en el capítulo anterior, la función objetivo es paralela a una de las restricciones. Con solución Cuando no existe límite para la función objetivo no acotada Maximizar la función Z = f(x,y) = x + y sujeta a las restricciones y 2x , y x/2 . Tiene por región factible la zona coloreada que aparece en la figura, que es una región no acotada. La función crece indefinidamente para valores crecientes de x e y. En este caso no existe un valor extremo para la función objetivo, por lo que puede decirse que el problema carece de solución. Para que suceda esta situación la región factible debe estar no acotada. No factibles Cuando no existe el conjunto de soluciones que cumplen las restricciones, es decir, las restricciones son inconsistentes. Maximizar la función Z = f(x,y) = 3x + 8y sujeta a las restricciones x + y ,x+y 2,x 0,y 6 0. No existe la región factible, ya que las zonas coloreadas que aparecen en la figura son únicamente soluciones de alguna de las inecuaciones . Por tanto, el conjunto de soluciones del sistema de desigualdades no determina ninguna región factible. Este tipo de problemas carece de solución. 15 El Método Simplex El método gráfico presentado anteriormente demuestra que la solución óptima de un modelo de PL está siempre asociada a un punto extremo o esquina del espacio de soluciones. Esta idea conduce precisamente a la creación del método simplex. Básicamente lo que hace el método simplex es trasladar la definición geométrica del punto extremo a una definición algebraica. El método simplex constituye un procedimiento iterativo que permite ir mejorando la solución a cada paso. El proceso concluye cuando no es posible seguir mejorando más dicha solución. Mas detalladamente tenemos que partiendo del valor de la función objetivo en un vértice cualquiera, el método simplex consiste en buscar sucesivamente otro vértice que mejore al anterior. La búsqueda se hace siempre a través de los lados del polígono (o de las aristas del poliedro, si el número de variables es mayor). Cómo el número de vértices (y de aristas) es finito, siempre se podrá encontrar la solución. El método del simplex se basa en la siguiente propiedad: si la función objetivo, f, no toma su valor máximo en el vértice A, entonces hay una arista que parte de A, a lo largo de la cual f aumenta. El método del simplex fue creado en 1947 por el matemático George Dantzig. El método del simplex se utiliza, sobre todo, para resolver problemas de programación lineal en los que intervienen más de dos variables. El álgebra matricial y el proceso de eliminación de Gauss-Jordan para resolver un sistema de ecuaciones lineales constituyen la base del método simplex. Pasos para la aplicación del método simplex: Paso 0: Formule el Modelo de Programación Lineal respectivo. Paso 1: Convierta todas las restricciones en igualdades de acuerdo a los criterios de la tabla 1. Paso 2: Iguale la función objetivo a cero (tenga en cuenta la tabla 1 para completar los coeficientes objetivos). Paso 3: Construya la Tabla Simplex Inicial. Paso 4: Seleccione una variable entrante las variables actuales no básicas, usando la condición de optimizad. Condición de Optimidad: La variable entrante en el problema de maximización (minimización) es la variable no básica, con el coeficiente más negativo (más positivo) en la ecuación de Z. Un empate puede romperse arbitrariamente. La 16 solución óptima se alcanza cuando todos los coeficientes no básicos en la ecuación Z son positivos (negativos). Paso 5: Seleccione la variable saliente entre las variables actuales básicas, usando la condición de factibilidad. Condición de Factibilidad: Tanto en los problemas de maximización como de minimización, la variable saliente es la variable básica actual, con la menor razón (con denominador positivo distinto de cero) que resulta al dividir los valores del lado derecho entre el valor respectivo de la columna de entrada. Paso 6: Determine la nueva solución básica, haciendo a la variable entrante básica y a la variable saliente no básica. Vuelva al paso 4. Esto se logra a través de la aplicación del Método de Gauss Jordan cuyo objetivo es transformar las ecuaciones, de manera que nos permitan obtener una nueva solución básica mediante la asignación de valores cero a las variables actuales no básicas. Con el método de Gauss Jordan se efectúa un cambio de base empleando dos operaciones de cálculo: Ecuación Pivote: Nueva Ecuación Pivote = (Vieja Ecuación Pivote / Elemento Pivote. Resto de ecuaciones incluyendo Z: Nueva Ecuación = Ecuación Anterior – (Coeficiente columna entrante)*(Nueva ecuación Pivote. Tabla 1 Tipo de Restricción Problema de Maximizar Problema de Minimizar Restricción Menor o igual Variable de holgura toma Variable de holgura toma (<=): variable Requiere de una coeficiente cero en holgura ecuación objetivo. la coeficiente cero en la ecuación objetivo. positiva. Restricción Mayor o Igual Variable de holgura toma Variable de holgura toma (>=): variable Requiere de una coeficiente cero en holgura ecuación objetivo. la coeficiente cero en la ecuación objetivo. negativa y la suma de una La Variable artificial tomo La Variable artificial tomo variable artificial. coeficiente +M en ecuación objetivo. la coeficiente -M en la ecuación objetivo. Restricción de igualdad: La Variable artificial tomo La Variable artificial tomo Requiere que se le sume coeficiente +M en la coeficiente - M en la 17 una variable artifical. ecuación objetivo. ecuación objetivo. Vamos a resolver mediante el método simplex el siguiente problema: Maximizar Z= f(x,y)= 3x + 2y sujeto a: 2x + y 18 2x + 3y 3x + y 42 24 X 0,y 0 Se consideran los siguientes pasos: 0. Formule el Modelo de PL 1. Convertir las desigualdades en igualdades Se introduce una variable de holgura por cada una de las restricciones, para convertirlas en igualdades, resultando el sistema de ecuaciones lineales: 2x + y + h = 18 2x + 3y + s = 42 3x +y + d = 24 2. Igualar la función objetivo a cero - 3x - 2y + Z = 0 3. Escribir la tabla inicial simplex En las columnas aparecerán todas las variables del problema y, en las filas, los coeficientes de las igualdades obtenidas, una fila para cada restricción y la última fila con los coeficientes de la función objetivo: Tabla I . Iteración nº 1 Base Variable de decisión Variable de holgura Valores solución x Y -2 H s d 0 0 0 0 Z -3 h 2 1 1 0 0 18 s 2 3 0 1 0 42 d 3 1 0 0 1 24 4. Encontrar la variable de decisión que entra en la base y la variable que sale de la solución base A. Para escoger la variable de decisión que entra en la base, nos fijamos en la última fila, la de los coeficientes de la función objetivo y escogemos la variable 18 con el coeficiente negativo mayor (en valor absoluto). En nuestro caso, la variable x de coeficiente - 3. Si existiesen dos o más coeficientes iguales que cumplan la condición anterior, entonces se elige uno cualquiera de ellos. Si en la última fila no existiese ningún coeficiente negativo, significa que se ha alcanzado la solución óptima. Por tanto, lo que va a determinar el final del proceso de aplicación del método del simplex, es que en la última fila no haya elementos negativos. La columna de la variable que entra en la base se llama columna pivote (En sombreado). B. Para encontrar la variable de holgura que tiene que salir de la base, se divide cada término de la última columna (valores solución) por el término correspondiente de la columna pivote, siempre que estos últimos sean mayores que cero. En nuestro caso: 18/2 [=9] , 42/2 [=21] y 24/3 [=8] Si hubiese algún elemento menor o igual que cero no se hace dicho cociente. En el caso de que todos los elementos fuesen menores o iguales a cero, entonces tendríamos una solución no acotada y no se puede seguir. El término de la columna pivote que en la división anterior dé lugar al menor cociente positivo, el 3, ya 8 es el menor, indica la fila de la variable de holgura que sale de la base, d. Esta fila se llama fila pivote (En sombreado). Si al calcular los cocientes, dos o más son iguales, indica que cualquiera de las variables correspondientes pueden salir de la base. C. En la intersección de la fila pivote y columna pivote tenemos el elemento pivote operacional, 3. 5. Encontrar los coeficientes de la nueva tabla. Los nuevos coeficientes de x se obtienen dividiendo todos los coeficientes de la fila d por el pivote operacional, 3, que es el que hay que convertir en 1. A continuación mediante la reducción gaussiana hacemos ceros los restantes términos de su columna, con lo que obtenemos los nuevos coeficientes de las otras filas incluyendo los de la función objetivo Z. También se puede hacer utilizando el siguiente esquema: Fila del pivote: 19 Nueva fila del pivote= (Vieja fila del pivote) / (Elemento Pivote) Resto de las filas: Nueva fila= (Vieja fila) - (Coeficiente de la vieja fila en la columna de la variable entrante) X (Nueva fila del pivote) Veámoslo con un ejemplo una vez calculada la fila del pivote (fila de x en la Tabla II): Vieja fila de s Coeficiente 2 3 0 1 0 42 - - - - - - 2 2 2 2 2 2 x x x x X x Nueva fila pivote 1 1/3 0 0 1/3 = = Nueva fila de s 8 = = = = 0 7/3 0 1 -2/3 26 Tabla II . Iteración nº 2 Base Variable de decisión Variable de holgura Valores solución x Y h s d Z 0 -1 0 0 1 24 h 0 1/3 1 0 -2/3 2 s 0 7/3 0 1 -2/3 26 x 1 1/3 0 0 1/3 8 Como en los elementos de la última fila hay uno negativo, -1, significa que no hemos llegado todavía a la solución óptima. Hay que repetir el proceso: A. La variable que entra en la base es y, por ser la variable que corresponde al coeficiente -1 B. Para calcular la variable que sale, dividimos los términos de la última columna entre los 2:1/3 términos [=6] correspondientes , 26:7/3 de la nueva columna y 8:1/3 [=78/7] pivote: [=8] y como el menor cociente positivo es 6, tenemos que la variable de holgura que sale es h. C. El elemento pivote, que ahora hay que hacer 1, es 1/3. Operando de forma análoga a la anterior obtenemos la tabla: 20 Tabla III . Iteración nº 3 Base Variable de decisión Variable de holgura Valores solución X y h s d Z 0 0 3 0 -1 30 y 0 1 3 0 -2 6 s 0 0 -7 0 4 12 x 1 0 -1 0 1 6 Como en los elementos de la última fila hay uno negativo, -1, significa que no hemos llegado todavía a la solución óptima. Hay que repetir el proceso: A. La variable que entra en la base es d, por ser la variable que corresponde al coeficiente -1 B. Para calcular la variable que sale, dividimos los términos de la última columna entre los 6/(-2) términos correspondientes [=-3] , de 12/4 la nueva [=3], y columna 6:1 pivote: [=6] y como el menor cociente positivo es 3, tenemos que la variable de holgura que sale es s. C. El elemento pivote, que ahora hay que hacer 1, es 4. Obtenemos la tabla: Tabla IV . Final del proceso Base Variable de decisión Variable de holgura Valores solución X y h s d Z 0 0 5/4 0 0 33 y 0 1 -1/2 0 0 12 d 0 0 -7/4 0 1 3 x 1 0 -3/4 0 0 3 Como todos los coeficientes de la fila de la función objetivo son positivos, hemos llegado a la solución óptima. Los solución óptima viene dada por el valor de Z en la columna de los valores solución, en nuestro caso: 33. En la misma columna se puede observar el vértice donde se alcanza, observando las filas correspondientes a las variables de decisión que han entrado en la base: D(3,12) 21 Interpretación geométrica del método del simplex Las sucesivas tablas que hemos construido van proporcionando el valor de la función objetivo en los distintos vértices, ajustándose, a la vez, los coeficientes de las variables iniciales y de holgura. En la primera iteración (Tabla I) han permanecido todos los coeficientes iguales, se ha calculado el valor de la función objetivo en el vértice A(0,0), siendo este 0. A continuación se desplaza por la arista AB, calculando el valor de f , hasta llegar a B. Este paso aporta la Tabla II. En esta segunda iteración se ha calculado el valor que corresponde al vértice B(8,0): Z=f(8,0) = 24 Sigue por la arista BC, hasta llegar a C, donde se para y despliega los datos de la Tabla III. En esta tercera iteración se ha calculado el valor que corresponde al vértice C(6,6) : Z=f(6,6)=30. Continua haciendo cálculos a través de la arista CD, hasta llegar al vértice D. Los datos que se reflejan son los de la Tabla IV. Concluye con esta tabla, advirtiendo que ha terminado (antes ha comprobado que la solución no mejora al desplazarse por la arista DE) El valor máximo de la función objetivo es 33, y corresponde a x = 3 e y = 12 (vértice D). Si calculas el valor de la función objetivo en el vértice E(0,14), su valor no supera el valor 33. Método de la “M” o de Penalización. A continuación vamos a presentar los problemas que introducen las otras formas de restricciones funcionales (>= ó =) las cuales hacen necesario identificar una solución inicial básica factible que no es necesariamente el origen. Antes, esta solución inicial se encontraba en forma muy conveniente al hacer que las variables de holgura fueran las variables básicas iniciales, donde cada una era igual a la constante no negativa del lado derecho de la ecuación correspondiente. Ahora debe hacerse algo más. El enfoque estándar que se utiliza es estos casos es la técnica de variables artificiales. Ésta construye un problema artificial más conveniente introduciendo una variable ficticia (llamada variable artificial) en cada restricción que lo requiera. Esta nueva variable se introduce sólo con el fin de que sea la variable básica inicial para esa ecuación. Las restricciones usuales de no negatividad también se 22 aplican sobre estas variables y la función objetivo se modifica para que imponga una penalización exorbitante en el caso de que adquieran valores mayores que cero. Las iteraciones del método símplex automáticamente fuerzan a las variables artificiales a desaparecer (a volverse cero) una a una, hasta que todas quedan fuera de la solución; después de esto se resuelve el problema real. Ejemplo: Consideremos el siguiente problema: Maximizar Z = 3x1 sujeta a + 5x2 x1 <= 4 2x2 3x1 1. + 2x2 x1 >= x2 >= 0, 0 <= 12 = 18 Se aplica la técnica de las variables artificiales introduciendo una variable artificial no negativa (denotada por R1) en la última ecuación, como si fuera una variable de holgura: 3x1 + 2x2 + R1 =18 2. Se asigna una penalización enorme al hecho de tener R1 >= 0, cambiando la función objetivo Z = 3x1 + 5x2 a: Z = 3x1 + 5x2 - MR1, donde M simbólicamente representa un número positivo muy grande. Este método que fuerza a R1 hasta el nivel de R1 = 0 en la solución óptima se llama método de la M. Nota: Para el caso de minimización, penalizamos a la variable artificial, haciéndola aparecer en la función objetivo con un coeficiente de +M (en el lado derecho el coeficiente es positivo). Ahora se encuentra la solución óptima para el problema real aplicando el método símplex al problema artificial. Como R1 juega el papel de la variable de holgura en la tercera restricción del problema artificial, esta restricción es equivalente a 3x1 + 2x2 = 18. En particular, el sistema de ecuaciones después de aumentar el problema artificial (en otras palabras, pasarlo a su forma de igualdades) es: Maximizar Z, sujeta a 23 Z - 3x1 - 5x2 + MR1 = 0 x1 + x3 2x2 3x1 = 4 + x4 + 2x2 = 12 + R1 xj >= 0 = 18 Para j = 1, 2, …, 5 En este momento estamos preparados para pasar los coeficientes a la tabla símplex: Variable Lado Básica Z x1 x2 x3 x4 R5 derecho Cociente Z 1 –3 –5 0 0 M 0 x3 0 1 0 1 0 0 4 x4 0 0 2 0 1 0 12 R5 0 3 2 0 0 1 18 ¿Es óptima? Esta tabla todavía no está en la forma apropiada porque el coeficiente de x5 es diferente de cero en la ecuación de Z (es M). Por lo tanto, antes de que el método símplex pueda aplicar la prueba de optimalidad y encontrar la variable básica entrante, debe pasarse esta tabla a la forma apropiada para que cumpla la condición símplex. Esta condición que debe cumplir toda tabla del método símplex para que pueda reportarnos la siguiente solución básica factible dice que: “Toda variable básica debe tener un 1 en la intersección de su renglón y columna correspondiente y cero en los demás renglones incluido el renglón de Z”, en otras palabras, que toda variable que sea básica solamente debe aparecer en el renglón de la restricción que representa. Para hacer cero el coeficiente M, utilizamos el renglón de x5 como renglón pivote multiplicándolo por M y sumando el resultado al renglón de Z. Realizando el procedimiento anterior, la tabla símplex queda de la siguiente manera: Variable Lado Básica Z x1 x2 x3 x4 x5 derecho Cociente Z 1 -3M-3 -2M-5 0 0 0 x3 0 1 0 1 0 0 4 (0, 0, 4, 12, 18) x4 0 0 2 0 1 0 12 Z= x5 0 3 2 0 0 1 18 18M ¿Es óptima? Mx5 + Z 18M Podemos observar que la tabla anterior ya se encuentra en la forma apropiada y podemos leer la solución básica factible actual, que es (0, 0, 4, 12, 18), la cual aplicando la prueba de optimalidad vemos que no es óptima ya que todavía tenemos coeficientes negativos en el renglón de Z (los correspondientes a x1 y x2). Aplicando el método símplex a la tabla anterior tenemos: el coeficiente negativo con el mayor valor absoluto corresponde a x1 ( 3M 3), recordemos que M es un número muy grande 24 positivo, por lo tanto, x1 se convierte en la variable básica entrante, realizando los cocientes correspondientes, vemos que x3 se convierte en la variable básica saliente. El procedimiento completo para resolver este ejemplo se muestra en el siguiente conjunto de tablas: Variable Básica Z Lado x1 x2 x3 x4 x5 derecho Z 1 -3M-3 -2M-5 0 0 0 18M x3 0 1 0 1 0 0 4 x4 0 0 2 0 1 0 12 x5 0 3 2 0 0 1 18 Z 1 0 -2M-5 3M+3 0 0 x1 0 1 0 1 0 0 4 x4 0 0 2 0 1 0 12 12/2 = 6 x5 0 0 2 3 0 1 6 6/2 = 3 Z 1 0 0 9/2 0 M+5/2 27 x1 0 1 0 1 0 0 4 4/1 = 4 (4, 3, 0, 6, 0) x4 0 0 0 3 1 6 6/3 = 2 Z = 27 x2 0 0 1 Z 1 0 0 0 x1 0 1 0 0 x3 0 0 0 1 1/3 x2 0 0 1 0 1/2 3/2 Cociente ¿Es óptima? 4/1 = 4 (0, 0, 4, 12, 18) Z= 18M 18/3 = 6 6M+12 1 (4, 0, 0, 12, 6) Z= 6M+12 0 1/2 3 3/2 M+1 36 1/3 2 (2, 6, 2, 0, 0) 2 Z = 36 6 Óptima 1/3 1/3 0 CASOS ESPECIALES EN LA APLICACIÓN DEL MÉTODO SIMPLEX En este apartado consideramos casos especiales que pueden presentarse en la aplicación del método simplex, entre los que se cuentan: Degeneración. Múltiples soluciones óptimas. Soluciones no acotadas. Soluciones infactibles. CASO 1: DEGENERACIÓN En el apartado del método simplex indicamos que en la aplicación de la condición de factibilidad una coincidencia de la razón mínima se debe descomponer en forma 25 arbitraria para los fines de determinar la variable que sale. Sin embargo, cuando sucede esto con una o más veces las variables básicas, será necesariamente igual a cero en la siguiente iteración. degenerada. En este caso decimos que la nueva solución es No hay nada alarmante con respecto al manejo de la solución degenerada, con la excepción de una ligere desventaja teórica, que analizaremos brevemente. Desde el punto de vista práctico, la condición revela que el modelo tiene cuando menos una restricción redundante. Ejemplo: Maximizar: Z= 3X1 9X2 Sujeto a: X1 + 4X2 <= 8 X1 + 2X2 <= 4 X1, X2 >= 0 Iteración VB Z X1 X2 X3 X4 LD 0 (entre X2 Z 1 -3 -9 0 0 0 sale X3) X3 0 1 1 1 0 8 X4 0 1 1 0 1 4 1 (entre X1 Z 1 -3/4 0 9/4 0 18 sale X4) X2 0 ¼ 1 ¼ 0 2 X4 0 1/2 0 -1/2 1 0 2 0 (óptima) Z 1 0 0 3/2 3/2 18 X2 0 0 1 ½ -1/2 2 X1 0 1 0 -1 2 0 CASO 2: MÚLTIPLES SOLUCIONES ÓPTIMAS Cuando la función objetivo es paralela a una restricción de enlace ( o sea una restricción que se satisface en el sentido de la igualdad a través de la solución óptima), la función objetivo tomará el mismo valor óptimo en más de un punto de la solución. Por esta razón recibe el nombre de múltiples soluciones óptimas. Ejemplo Maximizar: Sujeto a: Z= 2X1 + 4X2 X1 + 2X2 <= 5 X1 + X2 <= 4 X1, X2 >= 0 26 Iteración VB Z X1 X2 X3 X4 LD 0 (X2 entre Z 1 -2 -4 0 0 0 X3 sale) X3 0 1 1 1 0 5 X4 0 1 1 0 1 4 1 (X1 entra Z 1 0 0 2 0 10 X4 sale) X2 0 ½ 1 ½ 0 5/2 X4 0 ½ 0 -1/2 1 3/2 2 Z 1 0 0 2 0 10 (alternativa X2 0 0 1 1 -1 1 óptima) X1 0 1 0 -1 2 3 CASO 3: SOLUCIÓN NO ACOTADA En algunos modelos de programación lineal, los valores de las variables se pueden aumentar en forma indefinida sin violar ninguna de las restricciones, lo que significa que el espacio de soluciones es no acotado cuando menos en una dirección. Como resultado el valor de la función objetivo puede crecer (caso de maximización) o decrecer (caso de minimización) en forma indefinida. En este caso decimos que el espacio de soluciones y el valor óptimo de la función objetivo son no acotados. Ejemplo: Maximizar: Z = 2X1 + X2 Sujeto a: X1 - X2 <= 10 2X1 <= 40 X1, X2>= 0 Iteración inicial: VB Z X1 X2 S1 S2 LD Z 1 -2 -1 0 0 0 S1 0 1 -1 1 0 10 S2 0 2 0 0 1 40 27 CASO 4: SOLUCIÓN INFACTIBLE Si las restricciones no se pueden satisfacer de manera simultánea se dice que el modelo no tiene solución factible. Esta situación no puede ocurrir si todas las restricciones son del tipo <= (suponiendo constantes no negativas en el segundo miembro) ya que la holgura produce siempre una solución factible. Sin embrago cuando empleamos los otros tipos de restricciones, recurrimos al uso de variables artificiales, que por su diseño no ofrecen una solución factible al modelo original. Aunque se toman medidas (a través del uso de la penalización) para hacer que las variables artificiales sean cero en el nivel óptimo, esto solo puede ocurrir si el modelo tiene un espacio de solución factible. Si no lo tiene, cuando menos una variable artificial será positiva (básica) en la iteración “óptima”. Ejemplo Maximizar: Z= 3X1 + 2X2 Sujeto a: 2X1 + X2 <= 2 3X1 + 4X2 >12 X1, X2>= 0 Tabla inicial VB Z X1 X2 X4 X3 R1 LD Z 1 -3-3M -2-4M M 0 0 -12M X3 0 2 1 0 1 0 2 R1 0 3 4 -1 0 1 12 Tabla Seudo Óptima VB Z X1 X2 X4 X3 R1 LD Z 1 1+5M 0 M 2+4M 0 4-4M X2 0 2 1 0 1 0 2 R1 0 -5 0 -1 -4 1 4 28 OTROS EJEMPLOS A DESARROLLAR EN CLASES Ejemplo 1: Minimizar: Z = 3X1 + 2X2 Sujeto a: X1 + 2X2 <= 6 2X1 + X2 <= 8 -X1 + X2 <= 1 X2 <= 2 X1, X2 >= 0 VB Z X1 X2 S1 S2 S3 S4 LD Z 1 -3 -2 0 0 0 0 0 S1 0 1 2 1 0 0 0 6 S2 0 2 1 0 1 0 0 8 S3 0 -1 1 0 0 1 0 1 S4 0 0 1 0 0 0 1 2 Z 1 0 -1/2 0 3/2 0 0 12 S1 0 0 3/2 1 -1/2 0 0 2 X1 0 1 ½ 0 ½ 0 0 4 S3 0 0 3/2 0 ½ 1 0 5 S4 0 0 1 0 0 0 1 2 Z 1 0 0 1/3 4/3 0 0 38/3 X2 0 0 1 2/3 -1/3 0 0 4/3 X1 0 1 0 -1/3 2/3 0 0 10/3 S3 0 0 0 -1 1 1 0 3 S4 0 0 0 -2/3 1/3 0 1 2/3 29 Ejemplo No. 2: Minimizar: Z = 4X1 + X2 Sujeto a: 3X1 + X2 = 3 4X1 + 3X2 >= 6 X1 + 2X2 <= 4 X1, X2 >= 0 VB Z X1 X2 S1 R1 R2 S2 LD Z 1 -4+7M -1+4M -M 0 0 0 9M R1 0 3 1 0 1 0 0 3 R2 0 4 3 -1 0 1 0 6 S2 0 1 2 0 0 0 1 4 Z 1 0 (1+5M)/3 -M (4-7M)/3 0 0 4+2M X1 0 1 1/3 0 1/3 0 0 1 R2 0 0 5/3 -1 -4/3 1 0 2 S2 0 0 5/3 0 -1/3 0 1 3 Z 1 0 0 1/5 8/5 – M -1/5 –M 0 18/5 X1 0 1 0 1/5 3/5 -1/5 0 3/5 X2 0 0 1 -3/5 -4/5 3/5 0 6/5 S2 0 0 0 1 1 -1 1 1 Z 1 0 0 0 7/5 – M -M -1/5 17/5 X1 0 1 0 0 2/5 0 -1/5 2/5 X2 0 0 1 0 -1/5 0 3/5 9/5 S1 0 0 0 1 1 -1 1 1 30 Bibliografía Anderson, D.; Sweeney, D.; Williams, T. (2004). Métodos cuantitativos para los negocios. México. Editorial Thomson. Eppen, G.; Gould, F. J.; Moore, J.; Schmidt. C.; Weatherford, L. (1998). Investigación de Operaciones en la Ciencia Administrativa. México. Editorial Prentice Hall Hillier, F.; Liberman, G. (2001). Investigación de Operaciones. México. Editorial Mc. Graw Hill. Mathur, K.; Solow, D (1996). Investigación de Operaciones. El arte de la toma de decisiones. México. Prentice Hall. Taha, H. (2004). Investigación de Operaciones. México. Perason Prentice Hall. Wayne, W. (2005). Investigación de Operaciones. Aplicaciones y Algoritmos. México. Editorial Thomson. 31