UNIVERSIDAD DEL VALLE FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA INDUSTRIAL Y ESTADÍSTICA INTRODUCCIÓN A LA MODELACIÓN MATEMÁTICA Y OPTIMIZACIÓN Programación Lineal, Programación No Lineal y Teoría de Redes: Formulación y solución de modelos, teoría de dualidad, análisis de sensibilidad, problema del transporte y problemas seleccionados de redes. (Versión 1.5 Agosto de 2005) Escrito y recopilado por Carlos Julio Vidal Holguín Cali, Agosto de 2005 2 Introducción a la Modelación Matemática y Optimización DEDICATORIA 3.5. SOLUCIÓN DE MODELOS DE PROGRAMACIÓN LINEAL Hasta el momento se ha llegado a la obtención del modelo de Programación Lineal. De hecho, lo más importante es definir claramente el problema y conceptualizar el modelo correctamente. Sin embargo, una vez concluidos estos dos pasos fundamentales, lógicamente es necesario encontrar la solución (o soluciones) del modelo. En la mayoría de los casos, el método que más se aplica es el simplex. Sin embargo, para lograr la comprensión del método simplex es necesario estudiar inicialmente dos formas de solución: El método gráfico y el método de enumeración de soluciones básicas. Existen otros métodos denominados algoritmos de punto interior que no se estudian aquí. 3.5.1. Método Gráfico de Solución Este método se ilustrará encontrando la solución del modelo Nº 1 anterior. Este modelo servirá de base para el estudio y la comparación de todos los métodos. Lo primero que hay que observar es que el modelo al cual se llegó, tiene sólo dos variables de decisión, (X1 y X2). Esto hace pensar que es posible representar las restricciones en un eje de coordenadas (X1, X2). El modelo encontrado anteriormente es el siguiente: MAX U = 400Xଵ + 700Xଶ Sujeto a: 7 ܺଵ + ൬ ൰ ܺଶ ≤ 1400 ሾܴ1ሿ 3 ܺଵ + 1.4ܺଶ ≤ 980 ሾܴ2ሿ ܺଵ + ܺଶ ≤ 900 ሾܴ3ሿ ܺଵ ≥ 900 ሾܴ4ሿ ܺଶ ≥ 900 ሾܴ5ሿ ܺଵ + ܺଶ ݁݊ݏݎ݁ݐ Existen infinitos valores de X1 y X2 los cuales satisfacen todas las restricciones simultáneamente (ignorando la restricción por enteros, la cual se presenta en algunas ocasiones). Por ejemplo, (0, 0) y (50, 100)son dos parejas de valores (X1, X2), que satisfacen todas las restricciones. Además, cualquier valor de X1 entre 0 y 50 y de X2 entre 0 y 100, también satisface a todas las restricciones simultáneamente (esta última observación es válida para valores reales de X1 y X2, obviamente sin tener en cuenta la restricción por enteros). Así, puede verse claramente que las restricciones “encierran” un conjunto de infinitas parejas (X1, 84 Introducción a la Modelación Matemática y Optimización X2), las cuales las satisfacen simultáneamente. Este conjunto de parejas son las soluciones factibles y forman la denominada región factible (Figura 3.1) Figura 3.1. Solución gráfica del modelo Nº1 Como se observa en la figura 3.1, la región factible se construye en el plano X1 X2, trazando las rectas R1, R2, R3, R4, R5, las cuales se obtienen de las restricciones, tomando el signo “igual”, así: 7 R1: ܺଵ + ൬ ൰ ܺଶ = 1400 3 ܴ2: ܺଵ + 1.4ܺଶ = 980 ܴ3: ܺଵ + ܺଶ = 900 ܴ4: ܺଵ = 0 (݆݁݁ ܺଶ ) ܴ5: ܺଶ = 0 (݆݁݁ ܺଵ ) Posteriormente, se encuentra el semiplano definido por cada desigualdad. Para esto se prueba, generalmente si el origen (0.0) cumple con la desigualdad y, de ser así, él esta dentro del semiplano buscado. En la figura 3.1 se ha marcado con flechas el semiplano que cumple con el signo ≤ para las restricciones R1, R2 y R3 y de ≥ para las restricciones de no– negatividad R4 y R5, las cuales limitan la región al primer cuadrante. La intersección de todos los semiplanos definidos por las desigualdades constituye la región factible. Los infinitos puntos en los límites y dentro de la región factible son las soluciones factibles del modelo. Por lo general, sólo una de estas infinitas soluciones es la solución óptima, o sea aquella que produce el valor óptimo de la función objetivo (máximo o mínimo). Por ejemplo, se observa claramente que X1 = 400 y X2 = 200 es una solución factible, pues está dentro de la región factible. Esta solución produciría un valor de la función objetivo U = $300.000. Otra solución factible es X1 = 500 y X2 = 300, la cual produciría U = $410.000. O sea que esta última es mejor que la primera, pues produce un mayor valor de la función objetivo “U”, ya que ésta se está maximizando. Se puede demostrar que la región factible definida por restricciones lineales es una región convexa. En una región convexa, si se escogen cualquier par de puntos dentro o en los límites de la región y se unen por una línea recta, entonces toda la línea recta queda comprendida dentro de la región. La propiedad de convexidad es un aspecto fundamental para la caracterización de los problemas de optimización. En general, puede afirmarse que un problema convexo (programación convexa) es más fácil de resolverse que otro que no lo es. Los vértices de la región factible son los interceptos de los segmentos de reata límites de la región. En este caso los vértices son: V1 (0,0) V2 (0,600) V3 (350,450) V4 (700,200) V5 (900,0) Para encontrar la solución óptima se procede de la siguiente manera: Se traza la recta de la función objetivo para un valor arbitrario. Por ejemplo, sea: Uଵ = 400Xଵ + 700X ଶ = 280.000 Todos los puntos de esta recta que queden dentro de la región factible son soluciones factibles que producen obviamente un valor de U = 280.000 (por ejemplo X1 = 350; X2 = 200). Se traza otra recta con un valor diferente, por ejemplo: Uଶ = 400Xଵ + 700X ଶ = 420.000 Esta recta es obviamente paralela a la primera, pues tiene la misma pendiente igual a −4/7 y, de nuevo, todos los puntos de ella que están dentro de la región factible son soluciones factibles que producen un valor de U = 420.000. O sea que la función objetivo “U” aumenta de valor a lo largo de una familia de rectas paralelas con pendiente –4/7. Es aquí donde se puede concluir la forma de encontrar la 86 Introducción a la Modelación Matemática y Optimización solución óptima: Si se conoce la dirección de crecimiento de la función objetivo, se puede seguir esta dirección por rectas paralelas hasta encontrar el último punto que se “toca” al “abandonar” la región factible; ESTA SERÁ LA SOLUCIÓN ÓPTIMA DEL MODELO DE PROGRAMACIÓN LINEAL. En el modelo Nº 1, el último punto que se toca al abandonar la región factible es el vértice V3 (X1 = 350; X2 = 450), el cual produce un valor de U = 455.000. Si se aumenta sólo un poco más el valor de “U”, la nueva recta estará por completo fuera de la región factible. O sea que el máximo valor que puede lograrse es U = 455.000, con X1 = 350 y X2 = 450. Por lo tanto, la solución óptima de este modelo es: X1 = 350 X2 = 450 U* = 455.000 (U* = U óptima) Análisis de la solución: La solución óptima plantea que deben producirse 350 transformadores de 40 VA y 450 de 75 VA para obtener una utilidad máxima posible por este concepto de $455.000. Obsérvese que se supone que todos los transformadores que se producen, se van a vender. En caso de que exista alguna restricción de demanda, ésta deberá ser incluida en el modelo y éste por supuesto podrá tener soluciones óptimas diferentes. Los recursos limitados del sistema son las horas.hombre, las horas.máquina1 y las horas.máquina2. Si se producen las cantidades dadas en la solución óptima, se están utilizando los siguientes recursos: 7 ܺଵ + ൬ ൰ ܺଶ ≤ 1400 ሾ ݏܽݎܪ− ݁ݎܾ݉ܪሿ 3 7 350 + ൬ ൰ 450 = 1400 ሾ ݏܽݎܪ− ݁ݎܾ݉ܪሿ 3 ܺଵ + 1.4ܺଶ ≤ 980 ሾ ݏܽݎܪ− ܯá ܽ݊݅ݑݍ1ሿ 350 + 1.4(450) = 980 ሾ ݏܽݎܪ− ܯá ܽ݊݅ݑݍ1ሿ ܺଵ + ܺଶ ≤ 900 ሾ ݏܽݎܪ− ܯá ܽ݊݅ݑݍ2ሿ 350 + 450 = 800 < 900 ሾ ݏܽݎܪ− ܯá ܽ݊݅ݑݍ2ሿ O sea que se utilizan completamente las horas-hombre y las horas-máquina 1 disponibles, pero sólo se utilizan 800 de las 900 horas-máquina 2 disponibles. Por lo tanto “sobran” 100 horas-máquina 2, las cuales no contribuyen en nada a la función objetivo. Como se verá más adelante, si se dispusiera de un mayor número de horas-hombre y/ó horasmáquina 1, probablemente podría incrementarse la utilidad máxima, pero el hecho de tener mayor disponibilidad de horas-máquina 2 no contribuiría en nada a la función objetivo, ya que se trata de un recurso sobrante, el cual se dice que tiene un costo de oportunidad igual a cero. Como ya se ha podido concluir, el método gráfico es útil cuando se tienen modelos de sólo dos variables de decisión o cuando se tiene un número par de variables y las restricciones involucran parejas de ellas; por ejemplo, el siguiente modelo puede ser resuelto utilizando el método gráfico: Sujeto a: MAX Z = 3Xଵ + 2Xଶ + 4Xଷ + Xସ + 7 ܺଵ + ܺଶ ≤ 8 3ܺଵ + 2ܺଶ ≤ 15 ܺଷ + 2ܺସ ≤ 9 3ܺଷ + ܺସ ≤ 12 (ܺଵ , ܺଶ , ܺଷ , ܺସ ) ≥ 0 En este modelo se divide la función objetivo en dos funciones, así: Z = Zଵ + Zଶ = (3Xଵ + 2X ଶ ) + (4Xଷ + Xସ + 7) Y se utiliza el método gráfico independientemente para cada Zi, con sus respectivas restricciones. En el caso de tres variables de decisión, aún puede ser utilizado el método gráfico en algunas ocasiones donde resulte fácil apreciar la región factible y los “planos objetivos”. En este caso la región factible es un poliedro convexo, formado por el corte de los diferente planos que constituyen las restricciones; el crecimiento de la función objetivo se puede observar mediante el desplazamiento de planos paralelos. De nuevo, el último punto del poliedro que toque el plano al abandonar la región factible será la solución óptima. Considérese el modelo siguiente: Sujeto a: MAX Z = 5Xଵ + 10Xଶ + 2Xଷ ܺଵ + ܺଶ + ܺଷ ≤ 5 (4ܺଵ + 4ܺଶ + ܺଷ ) ≤ 8 (ܺଵ + ܺଶ + ܺଷ ) ≥ 0 En la figura 3.2 se puede apreciar la región factible y los “planos objetivos”. La solución óptima es: X1 = 0; X2 =2; X3 =0; Z* = 20 (Vértice V3) Sin embargo, el método gráfico resulta inadecuado en la mayoría de los casos de tres variables de decisión, pues se necesita gran habilidad en el dibujo y una gran imaginación espacial. 88 Introducción a la Modelación Matemática y Optimización Figura 3.2. Solución de un modelo de PL de 3 variables mediante el método gráfico De los dos ejemplos resueltos por el método gráfico, puede sacarse una conclusión muy importante, la cual es válida para cualquier modelo de Programación Lineal: La solución óptima se encuentra en uno de los vértices de la región factible. Esta afirmación, que puede ser planteada como un teorema, es de fundamental importancia, pues de infinitas soluciones posibles (definidas por la región factible), sólo basta con mirar aquellas definidas por los vértices de la región factible. Obsérvese que en el caso anterior, la recta de la función objetivo “abandona” a la región factible en un solo vértice, constituyéndose así en una SOLUCIÓN ÓPTIMA ÚNICA. Existen otros tres casos importantes, en los cuales no hay solución óptima única: a. Cuando existen infinitas soluciones óptimas: Este caso ocurre cuando la recta de la función objetivo es paralela a uno de los lados de la región factibles. Obviamente, aquí la recta de la función objetivo toca infinitos puntos al abandonar la región factible. Estos infinitos puntos están en el segmento de la recta que une dos vértices determinados (sin embargo, también en este caso la solución óptima esta en los vértices de la región factible). Todos ellos son solución óptima y producen el mismo valor de la función objetivo. Por ejemplo, en el modelo Nº 1, si la función objetivo hubiera sido: MAX U = 400Xଵ + 560Xଶ El modelo hubiera tenido infinitas soluciones. Ejercicio: Resuelva el modelo Nº 1 por el método gráfico, cambiando la función objetivo por la anterior. Encuentre la “solución general”. Plantee otra función objetivo que produzca infinitas soluciones. b. Cuando no existe “solución acotada”: En este caso una ó varias variables pueden crecer (ó decrecer) sin restricción, produciendo valores cada vez mayores (ó menores) en la función objetivo. Es el caso en el que la región factible es “abierta”, probablemente debido a que faltó incluir alguna restricción en el modelo. Por ejemplo, en el modelo: Sujeto a: MAX Z = 3Xଵ + 2Xଶ ܺଵ + 2 ܺଶ ≥ 8 ܺଶ ≤ 5 (ܺଵ + ܺଶ ) ≥ 0 La variable X1 puede crecer indefinidamente, aportando cada vez más a la función objetivo, sin violar las restricciones. O sea que en este caso, en realidad, no existe solución acotada. Ejercicio: Dibuje la región factible del modelo anterior y compruebe que es “abierta”. Incluya una restricción adicional que permita tener solución óptima única. c. Cuando no existe ninguna solución factible alguna: En este caso no existe en realidad una región factible, pues la “intersección de las restricciones” es el conjunto vacío. Esta situación se presenta cuando hay inconsistencia en las restricciones y el modelo debe ser replanteado. Por ejemplo el modelo: MAX Z = 3Xଵ + 2X ଶ + 3Xଷ 90 Introducción a la Modelación Matemática y Optimización ܺଵ + ܺଶ + ܺଷ ≤ 4 2ܺଵ + ܺଶ + 3ܺଷ ≥ 15 (ܺଵ , ܺଶ , ܺଷ ) ≥ 0 Sujeto a: No tiene solución factible alguna. Ejercicio: Trate de dibujar la región factible del modelo y compruebe que ésta no existe y que por lo tanto el modelo no tiene solución óptima. Los tres casos anteriores pueden presentarse en cualquier modelo de Programación Lineal, pero se han ilustrado para 2 ó 3 variables de decisión, para que puedan observarse gráficamente. 3.5.2. Método de Enumeración de Soluciones Básicas Ya se ha afirmado que la solución óptima (en general) de un modelo de Programación Lineal está en uno de los vértices de la región factible. Esto se puede ver geométricamente de una forma clara. Pero, es más adecuado establecer la transición de la Geometría al Álgebra, para tratar de manejar problemas de un mayor número de variables. Para esto, inicialmente se estudian modelos de Programación Lineal en su forma estándar. 3.5.2.1. Forma estándar de los modelos de Programación Lineal Un modelo de Programación Lineal se puede transformar a la forma estándar, la cual tiene las siguientes características: a. La función objetivo debe ser de maximización (aunque no siempre es necesaria esta condición) b. El sistema de restricciones debe estar conformado por un conjunto de igualdades restrictivas, donde los términos independientes bi deben ser mayores ó iguales a cero. c. Todas las variables deben tener la condición de no-negatividad (Xj ≥ 0, para todo j). En general, el modelo estándar es de la forma siguiente: Función Objetivo: MAX Z = Cଵ Xଵ + Cଶ X ଶ + Cଷ Xଷ + ⋯ + C୬ X୬ ܣଵଵ ܺଵ + ܣଶଶ ܺଶ + ⋯ + ܣଵ ܺ = ܾଵ ܺ ܣ ۓ+ ܺ ܣ+ ⋯+ ܾ = ܺ ܣ ଶଶ ଶ ଶ ଶ ۖ ଶଵ ଵ Igualdades Restrictivas … … … … … … … … … … … … … … … . . ……………………………………… ۔.. ۖ ܣەଵ ܺଵ + ܣଶ ܺଶ + ⋯ + ܣ ܺ = ܾ Sujeto a: En el modelo anterior los bi deben ser mayores ó iguales a cero. Por lo general, se cumple que m < n y, por lo tanto, el sistema de igualdades tiene infinitas soluciones (las infinitas soluciones de la región factible). Para llevar cualquier modelo de Programación Lineal a la forma estándar puede hacerse uso (de ser necesario) de las siguientes transformaciones: a. Si la función objetivo es de minimización, o sea MIN Z, puede definirse Z´= −Z y cambiar la función objetivo a MAX (−Z), o sea MAX Z´. b. Si se trata de una desigualdad de ≤, se puede sumar una variable no negativa denominada “variable de holgura”, para establecer la igualdad; o sea, si la restricción es: ܣଵ ܺଵ + ܣଶ ܺଶ + ⋯ + ܣ ܺ ≤ ܾ ; ܾ ≥ 0 Se transforma a: ܣଵ ܺଵ + ܣଶ ܺଶ + ⋯ + ܣ ܺ + ܵ = ܾ ; ܾ ≥ 0 La variable Si es la variable de holgura. Ella se le puede llamar Si ó, simplemente, se le denomina Xk, con el subíndice k diferente a los de las demás variables; por ejemplo: ܺଵ + 3ܺଶ − 4ܺଷ + 8ܺସ ≤ 7 (restriccion i) Se puede transformar a: ܺଵ + 3ܺଶ − 4ܺଷ + 8ܺସ + ܵ ≤ 7 Ó: ܺଵ + 3ܺଶ − 4ܺଷ + 8ܺସ + ܺହ ≤ 7 (Si no se ha utilizado la variable X5 en alguna restricción anterior.) Si se trata de una restricción de mayor o igual, entonces se le resta una variable no negativa, denominada variable de exceso, así: ܣଵ ܺଵ + ܣଶ ܺଶ + ⋯ + ܣ ܺ ≥ ܾ ; ܾ ≥ 0 Se transforma en: ܣଵ ܺଵ + ܣଶ ܺଶ + ⋯ + ܣ ܺ − ܵ = ܾ ; ܾ ≥ 0 92 Introducción a la Modelación Matemática y Optimización O si se utiliza la segunda forma, se transformaría en: ܣଵ ܺଵ + ܣଶ ܺଶ + ⋯ + ܣ ܺ − ܺା = ܾ ; ܾ ≥ 0 Las variables de holgura, obviamente, deben cumplir con las restricciones de nónegatividad. c. Si alguno de los bi es menor que cero, entonces se multiplica por (-1) a ambos lados de la desigualdad (o igualdad) y posteriormente se le suma (ó se le resta) la variable de holgura (ó de exceso), dependiendo del signo resultante de la desigualdad. Si se trata desde un comienzo de una igualdad, lógicamente no es necesario adicionar variable de holgura ó exceso. d. Si existe alguna variable que no tiene restricción de no-negatividad (variable libre), entonces se le reemplaza por la diferencia de dos variables positivas, en forma semejante a lo visto anteriormente en el modelo de programación de metas, así: Xj es variable libre (Xj puede ser mayor, igual ó menor que cero) Entonces donde aparece Xj, cambiarla por: ൫ܺା − ܺି ൯, ݀݁݀݊: ܺା ≥ 0; ܺି ≥ 0 Ejemplo: Convertir a la forma estándar el siguiente modelo de Programación Lineal: MIN Z = 3Xଵ + 4Xଶ − 3Xଷ + 8Xସ Sujeto a: ܺଵ + ܺଶ + 3ܺଷ ≤ 7 ሾܴ1ሿ 2ܺଶ + 8ܺଷ − 3ܺସ = −8 ሾܴ2ሿ 3ܺଵ + 4ܺଶ + 7ܺସ ≥ −7 ሾܴ3ሿ ܺଵ + ܺଶ + ܺଷ ≥ 5 ሾܴ4ሿ ܺଷ + 2ܺସ = 10 ሾܴ5ሿ (ܺଵ , ܺଶ , ܺଷ ) ≥ 0; ܺସ libre Las transformaciones a realizar son: a. b. c. d. e. En la restricción R1 debe sumarse una variable de holgura. En la restricción R2 debe multiplicarse a ambos lados de la igualdad por (-1), pero no deben adicionarse variables de holgura ó exceso. En la restricción R3 debe multiplicarse primero por (-1) a ambos lados de la desigualdad, y luego adicionar la variable de holgura correspondiente. En la restricción R4 debe restarse una variable de exceso. La restricción R5 no necesita ninguna transformación. f. g. Donde aparezca la variable X4, debe cambiarse por (X4+− X4−), X4+ y X4− mayores ó iguales que cero. La función objetivo se cambia a maximización. De acuerdo con estas transformaciones, el modelo en forma estándar es el siguiente: MAX Z´ = −Z = −3Xଵ − 4X ଶ + 3X ଷ − 8(Xସା − Xସି ) Sujeto a: ܺଵ + ܺଶ + 3ܺଷ + ܺହ = 7 −2ܺଶ − 8ܺଷ + 3(X ସା − X ସି ) = 7 −3ܺଵ − 4ܺଶ − 7(X ସା − Xସି ) + ܺ = 7 ܺଵ + ܺଶ + ܺଷ − ܺ = 5 ܺଷ + 2(X ସା − Xସି ) = 10 ܺହ , ܺ , ܺ son las variables de holgura ܺଵ , ܺଶ , ܺଷ,X ସା , Xସି , ܺହ , ܺ , ܺ ≥ 0 3.5.2.2. Algunas definiciones sobre el modelo estándar Prácticamente, en todos los modelos estándar de Programación Lineal existen un mayor número de variables que de restricciones. Como el sistema de restricciones es un sistema lineal de ecuaciones n x m, donde n > m, lo más probable es que tenga infinitas soluciones. Cuando un sistema de ecuaciones lineales tiene infinitas soluciones, existen variables a las cuales se les puede asignar un valor arbitrario, para luego resolver el sistema remanente y así encontrar una solución del sistema. A las variables que se les asigna un valor arbitrario, se les puede llamar variables que “sobran” en el sistema y su número es igual a n − m. El sistema remanente es cuadrado m × m y se resuelve para así obtener una solución particular del sistema (es posible que el sistema remanente m × m no tenga solución). Con base en lo anterior, se pueden hacer las siguientes definiciones sobre cualquier modelo de programación lineal en forma estándar: Solución Factible: Una solución factible es cualquier solución del sistema n × m que satisfaga las condiciones de no-negatividad (o sea aquella solución en la cual todas las variables son positivas ó cero). Solución Básica: Es aquella solución en la cual se les da el valor arbitrario de cero a las n − m variables que “sobran” en el sistema n × m. A las m variables que no se les da el valor arbitrario de cero 94 Introducción a la Modelación Matemática y Optimización se les denomina variables básicas y se dice que constituyen una base del sistema de ecuaciones. Solución Básica Factible: Es una solución básica que cumple con las condiciones de no-negatividad (en este caso las variables básicas son positivas. (Si existe por lo menos una variable básica igual a cero, se dice que la solución es degenerada) Solución Óptima: Es la solución factible que proporciona el valor óptimo (máximo ó mínimo) de la función objetivo. Con base en las definiciones anteriores, se pueden enunciar los tres principales teoremas de optimalidad (sin demostración), a saber: a. b. c. Las soluciones factibles conforman un conjunto convexo, cuyos vértices son las soluciones básicas factibles. Si el sistema tiene una solución factible, entonces existe por lo menos una solución básica factible. Si la función objetivo tiene un óptimo (máximo ó mínimo) finito, entonces existe por lo menos una solución óptima la cual es una solución básica factible. 3.5.2.3. El método de solución de enumeración de soluciones básicas De los tres teoremas anteriores se saca una conclusión fundamental en la teoría de la Programación Lineal: Si un modelo de Programación Lineal tiene solución óptima, esta se puede encontrar en una solución básica factible. O sea, que de las infinitas soluciones factibles, “sólo” basta con inspeccionar las básicas factibles y una de éstas será una solución óptima del problema de PL. Igualmente, de la afirmación anterior queda claro por qué se decía en el desarrollo del método gráfico que la solución óptima estaba en uno de los vértices de la región factible. Dado que el método de enumeración de soluciones básicas debe inspeccionar todas las soluciones básicas, identificar la factible y escoger la mejor, debe primero determinarse el número posible de soluciones básicas. Como en el sistema de “m” igualdades con “n” variables, “sobran” (n – m) variables a las cuales se les asigna el valor de cero, el número posible de soluciones básicas resulta ser igual a todas las posibles formas de escoger las (n – m) variables de las n totales, o sea: ܰú݉݁ܤ ݏ݁݊݅ܿݑ݈ܵ ݁݀ ݎá = ݏܽܿ݅ݏቀ ݊ ݊ ݊! ቁ=ቀ ቁ= ݊−݉ ݉ ݉! ∙ (݊ − ݉)! Por lo tanto, es necesario resolver sistemas de ecuaciones lineales m × n para encontrar la solución óptima. Aquí ya pueden observarse las limitaciones de este método, pues supóngase que se tiene un 30modelo de 30 variables con 15 restricciones (el cual es un modelo modesto y relativamente pequeño), entonces tendrían que ser resueltos = 155,117,520 sistemas de 15 ecuaciones lineales de 15 × 15 para determinar la solución óptima. Por lo tanto, la importancia de estudiar este método radica simplemente en la formación de los fundamentos para la comprensión del método simplex. Para ilustrar el método se resolverá a continuación el modelo Nº 1 formulado anteriormente (el de los transformadores): MAX U = 400Xଵ + 700Xଶ Sujeto a: 7 ܺଵ + ൬ ൰ ܺଶ ≤ 1400 3 ܺଵ + 1.4ܺଶ ≤ 980 ܺଵ + ܺଶ ≤ 900 (ܺଵ , ܺଶ ) ≥ 0 Inicialmente debe escribirse el modelo en su forma estándar, así: MAX U = 400Xଵ + 700Xଶ Sujeto a: 7 ܺଵ + ൬ ൰ ܺଶ + ܺଷ = 1400 3 ܺଵ + 1.4ܺଶ + ܺସ = 980 ܺଵ + ܺଶ + ܺହ = 900 (ܺଵ , ܺଶ , ܺଷ , ܺସ , ܺହ ) ≥ 0 Obsérvese que como las restricciones son todas ≤, sólo fue necesario sumar a cada restricción su correspondiente variable de holgura. En el modelo estándar anterior se identifican n = 5 variables y m = 3 restricciones, y, por lo tanto, el número de soluciones básicas es igual a 10. Para encontrar cada solución básica hay que asignarle el valor de cero a (n – m) = 5 – 3 = 2 variables cada vez. Todas las soluciones básicas se muestran en la tabla siguiente. 96 /Solución óptima Introducción a la Modelación Matemática y Optimización Solución Básica 1 2 3 4 5 6 7 8 9 10 X1 X2 X3 X4 X5 Factible? Valor de U 0 0 0 0 1400 980 900 350 525 700 0 600 700 900 0 0 0 450 375 200 1400 0 233 1/3 -700 0 420 500 0 0 233 1/3 980 140 0 -280 -420 0 80 0 -70 0 900 300 200 0 -500 -80 0 100 0 0 x x 0 420.000 x x 360.000 455.000 x 420.000 La forma de asignar el valor de cero a dos variables en cada solución debe ser lógica y ordenada, con el objeto de no repetir ó dejar de tener en cuenta algunas de las soluciones básicas. Obsérvese que las soluciones básicas No. 3, 4, 5, 6, y 9 no son factibles, pues por lo menos una de las variables no cumple con las restricciones de no-negatividad. Además, es importante notar que las soluciones 1, 2, 7, 8 y 10 son factibles y corresponden precisamente a los vértices V1, V2, V5, V3 y V4, respectivamente, de la región factible mostrada en la figura 3.1 anterior. La solución óptima es la No. 8, pues es la que produce el valor máximo de la función objetivo U. La solución óptima completa viene dada por: X1 = 350 X2 = 450 X3 = 0 X4 = 0 X5 = 100 U* = 455.000 El valor óptimo de la variable de holgura X5 = 100 indica que, en su correspondiente restricción, la número 3, no se cumple la igualdad sino la desigualdad, o sea que hay un sobrante de 100 unidades del recurso 3 (o sea que quedan disponibles 100 hr-máquina 2). Como las variables de holgura X3 = X4 = 0 se concluye que las restricciones 1 y 2 se cumplen con la igualdad, o sea que los recursos 1 (hr-hombre) y 2 (hr-máquina 1) se han utilizado completamente. Estas conclusiones, por supuesto, son las mismas encontradas anteriormente en el método gráfico. El método de enumeración de soluciones básicas identifica la existencia de infinitas soluciones si se obtienen dos ó más soluciones básicas factibles diferente que producen el máximo valor de la función objetivo. Identifica también el caso de ninguna solución factible, si no se obtiene ninguna solución básica factible, pero no identifica el caso de solución no acotada, tal como se ilustra en el modelo siguiente: MAX Z = 3Xଵ + X ଶ + 2X ଷ ܺଵ + ܺଶ ≤ 10 2ܺଵ + 3ܺଶ + ܺଷ ≥ 18 (ܺଵ, ܺଶ , ܺଷ ) ≥ 0 Sujeto a: Obsérvese que la variable X3 puede crecer indefinidamente, cumpliendo con la restricción Nº 2 y, por lo tanto, Z no está acotada. La forma estándar de este modelo es: MAX Z = 3Xଵ + X ଶ + 2X ଷ Sujeto a: ܺଵ + ܺଶ + ܺସ = 10 2ܺଵ + 3ܺଶ + ܺଷ − ܺହ = 18 ൫ܺଵ,ܺଶ , ܺଷ , ܺସ , ܺହ ൯ = 0 El número de soluciones básicas es igual a 10. El número de variables que “sobran” es igual a 3. Si se intentara resolver este problema mediante este método, se obtendría la tabla siguiente. Solución Básica 1 2 3 4 5 6 7 8 9 10 X1 X 2 X3 X4 X5 0 0 0 0 0 0 10 9 10 12 0 0 10 0 2 0 0 18 10 10 0 0 6 0 4 10 -12 0 0 0 0 0 0 1 0 -2 0 -2 0 0 -18 ? 0 12 0 0 2 0 0 0 Factible? Valor de U Sist. Inconsistente x x x 36 10 6 x x 30 27 La tabla anterior sugiere que la solución óptima del modelo es la solución básica No. 3, pero en realidad, como se demostró anteriormente, la función objetivo es no acotada y, por lo tanto, el modelo no tiene solución óptima. Por esta razón, este método puede fallar en estos casos. En la página siguiente se presenta un taller para la preparación del primer examen del curso. Se sugiere su solución completa. 98 Introducción a la Modelación Matemática y Optimización En la sección siguiente se introduce el método simplex, el cual se constituye en uno de los más utilizados en la actualidad para la solución de problemas reales de PL, junto con los algoritmos de punto interior. Los fundamentos para la comprensión del método se han expuesto en la presente sección. Ejercicio 3.2. 1. Una refinería de petróleo puede comprar dos tipos de petróleo crudo. El tipo 1 cuesta $57.500/barril y el tipo 2 cuesta $50.600/barril. Cada barril de petróleo crudo de cualquier tipo ya refinado de produce tres tipos de productos terminados: gasolina para avión, gasolina normal y kerosén. Un barril de petróleo crudo tipo 1 produce 0.45 barriles de gasolina para avión, 0.18 barriles de gasolina normal, 0.30 barriles de kerosén y el resto son desechos cuya eliminación cuesta $2.300/barril. Por otra parte, un barril de petróleo crudo tipo 2 produce 0.35 barriles de gasolina para avión, 0.36 barriles de gasolina normal, 0.20 barriles de kerosén y el resto son desechos cuya eliminación cuesta $3.450/barril. La refinería ha firmado un contrato para proveer por lo menos 1.260.000 barriles de gasolina para avión, 900.000 barriles de gasolina normal y 300.000 barriles de kerosén. Formule un modelo de programación lineal que le permita determinar cuántos barriles de petróleo crudo de cada tipo debe comprar la refinería para cumplir con la demanda establecida a costo total mínimo. 2. a) Resuelva el problema anterior mediante el método gráfico e interprete la solución. b) Replantee la función objetivo del modelo asumiendo que los precios de venta de cada producto son los siguientes: Gasolina para avión $134.600/barril, gasolina normal $75.000/barril y kerosén $40.500/barril. Asuma que ahora las demandas a satisfacer son máximas. Resuelva de nuevo el problema mediante el método gráfico e interprete la solución obtenida. 3. Una gran empresa distribuidora tiene que suministrar 800 toneladas/mes de productos a sus clientes y está pensando en renovar completamente su flota de transporte. La empresa tiene un presupuesto disponible de $1.150 millones (incluyendo los ingresos por venta del equipo actual) para invertir en tres tipos de camiones. La tabla siguiente muestra la capacidad, el costo de compra, el costo operativo y el número máximo de viajes/mes de cada tipo de camión. TIPO DE CAMIÓN CAPACIDAD [Kg] COSTO DE COMPRA [$millones] COSTO DE OPERACIÓN [$/mes] 1 2 3 6.000 3.000 2.000 115 92 58 1.840.000 1.495.000 1.150.000 MÁX. No. DE VIAJES POR MES 20 25 30 La compañía no desea comprar más de 10 vehículos en total para su flota. Igualmente, dado que algunos despachos son para clientes muy pequeños y diversos, la compañía desea comprar al menos 3 camiones tipo 3. La compañía tampoco desea que más de la mitad de la flota esté compuesta de camiones tipo 1. Finalmente, la capacidad de los parqueaderos que tiene la empresa permite comprar como máximo 9 camiones tipo 1, ó 12 camiones tipo 2, ó 18 camiones tipo 3 o cualquier combinación lineal de ellos. Formule un modelo de programación lineal que le permita determinar la composición de 100 Introducción a la Modelación Matemática y Optimización la flota más económica, permitiéndole a la empresa cumplir con sus compromisos de distribución y su limitación de presupuesto. 4. Una empresa productora estima con muy buena precisión que la demanda para las próximas cuatro semanas es de 600.000 tornillos pequeños y 400.000 tornillos grandes. Estos tornillos pueden producirse en dos máquinas distintas. La máquina 1 está disponible 56 horas/semana y la máquina 2 está disponible 84 horas/semana. Los requerimientos de costos y tiempo para producir cada tamaño de tornillo en cada máquina y el precio de venta de cada tamaño de tornillo se muestran a continuación: DETALLE Precio de venta [$/millar] Costo en la máquina 1 [$/millar] Costo en la máquina 2 [$/millar] Tiempo en la máquina 1 [min/lb] Tiempo en la máquina 2 [min/lb] TORNILLOS PEQUEÑOS 63.250 14.375 18.400 1.50 1.00 TORNILLOS GRANDES 74.750 17.825 21.275 1.75 1.25 En cada libra hay aproximadamente 60 tornillos pequeños y 40 tornillos grandes. Formule un modelo de programación lineal para programar la producción de tornillos en forma óptima. 5. Suponga que en el problema anterior la máquina 1 se daña y no es posible repararla sino hasta después de las próximas cuatro semanas, y por lo tanto solo se puede disponer de la máquina 2 durante sus 84 horas/semana. Reformule el modelo de programación lineal suponiendo que la demanda de cada tipo de tornillo es ahora máxima y resuélvalo por medio del método gráfico. Analice la solución obtenida. 6. Una fábrica de chocolates está desarrollando un nuevo producto basado en mantequilla de maní y chocolate como ingredientes. El dulce debe contener al menos 5 gramos de proteínas, pero no más de 5 gramos de carbohidratos y 3 gramos de grasas saturadas. Se dispone de la siguiente información: DETALLE Costo [$/onza] Proteínas [gr/onza] Carbohidratos [gr/onza] Grasas saturadas [gr/onza] MANTEQUILLA DE MANÍ 230 4.00 2.50 2.00 CHOCOLATE 414 0.80 1.00 0.50 Por motivos de sabor, la cantidad mínima de cada ingrediente en el dulce debe ser de 0.50 onzas. a) Formule y resuelva un modelo de programación lineal que le permita determinar la cantidad a utilizar de cada tipo de ingrediente para satisfacer los requerimientos nutricionales planteados al costo mínimo. b) Formule y resuelva de nuevo el problema si el peso total de la barra debe ser exactamente igual a 2 onzas. 7. Se está analizando cómo combinar dos tipos de fertilizantes, de tal forma que la mezcla contenga al menos 200 unidades de un cierto compuesto. El fertilizante A contiene 8 unidades del compuesto/Kg de fertilizante, mientras que el fertilizante B contiene 25 unidades del compuesto/Kg de fertilizante. El fertilizante A cuesta $1.000/Kg, mientras que el fertilizante B cuesta $3.125/Kg. Ambos fertilizantes se producen a partir de dos materias primas M1 y M2. Cada Kg de fertilizante A consume 6 litros de M1 y 3 litros de M2. Cada Kg de fertilizante B consume 12 litros de M1 y 2 litros de M2. Se dispone de 216 litros de M1 y 60 litros de M2. Finalmente, por razones de calidad, la mezcla debe contener a lo más 16 Kg de fertilizante A. a) Formule y resuelva un modelo de programación lineal que le permita determinar cuántos Kg de cada fertilizante utilizar en la mezcla para obtener el costo mínimo. b) Analice la solución óptima de este problema. ¿Qué característica especial tiene? c) Encuentre la solución óptima general de este problema e interprétela. 8. De la colección de 66 problemas sobre formulación de modelos de programación lineal, plantee los modelos de los siguientes: No. 23, 28, 45, 54, 55, 56 y 59. 102 Introducción a la Modelación Matemática y Optimización 4. EL MÉTODO SIMPLEX Los autores presentan el método simplex en diversas formas: tabular, algebraica, matricial, etc. De todas estas maneras de presentación, tal vez la más adecuada y la que más ventajas ofrece para sentar en el estudiante una mejor base teórica, es la forma matricial. Sin embargo, posteriormente se hará énfasis en las aplicaciones resueltas por computador, ya que es en últimas el instrumento que se utiliza para resolver cualquier modelo de Programación Lineal. Para ilustrar y presentar el método simplex, se utilizará el siguiente ejemplo sencillo: Maximizar Z = 5X1 + 3X 2 sujeto a : 3X1 + 5X 2 ≤ 15 (3.1) 5X1 + 2X 2 ≤ 10 (X1 , X 2 ) ≥ 0 Inicialmente, se resolverá el modelo anterior, utilizando la enumeración de soluciones básicas; la forma estándar del modelo es la siguiente: Maximizar Z = 5X1 + 3X 2 sujeto a : 3X1 + 5X 2 + S1 5X1 + 2X 2 = 15 (3.2) + S 2 = 10 (X1 , X 2 , S1 , S 2 ) ≥ 0 Luego, el modelo en su forma estándar presenta n = número de variables = 4 y m = número de restricciones = 2. n 4 El número máximo de soluciones básicas = = = 6 m 2 La tabla siguiente muestra las soluciones básicas y la solución óptima: Solución Básica No 1 2 3 4 5 X1 0 0 0 5 2 X2 0 3 5 0 0 S1 15 0 -10 0 9 S2 10 4 0 -15 0 Factible Si Si No No Si 6 20/19 45/19 0 0 Si Valor de Z 0 9 – – 10 235/19 ≅ 12.4 Por lo tanto, la solución óptima es la No. 6. La tabla anterior debe tenerse presente para el desarrollo que sigue. Cualquier problema de Programación Lineal, en su forma estándar puede escribirse así: MAX (MIN) Z = CX sujeto a : AX = b (3.3) X≥0 donde, Z1×1 = C1×n = Xn×1 = Am×n = bm×1 = Valor de la función objetivo Vector fila de los coeficientes de todas las variables en la función objetivo Vector columna de todas las variables del problema (incluyendo las de holgura) Matriz de coeficientes del sistema Vector del lado derecho Se va a tomar en general, el modelo en su forma estándar, como un modelo de n variables (incluyendo las de holgura) y m restricciones de igualdad. Así, en general, las dimensiones de cada matriz y vector son: C = [C 1 C 2 C 3 ······· C n ]1× n X1 X 2 . X = (incluye variables de holgura y/ó exceso Sk) . . X n n×1 a11 a12 a 21 a22 . . A= . . . . am1 . · · · a1n b1 b · · · a2 n 2 . . . . . b= . . . . . . . . . . . . . amn m×n bm m×1 En el caso del modelo (3.2), los vectores C, X, b y la matriz A, serían: C = [5 3 0 0 ]; X = [ X 1 X 2 S 1 S 2 ] ; 3 5 1 0 A= ; 5 2 0 1 T 15 b= 10 104 Introducción a la Modelación Matemática y Optimización 4.1. SOLUCIONES BÁSICAS EN FORMA MATRICIAL Un aspecto importante a destacar es el hecho de que a cada solución básica, factible o no, se le puede identificar una matriz base asociada, así: Tómese, por ejemplo, la solución básica No 1, correspondiente a la tabla anterior. Dado que X1 = X2 = 0 son las variables a las cuales se les asigna el valor cero, se les denomina VARIABLES NO-BÁSICAS. A las variables que quedan formando un sistema de ecuaciones lineales m×m, se les denomina VARIABLES BÁSICAS, ya que sus columnas forman la matriz base, así: 1 0 S1 15 0 1 S = 10 2 −1 S1 1 0 15 15 S 2 = 0 1 10 = 10 La cual corresponde a la solución básica No 1 (en este caso se trata de una solución básica factible). Tómese ahora, por ejemplo, la solución básica No 4, de la tabla anterior. En ella, X2 = S1 = 0 y, por lo tanto: 3 0 X 1 15 5 1 S = 10 2 −1 X 1 3 0 15 1 / 3 0 15 5 S = 5 1 10 = − 5 / 3 1 10 = − 15 2 La cual corresponde a la solución básica No 4 (en este caso NO FACTIBLE). En el primer caso, la matriz base asociada a la solución básica es la matriz idéntica de 3 0 orden 2 y en el segundo caso es la matriz . Obsérvese que, en cada caso, la solución 5 1 básica se obtiene invirtiendo la base y premultiplicándola por el vector b, o sea que una solución básica es de la forma B −1b , donde B es la matriz base asociada a la solución correspondiente. 4.2. EL MÉTODO SIMPLEX EN FORMA MATRICIAL De acuerdo con lo planteado en la sección anterior, el problema general de PL en su forma estándar, dado por el conjunto de ecuaciones (3.3), puede tomarse de la siguiente manera: A = [B M R ] XB X = L X R C = [C B M C R ] Las particiones anteriores pueden explicarse así: Bm×m = Matriz base de orden m (se forma escogiendo m columnas de la matriz A, correspondientes a las variables básicas) Rm×(n-m) = Matriz restante, formada por las (n-m) columnas de la matriz A, asociadas a las variables no básicas. X B m ×1 = XR = (n -m) ×1 CB1×m = CR1×( n−m ) = Vector de las variables básicas. Vector de las variables no básicas. Vector de los coeficientes de las variables básicas en la función objetivo. Vector de los coeficientes de las variables no básicas en la función objetivo. Por la tanto el modelo de PL (3.3) quedaría expresado así: MAX (MIN) Z = C B X B + C R X R sujeto a : BX B + RX R = b (3.4) X≥0 Una solución básica es aquella en la que X R = 0 y, por lo tanto, X B = B −1b . Una solución básica factible es aquella solución básica X B = B −1b , tal que XB ≥ 0 . A partir de (3.4) se va a deducir las condiciones para el método SIMPLEX. En palabras, lo que hace el método SIMPLEX es partir de una solución básica inicial factible, con una base inicial asociada, la cual, en general, es la matriz idéntica de orden m. Posteriormente, se pasa a otra solución básica factible, cambiando una sola columna de la base, de tal forma que se logre hacer crecer lo más posible a la función objetivo Z, si se está maximizando, o decrecer, si se está minimizando. 106 Introducción a la Modelación Matemática y Optimización El paso a otra solución básica factible se logra cambiando de base, de tal forma que una de las variables básicas sale de la base, pasando a ser no básica, y una de las variables no básicas entra a la base, volviéndose básica y entrando a ocupar el lugar de la variable que salió de la base. En otras palabras, la diferencia entre dos bases sucesivas está en una sola columna. El proceso de cambio de base continúa hasta que se detecta que no se puede mejorar más la función objetivo (minimizando o maximizando) y es cuando se ha logrado encontrar la solución óptima del problema. El método SIMPLEX tiene tres condiciones fundamentales, de acuerdo con lo expresado anteriormente: criterio de entrada (para determinar la variable que entra a la base), criterio de salida (para determinar la variable que sale de la base) y criterio de parada, para definir cuando se acaba el proceso. Estos tres criterios se deducen a continuación (Ver Figura 1 adelante). Se tienen dos ecuaciones, a partir de (3.4): Z = C B X B + C R X R (3.5) BX B + RX R = b (3.6) Si suponemos que B es no singular, en (3.6) se tiene que: B −1BX B + B −1 RX R = B −1b ⇒ X B + (B −1 R ) X R = B −1b Sean: Ym×( n − m ) = B m−1×m R m×( n − m ) ∧ X B = B −1b (solución actual) ⇒ X B + YX R = X B (3.7) Lo que se pretende es investigar la posible variación de la solución actual, ocasionada por el futuro cambio de base. Obsérvese que si se hace XR = 0, todo se reduce a la solución actual. Premultiplicando la ecuación (3.7) por CB se obtiene: C B X B + C B YX R = C B X B Sea Z = C B X B (valor actual de la función objetivo), ⇒ Z = CB X B + C B YXR (3.8) Efectuando (3.5) menos (3.8), se obtiene: Z − Z = CR X R − C B YXR O mejor: Z = Z − (C B Y − C R ) X R (3.9) Lo importante de la ecuación (3.9) es que: Z = Cualquier valor de la función objetivo (o valor futuro) Z = Valor actual de la función objetivo (C B Y − CR )X R = Cambio en el valor de la función objetivo si se modifica la base. Así, la ecuación (3.9) muestra el cambio que tendría la función objetivo en una iteración, al cambiar de base. Por lo tanto se puede tratar de controlar este cambio para que sea lo más grande posible. Se puede entonces modificar esta ecuación observando que se trata de una ecuación escalar. La notación se modifica así: C B Y = C B [Ym +1 M Ym+ 2 M ····· Yn ] = [C B Ym+1 M C B Ym+ 2 M C R = [Cm+1 Cm+2 ···· Cn ] ····· C B Yn ] Los términos C B Y j son los productos escalares entre el vector C B y las columnas de la matriz Y, y se le denomina Z j . Así, la ecuación (3.9) puede transformarse a: Z = Z − ∑ ( Z j − C j )X j (3.10) j Como sólo una de las variables no básicas X j es la que va a entrar a la base y tomará seguramente un valor positivo, entonces la sumatoria se reduce a un sólo término, ya que el resto de variables no básicas seguirá siendo igual a cero. Por lo tanto, le ecuación (3.10) se transforma a: Z = Z − ( Z k − C k ) X k (3.11) Donde X k = variable no básica que entrará a la base. De la ecuación (3.11) se deduce fácilmente el criterio de entrada del método SIMPLEX: ENTRA A LA BASE AQUELLA VARIABLE CUYO: (Z j − C j ) sea "lo más negativo posible"(MAX) 7 (Z j − C j ) sea "lo más positivo posible"(MIN) 7 En realidad puede entrar a la base cualquier variable cuyo (Zj−Cj) sea negativo para maximización, pero si se escoge el menor es más probable llegar al óptimo (máximo en este caso) más rápidamente. Un razonamiento semejante se presenta si se está MINIMIZANDO. 108 Introducción a la Modelación Matemática y Optimización El criterio de salida se deduce de la ecuación (3.7). Una vez se ha escogido la variable a entrar, la variable a salir queda definida por la condición de factibilidad, como se verá a continuación. La ecuación (3.7) se puede escribir en forma explícita de la siguiente manera: x1 x1 y1,m +1 y1,m + 2 x x y y2 , m + 2 2 2 2,m +1 · · · · = − · · · · · · · · xm xm ym ,m +1 ym ,m + 2 xm +1 ··· y2 n xm + 2 M · · · · xk M · · ··· ymn xn ··· y1k ··· ··· y2 k · · · · · · ··· ymk y1n donde se ha identificado a la variable X k , futura a entrar a la base. Al efectuar el producto YX R , sólo se mantienen los términos que multiplican a X k , ya que el resto de variables continuará con valor cero. Por lo tanto, se generarían las siguientes ecuaciones: x1 = x1 − y1k xk x = x − y x 2 2 2k k M M M M xm = xm -ymk xk Como debe garantizarse que la próxima solución básica sea factible, entonces: x1 − y1k xk ≥ 0 x − y x ≥ 0 2 2k k M M M xm -ymk xk ≥ 0 Por lo tanto: x xk ≤ mín s ; y sk > 0 y sk y sk debe ser mayor que cero, puesto que xk debe tomar también un valor no negativo. Por otra parte, como la variable que va a salir de la base pasará a tomar valor cero, entonces: xs = xs − ysk xk = 0 , donde xs es la variable a salir de la base. Así: x xk = s ; y sk > 0 y sk Por lo tanto, la variable que entra a la base toma el valor del cociente mínimo de la variable que sale de la base. Del razonamiento anterior, se obtiene el criterio de salida del método SIMPLEX: SALE DE LA BASE AQUELLA VARIABLE CUYO COCIENTE θ SEA EL MÍNIMO, donde: x θ = s ; ysk > 0 ysk Este cociente se efectúa entre los valores actuales de la solución y los términos de la columna k de la matriz Y que sean positivos solamente (recuérdese que la columna k es la columna asociada a la variable xk , previamente escogida para entrar a la base). El valor que toma la variable que va a entrar a la base es precisamente el del cociente mínimo, o sea xk = θ mín . Es importante notar que este criterio es válido tanto para problemas de maximización como para problemas de minimización, pues su origen es el de obtener una solución básica que sea factible. Inicie con una solución básica factible inmediata ¿Se cumple el CRITERIO DE PARADA? Si No La solución básica factible actual es una SOLUCIÓN ÓPTIMA Escoger la variable que va a entrar a la base (CRITERIO DE ENTRADA) FIN Determinar la variable que va a salir de la base (CRITERIO DE SALIDA) Realizar las operaciones fila elementales para cambiar de base y obtener una nueva solución básica factible Figura 1. El algoritmo SIMPLEX 110 Introducción a la Modelación Matemática y Optimización El criterio de parada se deduce directamente del criterio de entrada, ya que si llega el momento en el cual no existen variables candidatas a entrar a la base, es porque no puede mejorarse más la función objetivo y se ha llegado al óptimo. Por lo tanto, el criterio de parada es el siguiente: EL PROCESO SIMPLEX CONCLUYE SI TODOS LOS: ( Z j − C j ) ≥ 0, para maximizar 8 ( Z j − C j ) ≤ 0, para minimizar En resumen, el algoritmo SIMPLEX hace lo mostrado en la Figura 1 anterior. Los casos especiales, como son función múltiples soluciones óptimas, función objetivo no acotada y ninguna solución factible, son identificados también por el algoritmo simplex, como se verá más adelante en los ejemplos 3.2, 3.3 y 3.4, respectivamente. 4.3. APLICACIÓN DEL MÉTODO SIMPLEX EN FORMA MATRICIAL Considérese el modelo (3.1), cuya forma estándar está dada en (3.2). Obsérvese que la matriz A presenta inicialmente una submatriz idéntica de orden 2. Esta submatriz constituye la base inicial, ya que su inversa es inmediata, así: Solución básica factible inicial: (punto de partida) 1 0 B= ; 0 1 S1 X1 15 3 5 C B = [0 0]; C R = [5 3]; b = ; R = ; X B = ; X R = 10 5 2 S 2 X2 S1 S2 X1 X2 Entonces: −1 1 0 15 15 XB = B b = = 0 1 10 10 −1 Z = CB X B = 0 XB es la solución básica factible inicial. 8 Primer Cambio de Base: Los ( Z j − C j ) de las variables básicas siempre son iguales a cero, como se verá posteriormente. Si existe algún ( Z j − C j ) de una variable no básica igual a cero, se concluye que existen múltiples soluciones óptimas, ya que se podrá cambiar de base sin modificar el valor de la función objetivo. Criterio de entrada: ( Z j − C j ) sea el “más negativo”. Z j = C B Y j = C B B −1a j , donde a j son las columnas de A que forman la matriz R. 1 0 3 5 3 5 Y = B −1R = = (columnas de la matriz Y) 0 1 5 2 5 2 T Z1 = C B Y1 = [0 0][3 5] = 0 Z 2 = C B Y2 = [0 0][5 2] = 0 ⇒ Z1 − C1 = 0 − 5 = −5 ENTRA A LA BASE LA VARIABLE x1 9 ⇒ Z 2 − C2 = 0 − 3 = −3 T Criterio de salida: Recuérdese que X B = X B − YXR , en este caso: s1 15 3 5 x1 XB = = − s2 10 5 2 x2 Columna asociada a X1 , variable a entrar a la base. 15 10 Luego: θ = mín , = mín{5 , 2} = 2 3 5 Por lo tanto sale de la base la variable S2. Segundo Cambio de Base (si es necesario): Actualmente, las nuevas condiciones son: 1 3 B= ; 0 5 s1 x1 S1 S2 15 0 5 C B = [0 5]; C R = [0 3]; b = ; R = ; X B = ; X R = 10 1 2 X1 X2 s2 x2 Entonces, la solución actual es: −1 1 3 15 1 − 3 5 15 9 10 = XB = B b = = 0 5 10 0 15 10 2 −1 Z = CB X B = 10 9 Obsérvese que X1 es la variable asociada a la columna Y1. En este caso la inversa de la nueva base no se ha obtenido por operaciones fila elementales, como se hace normalmente en la forma tabular, que se estudiará más adelante. 10 112 Introducción a la Modelación Matemática y Optimización Ahora: 1 − 3 / 5 0 5 − 3 / 5 19 / 5 (columnas de Y) Y = B −1R = = 2 / 5 0 1 / 5 1 2 1 / 5 S2 X2 T Z1 = C B Y1 = [0 5][− 3 / 5 1 / 5] = 1 Z 2 = C B Y2 = [0 5][19 / 5 2 / 5] = 2 ⇒ Z1 − C1 = 1 − 0 = 1 ⇒ Z 2 − C2 = 2 − 3 = −1 , ENTRA A LA BASE LA VARIABLE X2 (la única cuyo Zj – Cj es negativo) T criterio de salida: s 9 − 3 / 5 19 / 5 s2 XB = 1 = − 2 / 5 x2 x1 2 1 / 5 columna asociada a X2, la variable a entrar a la base. 45 45 Luego, θ = mín , 5 = 19 19 Por lo tanto, sale de la base la variable S1. Tercer Cambio de Base (si es necesario): Actualmente las nuevas condiciones son: X2 S2 15 0 1 C B = [3 5]; C R = [0 0]; b = ; R = ; X B = ; X R = 10 1 0 X1 S1 5 3 B= ; 2 5 x2 x 1 entonces la solución actual es: −1 5 3 15 5 / 19 − 3 / 19 15 45 / 19 XB = B b = = = 2 5 10 − 2 / 19 5 / 19 10 20 / 19 Z = CB X B = 235 / 19 ≅ 12.37 −1 Ahora: 5 / 19 − 3 / 19 0 1 − 3 / 19 5 / 19 Y = B −1R = = (columnas de Y) − 2 / 19 5 / 19 1 0 5 / 19 − 2 / 19 Y1 Y2 T Z1 = C B Y1 = [3 5][− 3 / 19 5 / 19] = 16 / 19 Z 2 = C B Y2 = [3 5][5 / 19 − 2 / 19] = 5 / 19 T ⇒ Z1 − C1 = 16 / 19 − 0 = 16 / 19 ≥ 0 , SE CUMPLE EL CRITERIO DE ⇒ Z 2 − C 2 = 5 / 19 − 0 = 5 / 19 PARADA. Luego la solución básica factible actual es una solución óptima. Como los únicos (Zj – Cj) iguales a cero son los de las variables básicas, entonces esta es la única solución óptima del modelo (3.1). x 45 / 19 235 XB = 2 = Z máx = C B X B = 19 x1 20 / 19 s 0 X R = 2 = (variables no básicas) s1 0 4.4. EL MÉTODO SIMPLEX EN FORMA TABULAR Como puede observarse, la forma matricial de solución mediante el algoritmo SIMPLEX sería impráctica. Sin embargo, lo importante que debe notarse es que cada iteración lo único que hace es reemplazar valores anteriores por otros nuevos, aspecto fundamental para lograr la implementación del método en el computador. La forma tabular es mucho mejor para el trabajo manual y consiste en hacer las mismas operaciones matriciales en forma de tablas, de una manera más rápida y eficiente, ya que se conservan las columnas y los productos se hacen en forma sencilla. Además, la inversa de la base se halla en forma automática, mediante operaciones fila elementales. Para el caso del ejemplo anterior, los tableros SIMPLEX son los siguientes: Cj 5 3 0 0 XB X1 X2 S1 S2 COCIENTE 0 0 15 10 3 5 5 2 1 0 0 1 15/3 = 5 10/5 = 2 0 0 0 -5 0 -3 0 0 0 0 0 5 9 2 0 1 19/5 2/5 1 0 -3/5 1/5 10 5 0 2 -1 0 0 1 1 3 5 45/19 20/19 0 1 1 0 5/19 -2/19 -3/19 5/19 Zmáx 235/19 5 0 3 0 5/19 5/19 16/19 16/19 VARIABLES BÁSICAS S1 S2 CB Zj Zj − Cj S1 X1 Zj Zj − Cj X2 X1 Zj Zj − Cj Solución óptima Inversa de la base óptima 45/19 ≅ 2.4 2/(2/5) = 5 114 Introducción a la Modelación Matemática y Optimización Dado que en el tercer tablero, (Z j − C j ) ≥ 0 para todo j, entonces este es el tablero óptimo. La solución óptima del problema es: X1 = 20/19 X 2 = 45/19 S1 = 0 S2 = 0 Z máx = 235/19 Debe notarse que la inversa de la base en cada iteración se va generando debajo de la matriz idéntica inicial. Es importante notar que el método SIMPLEX se mueve de una solución básica factible a otra de una manera muy especial: mejorando lo más posible a la función objetivo, y, por lo tanto, sólo “visita” algunas de las soluciones básicas factibles hasta llegar a la solución óptima. Ejercicio: Resuelva el problema de los transformadores (modelo No 1) mediante el método SIMPLEX. 4.5. EL MÉTODO ARTIFICIALES SIMPLEX CON VARIABLES El método SIMPLEX necesita que la base inicial sea la matriz idéntica para poder arrancar. El problema general de PL es: MAX ( MIN ) Z = CX sujeto a : AX(≤ , = , ≥ )b (3.12) X≥0 Si todas las restricciones son de ≤ , el método SIMPLEX inicia con la base igual a la matriz idéntica, formada por las columnas de las variables de holgura. Pero si existe por lo menos una restricción de = ó de ≥ , la matriz idéntica no aparece en forma automática y por lo tanto debe crearse mediante la adición de variables artificiales, salvo algunas excepciones (Ver Ejemplos 3.2 y 3.3) 4.5.1. El Método de la “Gran M” Ejemplo 3.1. USO DE VARIABLES ARTIFICIALES Z = 2X1 + 3X 2 Maximizar Sujeto a : X1 + 2X 2 ≤ 4 X1 + X 2 = 3 (X1, X 2 ) ≥ 0 La forma estándar de éste modelo es la siguiente: Z = 2X1 + 3X 2 Maximizar Sujeto a : X1 + 2X 2 + S1 = 4 X1 + X 2 =3 (X1 , X 2 , S1 ) ≥ 0 Como se observa, no aparece la submatriz idéntica de orden 2 en la matriz A, ya que solo fue necesario adicionar la variable de holgura S1 para obtener la forma estándar del modelo. Por lo tanto, la submatriz idéntica debe crearse artificialmente así: Maximizar Z = 2X1 + 3X 2 Sujeto a : X1 + 2X 2 + S1 X1 + X 2 =4 +A =3 (X1 , X 2 , S1 ) ≥ 0; A variable artificial Dado que antes de adicionar la variable artificial A ya la igualdad estaba conformada, la única forma de que el problema original tenga solución es que la variable artificial sea igual a cero en la solución óptima, lo cual se logra la mayoría de las veces sacándola de la base. Así, el método debe obligar a que la variable A salga de la base y esto puede conseguirse penalizándola en la función objetivo con un valor muy grande positivo (si se está minimizando) o muy pequeño negativo (si se está maximizando). Así, surge el método de la “Gran M”, el cual transformaría el modelo anterior en: Maximizar Z = 2 X 1+3 X 2 − MA Sujeto a : X 1 + 2 X 2 + S X1 + X 2 =4 +A=3 (X 1 ,X 2 , S) ≥ 0; A variableartificial 11 Se ha cambiado S1 por S por existir sólo una variable de holgura en este modelo. 11 116 Introducción a la Modelación Matemática y Optimización En el modelo anterior M es un valor real positivo muy grande (M >> 0 ó ( M → +∞) ). Los tableros, por lo tanto, serían los siguientes: VARIABLES BÁSICAS S A Cj 2 3 CB XB X1 X2 S A θ 0 -M 4 3 1 1 2 1 1 0 0 1 4/2 = 2 3/1 = 3 -3M -M -M-2 -M -M-3 0 0 -M 0 2 1 ½ ½ 1 0 ½ -½ 0 1 6-M 3 −M 2 2 - 1 −M 2 2 3 0 3 +M 2 2 3 +M 2 2 -M 0 1 2 0 1 1 0 1 -1 -1 2 7 2 0 3 0 1 1 1 1+M Zj Z j -C j X2 A 3 -M Zj Z j -C j X2 X1 Zj Z j -C j 3 2 0 -M 2/ ½ = 4 1/ ½ = 2 Luego la solución óptima única es: X1 = 2 X2 =1 S =0 A = 0 (obviamente ) Z max. = 7 Obsérvese que la variable artificial sale de la base en el segundo tablero. Una vez salga, no podrá volver a entrar a la base, y puede incluso ignorarse esta columna para encontrar la solución óptima.12 Debe además recordarse que M siempre es un valor muy grande positivo ( M → +∞) y, por lo tanto, su magnitud domina sobre cualquier otro número. 12 Sin embargo, es útil mantener las columnas de las variables artificiales para determinar la inversa de la base óptima, ya que ellas formaron la matriz idéntica inicial. Ejemplo 3.2 : INFINITAS SOLUCIONES ÓPTIMAS Minimizar Z = 2 X 1 + 3X 2 + X 3 Sujeto a : X 1 + 4 X 2 + 2 X 3 3X1 + 2 X 2 (X1, X 2 , X 3 ) ≥8 ≥6 ≥0 Este ejemplo ilustra dos aspectos importantes: Primero, no es necesario adicionar variables artificiales cuando el modelo contiene por lo menos una restricción de ≥ ó de =. En este ejemplo, la variable X3 aparece solamente en la primera restricción y basta con dividir ésta entre 2 para que pueda formar parte de la base inicial. Por lo tanto, solo se necesitaría una variable artificial, adicionada en la 2ª restricción. Segundo, como se observará a continuación, el método SIMPLEX identifica cuando el modelo presenta múltiples soluciones óptimas. El modelo quedaría entonces así: Minimizar Z = 2 X 1 + 3 X 2 + X 3 + MA Sujeto a : 1 X 1 + 2 X 2 + X 3 − S1 =4 2 3X1 + 2 X 2 − S2 + A = 6 ( X 1 , X 2 , X 3 , S1 , S 2 ) ≥ 0; A var iable artificial Los tableros correspondientes serían los siguientes: VAR. BÁSICAS X3 A Cj 2 3 CB XB X1 X2 1 M 4 6 ½ 3 ½ +3M Zj 0 0 M X3 S1 S2 A θ 2 2 1 0 -1 0 0 -1 0 1 8 2 - 3 M + 3M 2 2+2M -1+2M 1 0 -1 -1 -M -M M 0 3 2 0 1 5/3 2/3 1 0 -1 0 1/6 -1/3 -1/6 1/3 7 2 0 3 0 1 0 -1 -1 -½ -½ ½ ½ -M 9/5 4/5 0 1 1 0 3/5 -2/5 -3/5 2/5 1/10 -2/5 -1/10 2/5 7 2 0 3 0 1 0 -1 -1 -½ -½ ½ ½-M 4+6M Z j -C j X3 X1 1 2 Zj Z j -C j X2 X1 Zj Z j -C j 3 2 1 1.8 3 Sol. óptima No 1 Sol. óptima No 2 Como puede observarse, en el tablero No 2 ya se obtiene una solución óptima, pero con la característica de que la variable no básica X2 tiene su (Z j -C j ) =0; por lo tanto, ella 118 Introducción a la Modelación Matemática y Optimización puede entrar a la base sin modificar el valor mínimo de la función objetivo y generar una solución óptima diferente. Estas soluciones son: Solución Optima N º1 X1 = 2 Solución Optima N º 2 X1 = 4 / 5 X2 = 0 X2 = 9/5 X3 = 3 X3 = 0 S1 = S 2 = 0 S1 = S 2 = 0 Z mín = 7 Z mín = 7 En realidad, cualquier combinación lineal convexa de estas dos soluciones es óptima también, y así se obtiene la solución óptima general del modelo: X1 X 2 X 3 = α S1 S 2 2 0 3 + β 0 0 4 5 9 5 0 ; 0 ≤ α ≤ 1; 0 ≤ β ≤ 1 α + β = 1; (α , β ) ∈ ℜ 0 0 Por ejemplo, si α = 0.5 y β = 0.5, entonces se obtiene la solución óptima (nó básica): X1 = 7/5; X2 = 9/10; X3 = 3/2; S1 = S2 = 0; Zmáx = 7. En conclusión, el método SIMPLEX detecta infinitas soluciones si por lo menos una de las variables no básicas presenta su (Z j -C j ) = 0 en un tablero óptimo. El número de soluciones básicas factibles óptimas será igual al número de variables no básicas que presenten dicha característica mas uno, y la solución general se escribe como la combinación lineal convexa de dichas soluciones. Este hecho hace que sea difícil que un programa de computador detecte la presencia de soluciones óptimas múltiples, ya que, debido a errores de redondeo, rara vez se tendría un (Z j -C j ) exactamente igual a cero. Sin embargo, esto se puede lograr estableciendo rangos de tolerancia para los números muy pequeños considerados iguales a cero. Ejemplo 3.3 : FUNCIÓN OBJETIVO NO ACOTADA Maximizar Z = 1.2 X 1 + X 2 + 0.8 X 3 Sujeto a : X 1 + X 2 ≤ 50000 0.4 X 1 + 0.6 X 2 + X 3 ≥ 27000 (X1, X 2 , X 3 ) ≥ 0 La forma estándar del modelo anterior es: Maximizar Z = 1.2 X 1 + X 2 + 0.8 X 3 X1 + X 2 Sujeto a : + S1 = 50000 0.4 X 1 + 0.6 X 2 + X 3 − S 2 = 27000 ( X1, X 2 , X 3 , S1, S 2 ) ≥ 0 En este caso tampoco se requiere una variable artificial en la 2ª restricción, ya que la variable X3 puede ser básica inicial. Así: Var. Básicas S1 X3 Cj 1.2 1.0 0.8 0 CB XB X1 X2 X3 S1 S2 θ 0 0.8 50000 27000 1 0.4 1 0.6 0 1 1 0 0 -1 50000 67500 21600 0.32 -0.88 0.48 -0.52 0.8 0 0 0 -0.8 -0.8 50000 70000 1 0 1 0.2 0 1 1 -0.4 0 -1 65600 1.2 0 1.36 0.36 0.8 0 0.88 0.88 -0.8 -0.8 Zj Z j −Cj X1 X3 Zj Z j −Cj 1.2 0.8 0 En el último tablero, S2 trata de entrar a la base, pero la regla del cociente falla, entonces como no hay ninguna variable a salir de la base se concluye que hay FUNCIÓN OBJETIVO NO ACOTADA.13 El caso de función objetivo no acotada es un caso donde no existe solución ÓPTIMA, aunque si existen SOLUCIONES FACTIBLES, a diferencia del caso de “NINGUNA SOLUCIÓN FACTIBLE”. En la práctica puede presentarse este caso cuando se ha olvidado incluir en el modelo alguna restricción. En este problema faltó acotar la variable X3. Obsérvese que este modelo corresponde al caso de la refinería (Problema No. 16 de la colección de problemas), donde la demanda es mínima y lo que puede comprarse a otros proveedores es ilimitado, lo cual 13 El problema se presenta en la 2ª restricción. La variable X3 está acotada por debajo pero no por encima y así su valor puede hacerse tan grande como se desee, haciendo crecer indefinidamente la función objetivo. La variable de exceso S2 trata de entrar a controlar esto, pero obviamente no puede. 120 Introducción a la Modelación Matemática y Optimización obviamente no es real. La corrección a esta situación sería limitar la cantidad de barriles de gasolina que pueden comprarse a otros proveedores, bien sea por su capacidad limitada, por la demanda finita, o por cualquier otra razón. Esto permitiría encontrar una solución óptima en este problema. Ejemplo 3.4: NINGUNA SOLUCIÓN FACTIBLE Maximizar Z = 10 X 1 + 15 X 2 + 12 X 3 5 X 1 + 3X 2 + X 3 Sujeto a : ≤ 144 − 5 X 1 + 6 X 2 + 15 X 3 ≤ 240 2X1 + X 2 + X 3 ≥ 80 (X1, X 2 , X 3 ) ≥ 0 Forma estándar con variables artificiales: Maximizar Z = 10 X 1 + 15 X 2 + 12 X 3 − MA 5 X 1 + 3 X 2 + X 3 + S1 Sujeto a : − 5 X 1 + 6 X 2 + 15 X 3 = 144 + S2 2X1 + X 2 + X 3 = 240 − S 3 + A = 80 ( X 1 , X 2 , X 3 , S1 , S 2 , S 3 ) ≥ 0; A var iable artificial En este caso los tableros Simples serían los siguientes: 15 12 0 C j → 10 Var. Básicas S1 S2 A X1 X2 X3 S1 S2 S3 A θ 0 0 -M 144 240 80 5 -5 2 3 6 1 1 15 1 1 0 0 0 1 0 0 0 -1 0 0 1 28.8 -80M -2M -2M-10 -M -M-15 -M -M-12 0 0 0 0 M M -M 0 144/5 384 112/5 1 0 0 3/5 9 -1/5 M +6 5 1/5 16 3/5 1/5 1 -2/5 2M +2 5 2M +2 5 3/16 1/16 -7/16 0 1 0 0 0 -1 0 0 1 0 0 M M -M 0 -1/80 1/16 -3/80 3M 5 + 80 8 3M 5 + 80 8 0 0 -1 0 0 1 M M -M 0 10 0 -M Zj − 112 M + 288 5 Z j −Cj Zj Z j −Cj −M XB Z j −Cj X1 X3 A 0 CB Zj X1 S2 A 0 10 12 -M 10 0 24 24 8 1 0 0 - 8 M + 528 10 M − 9 5 − 3M +2 5 − 3M − 10 5 39/80 9/16 -43/80 0 1 0 43M 93 + 80 8 43M 27 − 80 8 12 0 7 M 21 + 16 8 7 M 21 + 16 8 NO 40 144 24 37.3 Obsérvese que en el tablero No. 3 se cumple el criterio de parada (O sea Zj – Cj ≥ 0 ∀j), pero existe una variable artificial en la base a nivel positivo (A = 8); por lo tanto, el problema NO tiene SOLUCIÓN FACTIBLE ALGUNA. Obsérvese, además, que en el primer tablero se presenta un caso en el cual no debe tenerse en cuenta el cociente, ya que y sk = −5 < 0 . 4.5.2. El método de las Dos Fases14 Este método elimina el problema de trabajar con la “Gran M” y los errores de redondeo asociados. El método comprende las siguientes fases: FASE I: Trata de encontrar una solución básica factible inicial. Aquí siempre se minimiza la suma de las variables artificiales, independientemente de si el problema es de MAXIMIZACIÓN o de MINIMIZACIÓN, sujeto a las restricciones del problema original. Hay dos posibilidades: a) La suma óptima de las variables artificiales es igual a cero, entonces se continua con la fase II. b) Si el valor óptimo de la función objetivo es mayor que cero, entonces el problema original no tiene ninguna solución factible. FASE II: Se cambia la función objetivo a la función objetivo original y se utiliza la solución básica factible encontrada en la fase I, se comprueba el criterio de parada y se continúa iterando normalmente, si es necesario. Ejemplo 4.5 [páginas 87 y 92 de Taha (1997)]: Minimizar Z = 4X1 + X 2 Sujeto a : 3X 1 + X 2 = 3 4 X1 + X 2 ≥ 6 X1 + 2 X 2 ≤ 4 ( X1, X 2 ) ≥ 0 El modelo se transforma como sigue para iniciar el método de las dos fases: 14 Ver Taha (1997), página 92 122 Introducción a la Modelación Matemática y Optimización Minimizar Z ' = A1 + A2 3 X 1 + X 2 + A1 sujeto a : 4 X 1 + 3X 2 =3 − S1 + A2 X1 + 2X 2 =6 + S2 = 4 ( X 1 , X 2 , S1 , S 2 ) ≥ 0; A1 , A2 Var. Artificiales Cj → 0 0 0 0 1 1 Var. Básicas CB XB X1 X2 S1 S2 A1 A2 θ A1 A2 S2 1 1 0 3 6 4 3 4 1 1 3 2 0 -1 0 0 0 1 1 0 0 0 1 0 3/3 = 1 6/4 = 1.5 4/1 = 4 9 7 7 4 4 -1 -1 0 0 1 0 1 0 1 2 3 1 0 0 1/3 5/3 5/3 0 -1 0 0 0 1 1/3 -4/3 -1/3 0 1 0 2 0 0 5/3 5/3 -1 -1 0 0 -4/3 -7/3 1 0 Cj 3/5 6/5 1 4 1 0 0 1 0 1 0 0 1/5 -3/5 1 0 0 0 1 0 3/5 -4/5 1 0 -1/5 3/5 -1 18/5 4 0 1 0 1/5 1/5 0 0 2/5 9/5 1 1 0 0 0 1 0 0 0 1 -1/5 3/5 1 17/5 4 0 1 0 0 0 -1/5 -1/5 Zj Zj −Cj X1 A2 S2 0 1 0 Zj Z j −Cj X1 X2 S2 4 1 0 Zj Z j −Cj X1 X2 S1 Zj Z j −Cj 4 1 0 Solución Óptima Única → X *1 = 2 / 5, X *2 = 9 / 5, Z *mín = 17 / 5 3 1.2 1.8 Fin Fase I 3 NO 1 Fin Fase II