2.1. Introducción.
Muchas personas clasifican el desarrollo de la Programación Lineal (PL) entre los avances científicos más importantes de mediados del siglo XX. En la actualidad es una herramienta común que ha ahorrado miles o millones de dólares a muchas compañías y negocios, incluyendo industrias medianas en distintos países del mundo. ¿Cuál es la naturaleza de esta notable herramienta y qué tipo de problemas puede manejar? Expresado brevemente, el tipo más común de aplicación abarca el problema general de asignar recursos limitados entre actividades competitivas de la mejor manera posible (es decir, en forma óptima). Este problema de asignación puede surgir cuando deba elegirse el nivel de ciertas actividades que compiten por recursos escasos para realizarlas. La variedad de situaciones a las que se puede aplicar esta descripción es sin duda muy grande, y va desde la asignación de instalaciones productivas a los productos, hasta la asignación de los recursos nacionales a las necesidades de un país; desde la planeación agrícola, hasta el diseño de una terapia de radiación; etc. No obstante, el ingrediente común de todas estas situaciones es la necesidad de asignar recursos a las actividades.
Con frecuencia, seleccionar una alternativa incluye satisfacer varios criterios al mismo tiempo. Por ejemplo, cuando se compra una pieza de pan se tiene el criterio de frescura, tamaño, tipo (blanco, integral u otro), costo y rebanado o sin rebanar. Se puede ir un paso más adelante y dividir estos criterios en dos categorías: restricciones y el objetivo. Las restricciones son las condiciones que debe satisfacer una solución que está bajo consideración. Si más de una alternativa satisfacen todas las restricciones, el objetivo se usa para seleccionar entre todas las alternativas factibles. Cuando se elige una pieza de pan, pueden quererse 100 gr. de pan blanco rebanado y hecho no antes de ayer. Si varias marcas satisfacen estas restricciones, puede aplicarse el objetivo de un costo mínimo y escoger las más barata.
Existen muchos problemas administrativos que se ajustan a este molde de tratar de minimizar o maximizar un objetivo que está sujeto a una lista de restricciones. un corredor de inversiones, por ejemplo, trata de maximizar el rendimiento sobre los fondos invertidos pero las posibles inversiones están restringidas por las leyes y las políticas bancarias. Un hospital debe planear que las comidas para los pacientes satisfagan ciertas restricciones sobre sabor, propiedades nutritivas, tipo y variedad, al mismo tiempo que se trata de minimizar el costo. Un fabricante, al planear la producción futura, busca un costo mínimo al mismo tiempo cómo cumplir restricciones sobre la demanda del producto, la capacidad de producción, los inventarios, el nivel de empleados y la tecnología. La PL se ha aplicado con éxito a estos y otros problemas.
La PL es una técnica determinista, no incluye probabilidades y utiliza un modelo matemático para describir el problema. El adjetivo lineal significa que todas las funciones matemáticas del modelo deben ser funciones lineales. En este caso, la palabra programación no se refiere a programación en computadoras; en esencia es un sinónimo de planeación. Así, la PL trata la planeación de las actividades para obtener un resultado óptimo, esto es, el resultado que mejor alcance la meta especificada (según el modelo) entre todas las opciones de solución. Aunque la asignación de recursos a las actividades es la aplicación más frecuente, la PL tiene muchas otras posibilidades. De hecho, cualquier problema cuyo modelo matemático se ajuste al formato general del modelo de PL es un problema de PL.
Supuestos de la programación lineal.
Existe un número de suposiciones realizadas en cada modelo. La utilidad de un modelo está directamente relacionada con la realidad de los supuestos.
El primer supuesto tiene que ver con la forma lineal de las funciones. Ya que el objetivo es lineal, la contribución al objetivo de cualquier decisión es proporcional al valor de la variable de decisión. Producir dos veces más de producto producirá dos veces más de ganacia, contratando el doble de páginas en las revistas doblará el costo relacionado con las revistas. Es una Suposición de Proporción.
Además, la contribución de una variable a la función objetivo es independiente de los valores de las otras variables. La ganancia con una computadora Notebook es de $10,750.00, independientemente de cuantas computadoras Desktop se producen. Este es un Supuesto de Adición.
Análogamente, ya que cada restricción es lineal, la contribución de cada variable al lado izquierdo de cada restricción es proporcional al valor de la variable e independiente de los valores de cualquier ora variable.
Estas suposiciones son bastante restrictivas. Veremos, sin embargo, que ser claros y precisos en la formulación del modelo puede ayudar a manejar situaciones que parecen en un comienzo como lejanos a estos supuestos.
El siguiente supuesto es la Suposición de ser Divisible. Es posible tomar una fracción de cualquier variable. Por ejemplo, en un problema de marketing, qué significa comprar 2.67 avisos en la televisión?. Es posible que la suposición de ser divisible sea insatisfecha en este ejemplo. O puede ser que tales unidades de 2.67 avisos correspondan a 2,666.7 minutos de avisos, en cuyo caso redondeando la solución serían 2,667 minutos con una mínima duda que esté cercana a la solución óptima. Si la suposición de divisible no es válida, entonces se usará la técnica de Programación Lineal Entera.
La última suposición es el Supuesto de Certeza. La Programación Lineal no permite incertidumbre en los valores.
Será difícil que un problema cumpla con todas las suposiciones de manera exacta. Pero esto no negará la factibilidad de uso del modelo. Un modelo puede ser aún útil aunque difiera de la realidad, si se es consistente con los requerimientos más estrictos dentro del modelo y se tiene claras sus limitaciones al interpretar los resultados.
Existen limitaciones prácticas para el uso de la PL. Una se relaciona con los cálculos. En general se necesita una computadora. Desafortunadamente, las calculadoras, aun las programables, son poco útiles, puesto que la PL tiene necesidad de gran cantidad de memoria o almacenamiento. Si no se tiene acceso a una computadora, se estará limitado a problemas muy sencillos. La otra limitación se refiere al costo de formular un problema de PL. En teoría, podría usarse PL, por ejemplo, para hacer las compras semanales de abarrotes. Sin embargo, sería necesario conocer todas las compras posibles que pueden realizarse (éstas serían las variables), además de cada restricción como sabor, número de comidas, vitaminas y proteínas. Es obvio que el costo de obtener todos estos datos excede lo que se podría ahorrar si se hicieran las compras óptimas. Antes de emprender una aplicación de PL, debe considerarse la disponibilidad y el costo de los datos necesarios.
2.2. Formulación de modelos de Programación Lineal.
Aunque se ponga en duda, la parte más difícil de PL es reconocer cuándo ésta puede aplicarse y formular el problema matemáticamente. Una vez hecha esa parte, resolver el problema casi siempre es fácil.
Para formular un problema en forma matemática, deben expresarse afirmaciones lógicas en términos matemáticos. Esto se realiza cuando se resuelven "problemas hablados" al estudiar un curso de álgebra. Algo muy parecido sucede aquí al formular las restricciones. Por ejemplo, considérese la siguiente afirmación: A usa 3 horas por unidad y B usa 2 horas por unidad. Si deben usarse todas las 100 horas disponibles, la restricción será:
Sin embargo, en la mayoría de las situaciones de negocios, no es obligatorio que se usen todos los recursos (en este caso, horas de mano de obra). Más bien la limitación es que se use, cuando mucho, lo que se tiene disponible. Para este caso, la afirmación anterior puede escribirse como una desigualdad:
Para que sea aceptable para PL, cada restricción debe ser una suma de variables con exponente 1. Los cuadrados, las raíces cuadradas, etc. no son aceptables, ni tampoco los productos de variables. Además, la forma estándar para una restricción pone a todas las variables del lado izquierdo y sólo una constante positiva o cero del lado derecho. Esto puede requerir algún reacomodo de los términos. Si, por ejemplo, la restricción es que A debe ser por los menos el doble de B, esto puede escribirse como:
Nótese que pueden moverse términos de un lado a otro de las desigualdades como si fuera un signo de igualdad. Pero al multiplicar una desigualdad por -1, el sentido de esta desigualdad se invierte. Puede ser necesario hacer esto para que los coeficientes del lado derecho sean positivos. Por ejemplo, si se quiere que A sea por lo menos tan grande como B - 2, entonces:
A | ≥ | B - 2 |
ó A - B | ≥ | -2 |
por último B - A | ≥ | 2 |
Una nota final sobre desigualdades: es sencillo convertir una desigualdad en una ecuación. Todo lo que se tiene que hacer es agregar (o restar) una variable extra. Por ejemplo:
en donde S representa la diferencia, o la holgura, entre B - A y 2. S se llama variable de holgura. Por otro lado, se restaría una variable de superávit en el caso siguiente:
Algunos métodos de solución (como el Método Símplex) y la mayoría de los programas de computadora (como el MathProg, que viene en el ORCourseware, que acompaña al libro "Introducción a la Investigación de Operaciones" de los autores Hillier y Lieberman) requieren que todas las desigualdades se conviertan en igualdades.
La metodología de PL requiere que todas las variables sean positivas o cero, es decir, no negativas. Para la mayoría de los problemas esto es real, no se querría una solución que diga: prodúzcanse menos dos cajas o contrátense menos cuatro personas.
Mientras que no existe un límite en el número de restricciones que puede tener un problema de PL, sólo puede haber un objetivo. La forma matemática del objetivo se llama función objetivo. Debe llevar consigo el maximizar o minimizar alguna medida numérica. Podría ser maximizar el rendimiento, la ganancia, la contribución marginal o los contactos con los clientes. Podría ser minimizar el costo, el número de empleados o el material de desperdicio. Con frecuencia el objetivo es evidente al observar el problema.
Como el valor de la función objetivo no se conoce hasta que se resuelve el problema, se usa la letra Z para representarlo. La función objetivo tendrá, entonces, la forma:
Se analiza una aplicación para ilustrar el formato de los problemas de Programación Lineal.
Planeación de la fuerza de trabajo.
El gerente de personal de "La Tortuga Veloz, S.A. de C.V.", está analizando la necesidad de mano de obra semi calificada durante los próximos seis meses. Se lleva 1 mes adiestrar a una persona nueva. Durante este período de entrenamiento un trabajador regular, junto con uno en adiestramiento (aprendiz), producen el equivalente a lo que producen 1.2 trabajadores regulares. Se paga $500.00 mensuales a quien está en entrenamiento, mientras que los trabajadores regulares ganan $800.00 mensuales. La rotación de personal entre los trabajadores regulares es bastante alta, del 10% mensual.
El gerente de personal debe decidir cuántas personas necesita contratar cada mes para adiestramiento. En seguida se da el número de meses-hombre necesarios. También se desea tener una fuerza de trabajo regular de 110 al principio de julio. En cuanto al 1º de enero, hay 58 empleados regulares.
Mes | Meses-hombre requeridos | Mes | Mes Meses-hombre requeridos |
Enero | 60 | Abril | 80 |
Febrero | 50 | Mayo | 70 |
Marzo | 60 | Junio | 100 |
Este problema tiene un aspecto dinámico, ya que la fuerza de trabajo en cualquier mes depende de la fuerza de trabajo regular y en adiestramiento del mes anterior. Para cualquier mes, el número total de meses-hombre disponibles se puede expresar como sigue:
en donde: Ri = número de trabajadores regulares al principio del mes
Ai = número de aprendices contratados en el mes.
Entonces los requerimientos de cada mes pueden expresarse por las restricciones:
enero | R1 + 0.2A1 | ≥ | 60 |
febrero | R2 + 0.2A2 | ≥ | 50 |
marzo | R3 + 0.2A3 | ≥ | 60 |
abril | R4 + 0.2A4 | ≥ | 80 |
mayo | R5 + 0.2A5 | ≥ | 70 |
junio | R6 + 0.2A6 | ≥ | 100 |
julio (principio) | R7 | ≥ | 110 |
Debido a la rotación, el 10% de los trabajadores regulares se van cada mes. Así, el número de trabajadores regulares disponibles, por ejemplo, al principio de febrero sería:
En la misma forma, pueden escribirse las ecuaciones para el número de trabajadores disponibles al principio de cada mes:
enero | R1 | = | 58 (dado) |
febrero | R2 | = | 0.9R1 + A1 |
marzo | R3 | = | 0.9R2 + A2 |
abril | R4 | = | 0.9R3 + A3 |
mayo | R5 | = | 0.9R4 + A4 |
junio | R6 | = | 0.9R5 + A5 |
julio (principio) | R7 | = | 0.9R6 + A6 |
El objetivo global del gerente de personal es minimizar el costo. La función objetivo es:
Ahora se tiene el problema en el formato general de PL con 13 variables y 14 restricciones.
Los tomadores de decisiones en las empresas establecen criterios que debe cumplir una solución y, después, buscan esa solución. En PL, los criterios se expresan como restricciones. Se exploran las soluciones posibles y se usa la función objetivo para elegir la mejor de entre aquellas que cumplen con los criterios. La PL se denomina técnica de optimización, pero optimiza sólo dentro de los límites de las restricciones. En realidad es un método de satisfacción de criterios.
Forma estándar de los modelos de Programación Lineal.
Supóngase que existe cualquier número (digamos m) de recursos limitados de cualquier tipo, que se pueden asignar entre cualquier número (digamos n) de actividades competitivas de cualquier clase. Etiquétense los recursos con números (1, 2, ..., m) al igual que las actividades (1, 2, ..., n). Sea xj (una variable de decisión) el nivel de la actividad j, para j = 1, 2, ..., n, y sea Z la medida de efectividad global seleccionada. Sea cj el incremento que resulta en Z por cada incremento unitario en xj (para j = 1, 2, ..., n). Ahora sea bi la cantidad disponible del recurso i (para i = 1, 2, ..., m). Por último defínase aij como la cantidad de recurso i que consume cada unidad de la actividad j (para i = 1, 2, ..., m y j = 1, 2, ..., n). Se puede formular el modelo matemático para el problema general de asignar recursos a actividades. En particular, este modelo consiste en elegir valores de x1, x2, ..., xn para:
sujeto a las restricciones:
a11x1 + a12x2 + ... + a1nxn ≤ b1 |
a21x1 + a22x2 + ... + a2nxn ≤ b2 |
am1x1 + am2x2 + ... + amnxn ≤ bm |
y x1 ≥ 0, x2 ≥ 0, ..., xn ≥ 0 |
Ésta se llamará nuestra forma estándar (porque algunos libros de texto adoptan otras formas) para el problema de PL. Cualquier situación cuya formulación matemática se ajuste a este modelo es un problema de PL.
En este momento se puede resumir la terminología que usaremos para los modelos de PL. La función que se desea maximizar, c1x1 + c2x2 + ... + cnxn, se llama función objetivo. Por lo general, se hace referencia a las limitaciones como restricciones. Las primeras m restricciones (aquellas con una función del tipo ai1x1 + ai2x2 + ... + ainxn, que representa el consumo total del recurso i) reciben el nombre de restricciones funcionales. De manera parecida, las restricciones xj ≥ 0 se llaman restricciones de no negatividad. Las variables xj son las variables de decisión. Las constantes de entrada, aij, bi, cj, reciben el nombre de parámetros del modelo.
Otras formas de modelos de Programación Lineal.
Es conveniente agregar que el modelo anterior no se ajusta a la forma natural de algunos problemas de programación lineal. Las otras formas legítimas son las siguientes:
Cualquier problema que incluya una, varias o todas estas formas del modelo anterior también se clasifica como un problema de PL, siempre y cuando éstas sean las únicas formas nuevas introducidas. Puede ser que la interpretación que se ha dado de asignación de recursos limitados entre actividades que compiten no se aplique, pero independientemente de la interpretación o el contexto, lo único que se necesita es que la formulación matemática del problema se ajuste a las formas permitidas. Se verá que estas otras cuatro formas legales se pueden reescribir en una forma equivalente para que se ajuste al modelo que se presentó. Entonces, todo problema de PL se puede poner en nuestra forma estándar si se desea.
2. Programación Lineal.
2.3. Solución Gráfica de Modelos Lineales con dos Variables.
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 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
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:
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:
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:
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.
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, 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
Resumen del método gráfico.
Para resolver gráficamente problemas de programación lineal:
Grafíquese cada restricción. 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
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:
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:
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 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) 28A + 70B = 280
Multiplíquese la ecuación (2) por – 4: (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 |
CASOS ESPECIALES.
Múltiples soluciones.
Maximizar | Z | = | 3x1 | + | 2x2 | ||
sujeta a | x1 | £ | 4 | ||||
x2 | £ | 12 | |||||
3x1 | + | 2x2 | £ | 18 | |||
x1 ³ 0 | x2 ³ 0 |
Ninguna solución factible.
Maximizar | Z | = | 3x1 | + | 2x2 | ||
sujeta a | 1/40x1 | + | 1/60x2 | £ | 1 | ||
1/50x 1 |
+ |
1/50x 2 |
£ |
1 |
|||
x 1 |
³ |
30 |
|||||
x2 | ³ | 20 | |||||
x1 ³ 0 | x2 ³ 0 |
Área o Región de Soluciones Factibles no Acotada.
Maximizar | Z | = | 2x1 | – | x2 | ||
sujeta a | x1 | – | x2 |
£ |
1 |
||
2x 1 |
+ |
x 2 |
³ |
6 |
|||
x 1 ³ 0 |
x 2 ³ 0 |
2.4. Método Símplex.
El método símplex es un algoritmo.
De hecho, cualquier procedimiento iterativo de solución es un algoritmo.
Entonces, un algoritmo es simplemente un proceso en el que se repite (se itera)
un procedimiento sistemático una y otra vez hasta obtener el resultado deseado.
Cada vez que se lleva a cabo el procedimiento sistemático se realiza una
iteración. En consecuencia, un algoritmo sustituye un problema difícil por una
serie de problemas fáciles.
Además de las iteraciones, los
algoritmos incluyen un procedimiento para iniciar y un criterio para determinar
cuándo detenerse, como se resume enseguida:
El método símplex es un procedimiento
algebraico en el que cada iteración contiene la solución de un sistema de
ecuaciones para obtener una nueva solución a la que se le aplica la prueba de
optimalidad. No obstante, también tiene una interpretación geométrica muy útil.
Para ilustrar los conceptos geométricos generales se empleará la solución
gráfica del siguiente problema:
Solución por el método gráfico:
En la figura anterior pueden observarse los puntos
de intersección que son las soluciones en los vértices del problema. Los cinco
puntos que se encuentran en los vértices de la región factible,
¾
(0,0), (0,6), (2,6), (4,3), (4,0) son las soluciones factibles en los
vértices. Algunas de estas soluciones factibles en un vértice son
adyacentes, en el sentido de que están conectadas por una sola orilla (segmento
de línea) de la frontera de la región factible; esto es, tanto (0,6) como (4,3)
son adyacentes a (2,6). Las tres propiedades clave de las soluciones factibles
en los vértices y que forman el fundamento del método símplex se resumen como
sigue:
Propiedades de las soluciones factibles en un
vértice:
1a. Si
existe exactamente una solución óptima, entonces debe ser una solución factible
en un vértice.
1b. Si
existen soluciones óptimas múltiples, entonces al menos dos de ellas deben ser
soluciones factibles en vértices adyacentes.
2.
Existe sólo un número finito
de soluciones factibles en los vértices adyacentes.
3.
Si una solución en un vértice
es igual o menor (según el valor de Z) que todas las soluciones factibles en los
vértices adyacentes a ella, entonces es igual o mejor que todas las demás
soluciones en los vértices; es decir, es óptima.
La propiedad 1 significa que la
búsqueda de la solución óptima se puede reducir a la consideración de sólo las
soluciones factibles en los vértices, de manera que sólo existe un número finito
de soluciones que es necesario tomar en cuenta (propiedad 2). La propiedad 3
proporciona una prueba de optimalidad muy conveniente.
El método símplex explota estas tres
propiedades al examinar nada más unas cuantas soluciones factibles en vértices
prometedores y al detenerse en cuanto una de ellas pasa la prueba de optimalidad.
En particular, se traslada repetidamente (en forma iterativa) de una solución
factible en un vértice a otra, adyacente y mejor. Esto se puede realizar en
forma muy eficiente hasta que la solución actual no tiene soluciones factibles
en vértices adyacentes que sean mejores. Este procedimiento se resume como sigue:
Bosquejo del método símplex:
1.
Paso inicial: inicio en una
solución factible en un vértice.
2.
Paso iterativo: traslado a una
mejor solución factible en un vértice adyacente. (Repítase este paso las veces
que sea necesario).
3.
Prueba de optimalidad: la
solución factible en un vértice es óptima cuando ninguna de las soluciones en
vértices adyacentes a ella sean mejores.
Este bosquejo muestra la esencia del
método símplex,. En el caso del ejemplo, al utilizar estas reglas de selección
el método símplex procede como sigue:
1.
Paso inicial: comienza en
(0,0).
2a.
Iteración 1: se mueve de (0,0) a (0,6)
2b.
Iteración 2: se mueve de (0,6) a (2,6).
3.
Prueba de optimalidad: ni
(0,6) ni (4,3) son mejores que (2,6), entonces se detiene, (2,6) es óptima.
Preparación para el método símplex.
En el procedimiento algebraico es
mucho más conveniente manejar ecuaciones que desigualdades. Así, el primer paso
para preparar el método símplex es convertir las restricciones funcionales de
desigualdad en restricciones equivalentes. (Las restricciones de no negatividad
se pueden dejar como desigualdades porque el algoritmo las usa sólo
indirectamente). Esta conversión se hace mediante la introducción de
variables de holgura. Considérese la primera restricción funcional del
ejemplo:
x1
£
4
La variable de holgura para esta restricción es x3,
que no es otra cosa que la holgura entre los dos lados de la desigualdad.
Entonces:
x1 + x3 = 4
La restricción original x1
£
4 se cumple siempre que x3
³
0. Por tanto, x1
£
4 es totalmente equivalente al conjunto de restricciones
x1 + x3 = 4
y
x3
³
0,
de manera que se usará este conjunto por resultar
más conveniente.
Al introducir variables de holgura en
las otras restricciones en forma parecida, el modelo de programación lineal
original para este ejemplo se puede sustituir por el modelo equivalente:
Maximizar Z = 3x1
+ 5x2,
sujeta a
x1 |
|
|
+ |
x3 |
|
|
|
|
= |
4 |
|
|
2x2 |
|
|
+ |
x4 |
|
|
= |
10 |
3x1 |
+ |
2x2 |
|
|
|
|
+ |
x5 |
= |
18 |
|
|
xj |
³ |
0 |
para j = 1, 2, …, 5 |
Aun cuando este problema es idéntico
al anterior, esta forma es mucho más conveniente para la manipulación algebraica
y la identificación de las soluciones factibles en los vértices. Ésta se llama
la forma de igualdades del problema, para diferenciarla de la forma de
desigualdades original y poder introducir la siguiente definición:
Una solución aumentada es una solución para
un problema que originalmente se encontraba en forma de desigualdades y que se
ha aumentado con los valores correspondientes de las variables de holgura para
cambiar el problema a la forma de igualdades.
Por ejemplo, al aumentar la solución
(3,2) en el ejemplo, se obtiene la solución aumentada (3,2,1,8,5), puesto que
los valores correspondientes de las variables de holgura son x3 = 1,
x4 = 8, x5 = 5.
Una solución básica es una solución en un
vértice aumentada.
Para ilustrar esto, considérese la
solución no factible en el vértice (4,6) del ejemplo. Al aumentar con los
valores obtenidos para las variables de holgura x3 = 0, x4
= 0 y x5 = –6, se llega a la solución básica correspondiente
(4,6,0,0,–6). Se permite que las soluciones básicas sean factibles o no
factibles, lo que lleva a la siguiente definición:
Una solución básica factible es una
solución factible en un vértice aumentada.
Así, la solución factible en el
vértice (0,6) del ejemplo es equivalente a la solución básica factible
(0,6,4,0,6) para la forma de igualdades del problema.
Como los términos solución básica y
solución básica factible constituyen partes muy importantes del vocabulario
normal de programación lineal, es necesario aclarar sus propiedades algebraicas.
Nótese que para la forma de igualdades del ejemplo, el sistema de restricciones
funcionales tiene dos variables más (cinco) que ecuaciones (tres). Este hecho
proporciona dos grados de libertad al resolver el sistema, ya que se pueden
elegir dos variables cualesquiera y hacerlas iguales a cualquier valor
arbitrario para resolver las tres ecuaciones en términos de las tres variables
restantes (se excluyen redundancias). El método símplex usa cero para este valor
arbitrario. Las variables que por el momento se hacen iguales a cero se llaman
variables no básicas; todas las demás se llaman variables básicas.
La solución que resulta es una solución básica. Si todas las variables básicas
son no negativas, entonces se tiene una solución básica factible. Para cualquier
solución básica, la solución en el vértice correspondiente se obtiene
simplemente al quitar las variables de holgura. Dos soluciones básicas son
adyacentes si todas menos una de sus variables son las mismas; la misma
aseveración se cumple para las variables básicas. Entonces, trasladarse de una
solución básica factible a una adyacente significa cambiar el estado de una
variable de no básica a básica y viceversa para otra variable.
En términos generales, el número de
variables no básicas de una solución básica siempre es igual a los grados de
libertad del sistema de ecuaciones y el número de variables básicas siempre es
igual al número de restricciones funcionales.
Al trabajar con el problema en forma
de igualdades, conviene tomar en cuenta y manipular la ecuación de la función
objetivo al mismo tiempo que las nuevas ecuaciones de las restricciones. Antes
de comenzar con el método símplex es necesario escribir el problema una vez más
en su forma equivalente:
Maximizar Z,
sujeta a
Z |
- |
3x1 |
- |
5x2 |
|
|
|
|
|
|
= |
0 |
|
|
x1 |
|
|
+ |
x3 |
|
|
|
|
= |
4 |
|
|
|
|
2x2 |
|
|
+ |
x4 |
|
|
= |
10 |
|
|
3x1 |
+ |
2x2 |
|
|
|
|
+ |
x5 |
= |
18 |
|
|
|
|
xj |
³ |
0 |
para j = 1, 2, …, 5 |
Como la ecuación de la función
objetivo ya se encuentra en forma de igualdad, no necesita variable de holgura.
Con esta interpretación, las soluciones básicas no cambian, excepto que Z puede
verse como una variable básica adicional permanente.
A partir de este momento ya estamos
listos para pasar los coeficientes de nuestro problema a lo que conoceremos como
la Tabla Símplex:
La tabla anterior ilustra una
propiedad clave que toda tabla símplex debe tener para estar en la forma
apropiada; se trata del patrón especial de los coeficientes de las variables
básicas. En particular, nótese cómo las columnas de x3, x4
y x5 (al igual que la columna de Z) contiene exactamente un +1 en el
renglón que corresponde a esa variable básica (véase la primera columna), y
todos los demás coeficientes en esa columna son cero. De la misma manera, cada
ecuación contiene exactamente una variable básica con coeficiente distinto de
cero, en donde este coeficiente es +1. Esta propiedad es significativa, ya que
permite identificar de inmediato la solución básica factible actual a partir de
la tabla; esto es, cada variable básica es igual a la constante del lado derecho
de su ecuación. Esta primera solución básica factible actual se muestra en la
figura anterior en la columna de ¿Es óptima?. De aquí en adelante, para cada
nueva iteración del método símplex mostraremos la solución básica factible
actual en esta columna de la tabla símplex. (Recuérdese que las variables no
básicas son iguales a cero). La tabla símplex inicial quedará automáticamente en
esta forma apropiada (a menos que el problema original de programación lineal no
esté en nuestra forma estándar).
El método símplex construye una tabla
símplex para cada solución básica factible que se obtiene, hasta alcanzar la
solución óptima. A continuación describimos el procedimiento para problemas que
ya están en la forma estándar, con bi
>
0 para toda i = 1, 2, …, m.
PASO INICIAL.
Se introducen variables de holgura. Después se seleccionan las variables
originales como variables no básicas iniciales (se igualan a cero) y las
variables de holgura como las variables básicas originales. Esta selección lleva
a la tabla símplex inicial anterior. Como esta tabla está en la forma apropiada,
de inmediato se obtiene la solución básica factible inicial para el ejemplo,
(0,0,4,10,18). Ahora debe realizarse la prueba de optimalidad para determinar si
la solución es optima.
PRUEBA DE OPTIMALIDAD.
La solución básica factible actual es óptima si y sólo si todos los coeficientes
de la ecuación de la función objetivo (renglón de Z) son no negativos (
³
0 ). Si es así, el proceso termina; de otra manera, se lleva a cabo otra
iteración para obtener la nueva solución básica factible, lo que significa el
cambio de una variable no básica por una básica (parte 1) y viceversa (parte 2),
y después despejar las variables de la nueva solución (parte 3).
En este ejemplo, hay dos coeficientes
negativos en la ecuación de Z,
-3
para x1 y -5
para x2 de manera que debe irse al paso iterativo. Tacharemos la
solución básica factible actual como se muestra en la tabla anterior para
indicar que esta solución no es óptima.
PASO ITERATIVO.
Parte 1. Se determina la variable
básica entrante mediante la elección de la variable con el coeficiente negativo
(automáticamente se refiere a una variable no básica) que tiene el mayor valor
absoluto en la ecuación de Z. Se enmarca la columna correspondiente a este
coeficiente; esta columna recibe el nombre de columna pivote. En el
ejemplo, el coeficiente negativo más grande (en términos de valor absoluto) es
–5 para x2 (5>3), por lo que x2 debe convertirse en
variable básica. Este cambio se indica en la siguiente tabla con el recuadro en
la columna de x2 abajo del –5:
Parte 2. Se determina la variable
básica que sale; para esto, a) se toma cada coeficiente estrictamente positivo
(>0) de la columna enmarcada, b) se divide el lado derecho de cada renglón entre
estos coeficientes, c) se identifica la ecuación con el menor coeficiente y d)
se selecciona la variable básica para esta ecuación. (Esta variable básica es la
que llega a cero primero cuando se incrementa la variable básica entrante). Se
enmarca el renglón de esta ecuación en la tabla símplex sin incluir la columna Z
y se le da el nombre de renglón pivote. El número que está en la
intersección de los dos recuadros se llama pivote.
En la tabla anterior, se muestran los
resultados de las partes 1 y 2 para el ejemplo (antes de enmarcar el renglón);
la prueba del cociente mínimo para determinar la variable básica que sale
se muestra a la derecha de la tabla. Entonces la variable básica que sale es x4.
Parte 3. Se determina la nueva
solución básica factible al construir una nueva tabla símplex en la forma
apropiada, abajo de la que se tiene. Las primeras dos columnas no cambian,
excepto que la variable básica entrante sustituye a la variable básica que sale
en la columna de Variable Básica. Para cambiar el coeficiente de la nueva
variable básica en el renglón pivote a +1, se divide todo el renglón pivote
entre el número pivote:
Renglón pivote nuevo = Renglón pivote antiguo /
pivote
En este punto, la tabla símplex para
el ejemplo se ve como la que se muestra enseguida. Para obtener un coeficiente 0
para la nueva variable básica en las otras ecuaciones, cada renglón [inclusive
el de la ecuación de Z] excepto el renglón pivote, se cambia por la nueva tabla
símplex usando la siguiente fórmula:
Renglón nuevo = renglón antiguo
-
(coeficiente en la columna pivote
´
renglón pivote nuevo)
en donde el coeficiente en la columna pivote es el
número en la columna pivote correspondiente a este renglón.
Para ilustrar con el ejemplo, los nuevos renglones se obtienen de la
forma siguiente:
Renglón de Z:
[-3
-5
0 0 0, 0]
Renglón nuevo =
[-3
0 0 5/2 0, 30]
Renglón 1: Sin cambio porque su coeficiente en la columna pivote es cero.
Renglón 3:
[3
2 0 0 1, 18]
Renglón nuevo =
[3
0 0
-1 1, 6]
Estos cambios llevan a la nueva tabla
símplex que se muestra en la siguiente tabla para la
iteración 1:
Como las variables básicas siempre son iguales al lado derecho de la ecuación que le corresponde, la nueva solución básica factible es (0, 6, 4, 0, 6) con Z = 30.
Este trabajo completa el paso
iterativo, así que debe proseguirse a la prueba de optimalidad. Como la ecuación
de Z todavía tiene coeficientes negativos (–3 para x1), la prueba de
optimalidad indica que la solución no es óptima, (lo cual se muestra en la
figura anterior) por lo que manda al algoritmo de regreso al paso iterativo para
obtener la siguiente solución básica factible. El paso iterativo comienza de
nuevo en la tabla símplex actual para encontrar la nueva solución. Si se siguen
las instrucciones de las partes 1 y 2, se encuentra que x1 es la
variable básica entrante y x5 la variable básica que sale, como se
muestra en la siguiente tabla:
En las siguientes tablas se muestra el
conjunto completo de las tablas del método símplex para esteejemplo. La nueva
solución básica factible es (2, 6, 2, 0, 0), con Z = 36. Al hacer la prueba de
optimalidad, se encuentra que la solución es óptima porque no hay coeficientes
negativos en la ecuaciónde Z, de manera que el algoritmo ha terminado. En
consecuencia, la solución óptima para este ejemplo (sin tomar en cuenta las
variables de holgura) es x1 = 2, x2 = 6.
Anteriormente no se dijo qué hacer
cuando las reglas de selección del método símplex no llevan a una decisión clara,
ya sea porque existen empates (valores iguales) o por otras ambigüedades
parecidas.
Empate para la variable básica entrante.
El paso 1 de cada iteración elige la
variable básica que tiene el coeficiente negativo con el mayor valor absoluto en
la ecuación de Z actual como la variable básica entrante. Ahora suponga que dos
o más variables no básicas tienen el coeficiente negativo más grande (en valor
absoluto), es decir, que hay un empate entre ellas. Por ejemplo, esto ocurriría
en la primera iteración del ejemplo anterior si se cambiara la función objetivo
a Z = 3x1 + 3x2, con lo que la ecuación del renglón de Z
inicial sería Z-3x1-3x2
= 0. ¿Cómo debe romperse este empate?
La respuesta es que la elección entre
estos dos contendientes se puede hacer de manera arbitraria. Tarde o temprano se
llegará a la solución óptima, sin importar cuál de las variables empatadas se
haya escogido, y no existe un método conveniente para predecir cuál lleva ahí
más rápidamente. En este ejemplo ocurre que si se escoge x1 como
variable entrante, el método símplex alcanza la solución óptima (2, 6) en tres
iteraciones y si se elige x2, llega en dos.
Empate para la variable básica que sale
-
degeneración.
Ahora suponga que el empate ocurre
entre dos o más variables básicas al elegir la variable que sale en el paso 2 de
una iteración. ¿Importa cuál se escoge? En teoría sí, y en una forma crítica
debido a que puede ocurrir la siguiente sucesión de eventos. Primero, todas las
variables empatadas se hacen cero al mismo tiempo cuando aumenta el valor de la
variable entrante. Por tanto, aquellas que no se eligieron como variable básica
que sale también tendrán un valor de cero en la nueva solución básica factible.
(Las variables básicas con valor de cero se llaman degeneradas y el mismo
nombre se da a la solución básica factible correspondiente.) Segundo, si una de
estas variables básicas degeneradas sigue con valor de cero hasta que se
selecciona como variable básica que sale en una iteración posterior, la variable
básica entrante deberá también quedar con valor de cero (ya que no puede crecer
sin que la variable básica que sale se vuelva negativa), entonces el valor de Z
permanecerá sin cambio. Tercero, si Z permanece igual en lugar de mejorar cada
iteración, el método símplex puede caer en un ciclo que repite la misma
secuencia de soluciones periódicamente, en lugar de aumentar en algún momento
para llegar a la solución óptima.
Por fortuna, aunque en teoría es
posible que haya ciclos perpetuos, ha sido en extremo raro que tenga lugar en
problemas reales. Si ocurriera un ciclo siempre se puede salir de él cambiando
la elección de la variable básica que sale. Por lo tanto se recomienda romper
los empates arbitrariamente y seguir el proceso sin preocuparse de las variables
que puedan resultar.
Cuando no hay variable básica que sale
-
Z no acotada.
Existe otra posibilidad en el paso 2
de una iteración, de la que no se ha hablado: aquella en la que ninguna
variable califica como variable básica que sale. Esta situación puede ocurrir si
la variable básica entrante puede crecer indefinidamente sin que ninguna de las
variables básicas actuales adquiera valores negativos. En la forma tabular, esto
significa que todos los coeficientes en la columna pivote (se excluye el renglón
de Z) son negativos o cero.
Como se ilustra en la siguiente tabla,
esta situación surge cuando se considera el siguiente ejemplo:
Maximizar Z = 3x1
+ 5x2,
sujeta a x1
£
4
y x1
³
0, x2
³
0
En este ejemplo se ignoraron las dos
últimas restricciones funcionales del ejemplo resuelto anteriormente. Vea en la
tabla que x2 es la variable básica entrante pero el único coeficiente
en la columna pivote es cero. Como la prueba del cociente mínimo usa sólo
coeficientes mayores que cero, no se cuenta con un cociente que proporcione una
variable básica que sale.
La interpretación de una tabla símplex
como la que se muestra en la siguiente tabla es que las restricciones no impiden
el crecimiento indefinido de la función objetivo Z, de manera que el método
símplex se detiene con el mensaje de que Z es no acotada. Debido a que ni
siquiera la programación lineal ha descubierto la manera de lograr ganancias
infinitas, el mensaje real en problemas prácticos es: ¡Se ha cometido un error!
Tal vez el modelo esté mal formulado, ya sea por haber omitido una restricción
relevante o por haberla establecido incorrectamente. De otra manera, pudo haber
ocurrido un error en los cálculos.
Soluciones óptimas múltiples.
En la definición de solución óptima
se mencionó que un problema puede tener más de una solución óptima. Si en el
ejemplo cambiamos la función objetivo a Z = 3x1 + 2x2
resulta que todos los puntos sobre el segmento de recta entre (2,6) y (4,3) son
soluciones óptimas. Entonces todas las soluciones son un promedio ponderado de
estas dos soluciones factibles en los vértices óptimas:
(x1, x2) = w1(2,
6) + w2(4, 3),
donde los pesos w1 yw2 son números que
satisfacen las relaciones:
w1
+ w2 = 1 y w1
³
0, w2
³
0
Por ejemplo, w1 = 1/3 y w2
= 2/3 da:
(x1, x2) = 1/3(2, 6) +
2/3(4, 3) = (2/3+8/3, 6/3+6/3) = (10/3, 4)
como una solución óptima.
En general, cualquier promedio
ponderado de dos o más soluciones (vectores) donde los pesos son no negativos y
suman 1 se llama combinación convexa de estas soluciones. Entonces, toda
solución óptima en el ejemplo es una combinación convexa de (2, 6) y (4, 3).
Este ejemplo es representativo de
problemas con soluciones óptimas múltiples.
Cualquier problema de Programación Lineal con soluciones óptimas múltiples (y una región factible acotada) tiene al menos dos soluciones factibles en los vértices que son óptimas. Toda solución óptima es una combinación lineal de estas soluciones factibles en los vértices óptimas. En consecuencia, en la forma aumentada, toda solución óptima es una combinación convexa de las soluciones básicas factibles óptimas.
El método símplex se detiene
automáticamente al encontrar una solución básica factible óptima. Sin embargo,
en muchas aplicaciones de Programación Lineal existen factores intangibles que
no se incorporan al modelo y que pueden ser útiles para tomar decisiones
significativas sobre las soluciones óptimas alternativas. En esos casos, también
deben identificarse las otras soluciones óptimas. Esto requiere encontrar todas
las demás soluciones básicas factible óptimas, y entonces toda solución óptima
es una combinación convexa de las soluciones básicas factibles óptimas.
Una vez que el método símplex
encuentra una solución básica factible óptima, se puede detectar si existen
otras y, si así es, se encuentra como sigue:
Siempre que un problema tiene más de una solución básica factible óptima, al menos una variable no básica tiene coeficiente cero en la ecuación de Z final, de manera que si aumenta su valor, el valor de la función Z no cambia. Por lo tanto, estas otras soluciones básicas factibles óptimas se pueden identificar (si se desea) realizando iteraciones adicionales del método símplex, en las que cada vez se elige una variable no básica con coeficiente cero como variable básica entrante. Si una de estas iteraciones no tiene una variable básica que sale esto indica que la región factible es no acotada y la variable básica entrante puede crecer indefinidamente sin cambiar el valor de Z.
2.5. Método de la “M” o de Penalización.
Hasta este momento se han
presentado los detalles del método símplex con la suposición de que el problema
se encuentra en nuestra forma estándar (maximizar Z sujeta a las
restricciones funcionales de la forma
£
y restricciones de no negatividad sobre todas las variables) con bi
³
0 para toda i = 1, 2, ..., m. En esta
sección se establecerá cómo hacer los ajustes requeridos a otras formas
legítimas de modelos de Programación Lineal. Se verá que todos estos ajustes se
pueden hacer en el paso inicial, de manera que el resto del método símplex se
aplica justo como se aprendió.
El único problema serio que
introducen las otras formas de restricciones funcionales (= ó
³)
es identificar una solución inicial básica factible. 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 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.
Para ilustrar la técnica de las
variables artificiales, primero se considerará el caso en que la única forma no
estándar en el problema es la presencia de una o más restricciones en forma de
igualdad.
Restricciones en forma de igualdad.
En realidad, cualquier restricción
en forma de igualdad:
ai1x1 +ai2x2
+ . . . + ainxn = bi
es equivalente a dos restricciones de desigualdad:
ai1x1 + ai2x2
+ . . . + ainxn
£
bi,
ai1x1 + ai2x2
+ . . . + ainxn
³
bi
Sin embargo, en lugar de hacer esta sustitución e
incrementar con ello el número de restricciones, es más conveniente usar la
técnica de la variable artificial. Suponga que se modifica el problema de
ejemplo presentado y resuelto en la sección anterior. El único cambio que sufre
el modelo de programación lineal es que la tercera restricción, 3x1 +
2x2 £
18, se convierte en una restricción de igualdad:
3x1 + 2x2 = 18
|
|
|
|
|
|
_ |
|
|
3 |
x1 |
+ |
2 |
x2 |
+ |
x5 |
= |
18 |
En resumen si tenemos una
restricción funcional en forma de igualdad y deseamos “pasarla a su forma de
igualdad”, únicamente debemos sumar una variable artificial.
Restricciones funcionales de la forma
³
Para ilustrar la manera en que la
técnica de las variables artificiales maneja las restricciones de la forma
³
usaremos el siguiente ejemplo:
0.6 |
x1
|
+ | 0.4 |
x2 |
- |
x5 |
= |
6 |
|
|
|
|
|
|
|
_ |
|
|
|
0.6 |
x1 |
+ |
0.4 |
x2 |
- |
x5 |
+ |
x6 |
= |
6 |
ó
x5 =
-6
(que no cumple la restricción de no negatividad)
|
|
|
|
|
|
|
|
_ |
|
|
|||
0.6 |
x1 |
+ |
0.4 |
x2 |
- |
x5 |
+ |
x6
|
= |
6 |
|||
_ |
|
|
|||||||||||
x6 |
= |
6 |
|||||||||||
En resumen, una restricción de la forma
³ se convierte a su forma de igualdad
restando una variable de excedente y sumando una variable artificial.
|
Z |
= |
3x1 |
+ |
5x2 |
|
|
sujeta a |
|
|
x1 |
|
|
£ |
4 |
|
|
|
|
|
2x2 |
£ |
10 |
|
|
|
3x1 |
+ |
2x2 |
= |
18 |
|
|
|
x1
³
0, |
|
x2
³
0 |
|
|
|
|
|
|
|
|
_ |
|
|
3 |
x1 |
+
|
2 |
x2 |
+ |
x5 |
= |
18 |
2.
Se asigna una penalización enorme al hecho de
tener x5 >
0, cambiando la función objetivo
Z = 3x1 + 5x2 a:
|
|
|
|
|
|
|
|
|
_ |
|
|
Z |
= |
3 |
x1 |
+
|
2 |
x2 |
+ |
M |
x5 |
= |
18 |
donde M simbólicamente representa un número
positivo muy grande. Este método que fuerza a x5 hasta el nivel de x5
= 0 en la solución óptima se llama método de la M.
Ahora se encuentra la solución óptima para el
problema real aplicando el método símplex al problema artificial.
Como x5 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:
sujeta a
|
|
|
|
|
|
|
|
|
|
_ |
|
|
|
- |
3x1 |
- |
5x2 |
|
|
|
|
+ |
Mx5 |
= |
0 |
|
|
x1 |
|
|
+ |
x3 |
|
|
|
|
= |
4 |
|
|
|
|
2x2 |
|
|
+ |
x4 |
|
|
= |
10 |
|
|
3x1 |
+ |
2x2 |
|
|
|
|
+ |
x5 |
= |
18 |
|
|
|
|
xj |
³ |
0 |
Para j = 1, 2, …, 5 |
|
|
|
|
|
|
_ |
|
|
|
Variable
Básica |
|
|
|
|
|
|
Lado
derecho |
|
|
Z |
1 |
–3 |
–5 |
0 |
0 |
M |
0 |
|
|
x3 |
0 |
1 |
0 |
1 |
0 |
0 |
4 |
|
|
x4 |
0 |
0 |
2 |
0 |
1 |
0 |
10 |
|
|
|
0 |
3 |
2 |
0 |
0 |
1 |
18 |
|
|
Básica |
|
|
|
|
|
|
Lado
derecho |
|
|
|
1 |
-3M-3 |
-2M-5 |
0 |
0 |
0 |
-18M |
-Mx5
+ Z |
|
x3 |
0 |
1 |
0 |
1 |
0 |
0 |
4 |
|
(0, 0, 4, 10, 18) |
x4 |
0 |
0 |
2 |
0 |
1 |
0 |
10 |
|
Z =
-18M |
|
0 |
3 |
2 |
0 |
0 |
1 |
18 |
|
|
En el ejemplo presentado en la
sección “Restricciones funcionales de la forma
³“,
recordemos la función objetivo real:
Sin embargo, el método de la M
utiliza la siguiente función objetivo a través de todo el procedimiento:
Paso inicial: Se revisan las restricciones del
problema original introduciendo variables artificiales según se necesite para
obtener una solución básica factible inicial obvia para el problema artificial.
Fase 1: uso del método símplex
para resolver el problema de programación lineal:
Minimizar Z =
S
de todas las variables artificiales, sujeta a las restricciones revisadas.
La solución óptima que se obtiene
para este problema (con Z = 0) será una solución básica factible para el
problema real.
Fase 2: se eliminan las variables
artificiales (de todas formas, ahora todas valen cero). Comenzando con la
solución básica factible que se obtuvo al final de la fase 1, se usa el método
símplex para resolver el problema real.
Enseguida se resumen los problemas
que deben resolverse por el método símplex en las fases respectivas para el
ejemplo.
sujeta a
0.3x1 |
+ |
0.1x2 |
+ |
x3 |
|
|
|
|
|
|
= |
2.7 |
|
+ |
0.5x2 |
|
|
+ |
x4 |
|
|
|
|
= |
6 |
0.6x1 |
+ |
0.4x2 |
|
|
|
|
- |
x5 |
+ |
|
= |
6 |
y
|
|
x2³0 |
|
x3³ |
|
x4³0 |
|
x5³0 |
|
x6³0 |
|
|
Minimizar Z = 0.4x1
+ 0.5x2,
sujeta a
0.3x1 |
+ |
0.1x2 |
+ |
x3 |
|
|
= |
2.7 |
0.5x1 |
+ |
0.5x2 |
|
|
|
|
= |
6 |
0.6x1 |
+ |
0.4x2 |
|
|
- |
x5 |
= |
6 |
y
x1³0 |
|
x2³0 |
|
x3³ |
|
x5³0 |