Ejemplo del Método Simplex (Tutorial y Cómo Funciona)

En el siguiente artículo detallaremos cómo funciona el Método Simplex a través de un ejemplo sencillo correspondiente a un modelo de Programación Lineal que considera 3 variables de decisión.

El Método Simplex corresponde a un algoritmo iterativo publicado por George Bernard Dantzig en el año 1947 en donde se busca alcanzar el máximo (o mínimo) de una función lineal compuesta por un conjunto de variables que deben satisfacer condiciones impuestas por restricciones lineales en forma de inecuaciones.

En este contexto, el objetivo de este artículo es definir en detalle distintas aproximaciones para la resolución de un modelo de Programación Lineal utilizando el Método Simplex, además de discutir sobre sus principales características.

Con tal propósito en perspectiva consideremos el siguiente modelo de optimización lineal:

ejemplo método simplex

Ejemplo del Método Simplex (Utilizando Diccionarios)

Un paso preliminar consiste en incorporar las denominadas variables de holgura. De modo de comprender este concepto consideremos la primera restricción:

2x_{1}+3x_{2}+x_{3}\leq 5

Para cada solución factible x_{1},x_{2},x_{3}, el valor del lado izquierdo será a lo más el valor del lado derecho; o eventualmente existirá una diferencia (holgura) entre estos 2 valores.

De esta forma definimos x_{4} como variable de holgura de dicha restricción, la cual se puede denotar por x_{4}=5-2x_{1}-3x_{2}-x_{3}, donde x_{4}\geq 0. De forma análoga se pueden definir las variables de holgura (no negativas) x_{5}x_{6} para las restricciones 2 y 3, respectivamente. Finalmente podemos describir la función objetivo 5x_{1}+4x_{2}+3x_{3} utilizando z de forma compacta.

En resumen, para cada selección de valores de las variables x_{1},x_{2}x_{3} podemos definir valores para las variables x_{4},x_{5},x_{6}, y z utilizando las siguientes fórmulas (conocido comúnmente como diccionarios según la terminología utilizada en el libro Linear Programming de Vasek Chvátal):

  • x_{4}=5-2x_{1}-3x_{2}-x_{3}
  • x_{5}=11-4x_{1}-x_{2}-2x_{3}
  • x_{6}=8-3x_{1}-4x_{2}-2x_{3}
  • z=5x_{1}+4x_{2}+3x_{3}

El objetivo del Método Simplex es lograr sucesivas mejoras para el valor de la función objetivo asociada a la selección de alguna solución factible. Repetir dicho procedimiento un numero finito de veces debería permitir eventualmente alcanzar la solución óptima del problema lineal en estudio.

Para inicializar el Método Simplex necesitamos una solución factible. En nuestro ejemplo esto es sencillo y se puede alcanzar simplemente fijando las variables x_{1},x_{2},x_{3} en cero. De esta forma se alcanzan los siguientes resultados:

x_{1}=0,x_{2}=0,x_{3}=0,x_{4}=5,x_{5}=11,x_{6}=8,z=0

En el contexto del objetivo planteado anteriormente, debemos buscar una solución factible que permita alcanzar un mayor valor para z. Si, por ejemplo, mantenemos x_{2}=x_{3}=0 e incrementamos el valor de x_{1} obtenemos z=5x_{1}>0, de modo que si x_{1}=1 se obtiene z=5 (y x_{4}=3,x_{5}=7,x_{6}=5). Mejor aún, si x_{1}=2 (manteniendo x_{2}=x_{3}=0), se obtiene z=10 (y x_{4}=1,x_{5}=3,x_{6}=2).

Sin embargo, si asumimos x_{1}=3 (conservando x_{2}=x_{3}=0) el valor de la función objetivo ahora es z=15, pero x_{4}=-1,x_{5}=-1,x_{6}=-1 que claramente no satisface las condiciones de no negatividad para las variables.

Por tanto la pregunta relevante es: ¿cuánto se puede incrementar el valor de x_{1} (manteniendo x_{2}=x_{3}=0 al mismo tiempo) y seguir conservando la factibilidad (x_{4},x_{5},x_{6}\geq 0)?.

La condición x_{4}=5-2x_{1}-3x_{2}-x_{3}\geq 0 implica x_{1}\leq \frac{5}{2}; de forma similar x_{5}\geq 0 implica x_{1}\leq \frac{11}{4}x_{6}\geq 0 implica x_{1}\leq \frac{8}{3}. Claramente de estas 3 cotas para la variable x_{1} la más restrictiva es x_{1}\leq \frac{5}{2}, de modo que incrementamos el valor de x_{1} hasta ese valor de modo de obtener una nueva solución:

x_{1}=\frac{5}{2},x_{2}=0,x_{3}=0,x_{4}=0,x_{5}=1,x_{6}=1/2,z=\frac{25}{2}

Que claramente constituye una mejora para el valor de la función objetivo en comparación al valor inicial z=0.

A continuación debemos buscar una nueva solución factible que sea aún mejor que la que acabamos de encontrar. Para ello la variable x_{1} que cambió su valor desde cero a un número positivo (12,5), debe cambiar su lugar desde el lado derecho al lado izquierdo del sistema de ecuaciones. De forma análoga, la variable x_{4} que cambio su valor de un número positivo a cero debe cambiar de lugar desde el lado derecho al lado izquierdo.

De esta forma y luego de cierta manipulación algebraica podemos reescribir x_{1} en términos de x_{2},x_{3},x_{4} según se observa a continuación:

x_{1}=\frac{5}{2}-\frac{3}{2}x_{2}-\frac{1}{2}x_{3}-\frac{1}{2}x_{4}

Luego, con el objetivo de expresar x_{5},x_{6}z en términos de x_{2},x_{3},x_{4}, simplemente substituimos el resultado anterior en las filas correspondientes:

  • x_{5}=11-4(\frac{5}{2}-\frac{3}{2}x_{2}-\frac{1}{2}x_{3}-\frac{1}{2}x_{4})-x_{2}-2x_{3}
  • x_{5}=1+5x_{2}+2x_{4}
  • x_{6}=8-3(\frac{5}{2}-\frac{3}{2}x_{2}-\frac{1}{2}x_{3}-\frac{1}{2}x_{4})-4x_{2}-2x_{3}
  • x_{6}=\frac{1}{2}+\frac{1}{2}x_{2}-\frac{1}{2}x_{3}+\frac{3}{2}x_{4}
  • z=5(\frac{5}{2}-\frac{3}{2}x_{2}-\frac{1}{2}x_{3}-\frac{1}{2}x_{4})+4x_{2}+3x_{3}
  • z=\frac{25}{2}-\frac{7}{2}x_{2}+\frac{1}{2}x_{3}-\frac{5}{2}x_{4}

De esta forma nuestro sistema de ecuaciones (diccionario) queda definido por:

  • x_{1}=\frac{5}{2}-\frac{3}{2}x_{2}-\frac{1}{2}x_{3}-\frac{1}{2}x_{4}
  • x_{5}=1+5x_{2}+2x_{4}
  • x_{6}=\frac{1}{2}+\frac{1}{2}x_{2}-\frac{1}{2}x_{3}+\frac{3}{2}x_{4}
  • z=\frac{25}{2}-\frac{7}{2}x_{2}+\frac{1}{2}x_{3}-\frac{5}{2}x_{4}

Como lo hicimos en la primera iteración debemos intentar incrementar el valor de la función objetivo (z) seleccionando una variable adecuada en el lado derecho, mientras que al mismo tiempo mantenemos las restantes variables del lado derecho en cero. En este sentido se puede observar que aumentar el valor de las variables x_{2}x_{4} generaría una disminución en el valor de z que va en sentido contrario a nuestro objetivo de maximizar el valor de la función objetivo.

Por tanto, la única selección de una variable en el lado derecho que permitirá aumentar el valor de z es seleccionar la variable x_{3}.

¿Cuánto debemos incrementar el valor de x_{3}?. La respuesta se puede obtener directamente del sistema de ecuaciones anterior, considerando x_{2}=x_{4}=0, la restricción x_{1}\geq 0 implica que x_{3}\leq 5; la restricción x_{5}\geq 0 no impone condiciones adicionales y la restricción x_{6}\geq 0 implica x_{3}\leq 1. En consecuencia x_{3}=1 es el mejor valor que puede adoptar dicha variable.

La nueva solución corresponde a:

x_{1}=2,x_{2}=0,x_{3}=1,x_{4}=0,x_{5}=1,x_{6}=0,z=13

El valor de z paso de 12,5 a 13 al cabo de una iteración del Método Simplex.

A continuación actualizamos el sistema de ecuaciones donde las variables que adoptan valores positivos x_{1},x_{3},x_{5} se encontraran en el lado izquierdo, mientras las variables igual a cero estarán en el lado derecho. De este modo pasamos la variable x_{3} al lado izquierdo, donde x_{3}=1+x_{2}+3x_{4}-2x_{6} que permite substituir en el resto de las ecuaciones:

  • x_{3}=1+x_{2}+3x_{4}-2x_{6}
  • x_{1}=2-2x_{2}-2x_{4}+x_{6}
  • x_{5}=1+5x_{2}+2x_{4}
  • z=13-3x_{2}-x_{4}-x_{6}

Notar que no es posible seguir aumentando el valor de la función objetivo z mediante un incremento de las variables del lado derecho x_{2},x_{4},x_{6} (en efecto, el valor de z decrecería). En consecuencia estamos en presencia de la solución óptima del problema: x_{1}=2,x_{2}=0,x_{3}=1,x_{4}=0,x_{5}=1,x_{6}=0 con valor óptimo z=13.

El procedimiento anterior basado en diccionarios favorece una mejor comprensión conceptual de los fundamentos sobre los que se basa el Método Simplex. De forma complementaria a continuación presentaremos a modo de contraste las iteraciones del Método Simplex utilizando tablas (o tableau) que comúnmente corresponde a la forma en la cual se presenta el algoritmo en cursos de pregrado.

Ejemplo del Método Simplex (Utilizando Tableau)

Consideremos nuevamente nuestro problema de Programación Lineal:

ejemplo método simplex

A continuación incorporamos las variables de holgura (no negativas) x_{4},x_{5},x_{6} que por definición tienen coeficiente nulo (cero) en la función objetivo. De esta forma obtenemos la forma estándar (*):

forma estándar ejemplo método simplex

(*). Para nuestros efectos consideraremos que la forma estándar de un modelo de Programación Lineal esta dada por Minimizar[c^{t}x, Ax=b,x\geq 0], siendo este formato el que preferentemente hemos utilizado para desarrollar las iteraciones del Método Simplex en otros artículos relacionados en nuestro sitio. En consecuencia la selección de dicho formato es meramente convencional.

Retomando nuestro ejemplo, el tableau inicial queda definido por:

tableau inicial método simplex

Las variables de holgura definen una Solución Básica Factible Inicial, con x_{4}=5,x_{5}=11,x_{6}=8 (las variables no básicas inicialmente corresponden a las variables originales del modelo, es decir, x_{1},x_{2},x_{3} que por definición adoptan un valor igual a cero.

¿Cómo verificar que el tableau inicial representa una solución básica factible óptima para el problema?.

Criterio de Optimalidad: Si en una iteración del Método Simplex se dispone de una solución básica factible y adicionalmente todos los costos reducidos son mayores o iguales que cero, parar ya que la actual solución básica factible es óptima.

En el ejemplo propuesto si bien nos encontramos frente a una solución básica factible el costo reducido de las variables no básicas son negativos, por tanto no se cumple el criterio de optimalidad, es decir, se puede seguir mejorando el valor de la función objetivo.

En este sentido consideraremos arbitrariamente x_{1} como la variable que ingresa a la base, aun cuando no hay certeza que la selección de la variable no básica con el costo reducido más negativo contribuya necesariamente a la Rapidez de Convergencia del Método Simplex.

La variable que deja la base para dar lugar a x_{1} se obtiene del criterio de factibilidad:

Criterio de Factibilidad: Para decidir que variable básica deja la base, es necesario calcular el mayor valor que puede tomar la variable no básica que entra a la base que garantice la factibilidad de la nueva solución básica. Para ello se considera un cuociente entre el valor de la solución básica factible actual y los coeficientes mayores a cero en la columna de la variable entrante. Si todos los cuocientes son negativos el Problema es No Acotado y por tanto no existe solución óptima.

En el ejemplo el criterio de factibilidad para la presente iteración esta dado por:

Min[\frac{5}{2},\frac{11}{4},\frac{8}{3}]=\frac{5}{2}

El menor cuociente se alcanza en la primera fila (restricción) que determina la variable que debe abandonar la base, en este caso, la variable x_{4}. Luego se actualiza la tabla realizando operaciones filas considerando el denominador del mínimo cuociente como pivote. El objetivo es alcanzar en la columna de la variable x_{1} lo que actualmente disponemos en la columna de la variable x_{4}.

Por ejemplo, podemos dividir la fila 1 por 2 de modo de obtener un 1 en la posición del pivote. Luego sobre esta nueva fila 1 podemos multiplicarla por -4 y sumarla a la fila 2. También se puede alcanzar un cero para la variable x_{1} en la fila 3 multiplicando por -3 la nueva fila 1 y sumándola a la fila 3. Finalmente para lograr un cero en el costo reducido de x_{1} se multiplica por 5 la nueva fila 1 y se suma a la fila 4.

De este modo el tableau del Método Simplex al cabo de una iteración queda de la siguiente forma:

segundo tableau método simplex

La solución básica factible actual corresponde a: x_{1}=\frac{5}{2},x_{2}=0,x_{3}=0,x_{4}=0,x_{5}=1,x_{6}=1/2 con valor en la función objetivo z=\frac{25}{2}. Se puede apreciar que dicho resultado es consistente con el enfoque de diccionarios utilizado inicialmente.

Claramente no se satisface el criterio de optimalidad dado que la variable no básica x_{3} tiene costo reducido negativo. Por ello x_{3} ingresa a la base y por tanto debemos calcular nuevamente el criterio de factibilidad para determinar la variable que deberá dejar la base:

Min[\frac{5/2}{1/2},\frac{1/2}{1/2}]=1

El pivote ahora se encuentra en la fila 3 y en consecuencia la variable básica x_{6} debe dejar la base. Notar que no se ha considerado para el cálculo del criterio de factibilidad el coeficiente de la variable x_{3} correspondiente a la fila 2 del tableau anterior (cuyo valor es cero y por tanto el cuociente se indefine).

Actualizamos el tableau del Método Simplex obteniendo los siguientes resultados:

tableau óptimo método simplex

Los valores que adoptan las variables básicas correspondientes a esta nueva iteración es x_{1}=2,x_{2}=0,x_{3}=1,x_{4}=0,x_{5}=1,x_{6}=0 que además representa la solución óptima del modelo de Programación Lineal (dado el cumplimiento del criterio de optimalidad). Luego el valor óptimo corresponde a z=13.

Importante: Existen herramientas computacionales y aplicaciones que permiten resolver online un problema de Programación Lineal mediante el Método Simplex. A continuación se presenta un extracto de los resultados alcanzados para nuestro ejemplo utilizando la aplicación disponible en http://www.programacionlineal.net/simplex.html.

método simplex online ejemplo

Método Simplex (Conclusiones)

El ejemplo que hemos desarrollado en este artículo busca presentar de forma sencilla y didáctica los principales fundamentos asociados al Método Simplex. Cabe destacar que ha sido necesario para la aplicación del algoritmo llevar el modelo original a su forma estándar que como se discutió anteriormente puede tener distintas representaciones según la bibliografía que se consulte.

En este contexto, cada problema de Programación Lineal en su forma estándar cumple con las siguientes propiedades establecidas en el Teorema Fundamental de la Programación Lineal:

  1. Si el problema no tiene solución óptima entonces es no-acotado o infactible.
  2. Si tiene una solución factible, tiene una solución básica factible.
  3. Si el problema tiene solución óptima, tiene una solución básica factible óptima.

Cabe destacar que no siempre se dispone de una solución básica factible en las variables originales del modelo (luego de llevar el problema a su forma estándar). Si bien existen diversas estrategias algorítmicas para enfrentar esta dificultad, se propone al lector revisar los tutoriales que hemos desarrollado sobre esta problemática, en particular respecto al Método Simplex de 2 Fases, Método de la M Grande y Método Simplex Dual.

Adicionalmente con el objetivo de resumir algunas ideas principales del algoritmo hemos preparado una infografía que hemos llamado 10 Cosas que Necesitas saber sobre el Método Simplex.

Finalmente quisiéramos recordar a nuestros usuarios que en el Blog de Gestión de Operaciones se pueden encontrar a la fecha más de 80 publicaciones relativas a la Programación Lineal y la Investigación de Operaciones. De modo de favorecer una rápida búsqueda ingresa al menú Cómo Comenzar. Por último agradeceríamos compartir y difundir este material en la medida que haya sido considerado útil y evaluar este tutorial utilizando las estrellas al final de esta publicación.

Análisis de Sensibilidad (Método Gráfico)

El Análisis de Sensibilidad en Programación Lineal permite analizar el impacto en los resultados del modelo (solución óptima y valor óptimo) en aquellos casos donde uno o varios parámetros sufren modificaciones en relación a sus valores originales, sin la necesidad de resolver nuevamente el problema (sin reoptimizar). En dicho contexto en el siguiente artículo presentamos un ejemplo de dicho análisis para un problema de optimización lineal que considera 2 variables de decisión.

Ejemplo Análisis de Sensibilidad (Método Gráfico)

Un productor tabaquero posee 85 hectáreas (ha) de terreno para plantar dos variedades de tabacos Virginia y Procesado. La variedad Virginia tiene un ingreso de 9.600 USD/ha y necesita 3 horas/ha de uso de maquinaria y 80 horas/ha de mano de obra. Además, el Estado limita su explotación a 30 ha como máximo. La variedad Procesado tiene un ingreso de 7.500 USD/ha y utiliza 2 horas/ha de uso de maquinaria y 60 horas/ha de mano de obra. La cooperativa local le ha asignado un máximo de 190 horas de uso de maquinaria y solo se dispone de 5.420 horas de mano de obra a 12 USD/hora.

Formule y resuelva gráficamente un modelo de Programación Lineal que permita determinar cuánto se debe plantar de cada variedad de tabaco de manera de maximizar la utilidad total.

En primer lugar definimos el modelo de optimización para este problema. Esto consiste en identificar las variables de decisión, función objetivo y restricciones. Detalle de este procedimiento aplicado a problemas de 2 variables puede ser consultado en el artículo Programación Lineal (Método Gráfico).

Variables de Decisión:

  • X1 = Número de Ha a plantar de la variedad Virginia
  • X2 = Número de Ha a plantar de la variedad Procesado

Función Objetivo:

Maximizar (9.600 – 960)X1 + (7.500 – 720)X2 = 8.640X1 + 6.780X2

Restricciones:

  1. X1 ≤ 30
  2. X1 + X2 ≤ 85
  3. 3X1 + 2X2 ≤ 190
  4. 80X1 + 60X2 ≤ 5.420
  5. X1, X2 ≥ 0

Una representación gráfica del problema para el productor de tabaco se puede realizar a través del software Geogebra:

solución método gráfico

Sabemos según el Teorema Fundamental de la Programación Lineal que en caso de existir solución óptima ésta se encontrará en un vértice o en un tramo en la frontera del dominio de soluciones factibles (en el ejemplo área achurada en color verde). Adicionalmente podemos apreciar que no es tan evidente que el vértice C reporte una mayor utilidad en la función objetivo que el vértice D, por lo cual, inspeccionaremos ambos puntos.

En el caso del vértice C éste se encuentra en la intersección de las restricciones 2 y 4. La coordenada respectiva se obtiene al resolver el siguiente sistema de ecuaciones:

X1 + X2 = 85
80X1 + 60X2 = 5.420

De donde X1=16X2=69, lo cual reporta un valor en la función objetivo de V(P)=8.640*(16)+6.780(69)=606.060.

Análogamente en el caso del vértice D las restricciones activas son 3 y 4:

3X1 + 2X2 = 190
80X1 + 60X2 = 5.420

Luego de resolver el sistema lineal anterior se obtiene X1=28 y X2=53, lo cual reporta un valor en la función objetivo de V(P)=8.640*(28)+6.780(53)=601.260.

En consecuencia la solución óptima del problema es X1=16X2=69, con valor óptimo V(P)=8.640*(16)+6.780(69)=606.060.

Una vez resuelto el escenario original a continuación se presentan algunos análisis adicionales que representan por separado modificaciones en los coeficientes de la función objetivo y restricciones del problema.

Intervalo Variación Coeficiente Función Objetivo

Determine cuánto podría variar la utilidad por hectárea del tabaco Virginia, manteniendo constante la utilidad por hectárea del tabaco procesado, de forma que la actual solución óptima no cambie. Para este caso determine el intervalo de variación de la utilidad total.

Sea en términos generales la función objetivo Z=C1X1+C2X2, donde inicialmente en el ejemplo C1=8.640 y C2=6.780. La pendiente de las curvas de nivel de la función objetivo es -C1/C2. De este modo se conserva la actual solución óptima (vértice C) en la medida que:

-\frac{4}{3}\leq-\frac{C_{1}}{C_{2}}\leq -1
\frac{4}{3}\geq \frac{C_{1}}{C_{2}}\geq 1
\frac{4}{3}\geq \frac{C_{1}}{6.780}\geq 1
9.040\geq C_{1}\geq 6.780

En este caso la utilidad por hectárea del tabaco Virginia puede variar entre 6.780 USD y 9.040 USD, de tal forma que el actual nivel de producción (solución óptima) sería el mismo. Lo anterior permite concluir que el intervalo de variación para la utilidad total será 576.300\leq Z\leq 612.460.

Precio Sombra (Método Gráfico)

Si se pudiese contratar más mano de obra disponible en el mercado, ¿Cuántas horas de mano de obra en total estaría dispuesto a utilizar? ¿Cuál sería el aporte adicional de esas horas extras que utilizaría en términos monetarios? Responda lo anterior utilizando el concepto de Precio Sombra.

Para calcular gráficamente el precio sombra necesitamos identificar la máxima y mínima variación para el lado derecho de la restricción de mano de obra que permita garantizar que se conserva la actual base óptima (restricciones activas originales). En este sentido en el caso de aumentar el lado derecho de dicha restricción la solución óptima podrá ser encontrada manteniendo las restricciones activas (e incorporando una adicional) hasta la coordenada (20,65) que es donde se interceptan la segunda y tercera restricción. En el caso de disminuir la disponibilidad de horas en mano de obra se mantiene la base óptima hasta el vértice B cuya coordenada es (0,85). De esta forma se obtiene el precio sombra de la siguiente forma:

precio sombra método gráfico

En consecuencia el lado derecho de la restricción 4 (disponibilidad de mano de obra) puede variar entre [5.100, 5.500] y se conservan las actuales restricciones activas. Adicionalmente dado que en el óptimo actual se utilizan 5.420 horas de mano de obra se deben contratar 80 horas adicionales (de modo de alcanzar las 5.500 horas). Luego, la variación de 80 horas adicionales implicaría un aumento en la utilidad total de 80*USD93=7.440USD.




Teorema Fundamental de la Programación Lineal

En el siguiente artículo abordaremos a través de una discusión conceptual y ejemplos prácticos y sencillos las propiedades que establece el Teorema Fundamental de la Programación Lineal. Estas propiedades son indispensables tener en consideración al momento de la resolución algorítmica de este tipo de modelos de optimización matemática, destacando entre ellos el Método Simplex como así también la resolución de modelos lineales a través del Método Gráfico.

Teorema Fundamental de la Programación Lineal

Cada problema de Programación Lineal en su forma estándar cumple con las siguientes tres propiedades:

  • Propiedad 1: «Si el problema no tiene solución óptima entonces es no-acotado o infactible»

Notar que un problema lineal con dominio de soluciones factible no acotado puede (o no) admitir solución óptima, es decir, el hecho de enfrentar un modelo de estas características no determina a priori la presencia (o ausencia) de solución óptima.

En la aplicación del Método Simplex se detecta un problema no acotado sin solución óptima cuando al realizar el cálculo de la variable que deja la base, todos los elementos ykj de la columna j en la tabla, son negativos para j el índice de una variable no básica con costo reducido negativo. Por ejemplo consideremos el siguiente problema de Programación Lineal:

modelo lineal no acotado

Luego de llevar a la forma estándar el modelo anterior, agregando X3 y X4 como variables de holgura para la restricción 1 y 2, respectivamente, se obtiene la siguiente tabla inicial.
método simplex no acotado

X2 es una variable no básica con costo reducido negativo y en consecuencia la incorporamos a la base. Sin embargo no es factible calcular el criterio de factibilidad o mínimo cuociente debido a que las entradas en la columna de X2 son negativas o cero. Lo anterior deja en evidencia que el problema es no acotado sin solución óptima.

Por otra parte un modelo lineal es infactible (dominio de soluciones factibles vacío y por tanto no admite solución) si el valor de la función objetivo al finalizar la Fase I del Método Simplex de 2 Fases es distinto a cero.

  • Propiedad 2: «Si tiene una solución factible, tiene una solución básica factible»

Una propiedad básica de los modelos de Programación Lineal es que en caso de admitir solución óptima, ésta se encontrará necesariamente en un vértice o tramo en la frontera del dominio de soluciones factibles.

En este contexto en la aplicación del Método Simplex como estrategia algorítmica de resolución, se busca proveer soluciones que cumplan con Ax=b (restricciones de la forma estándar) y x≥0, definiendo una solución básica factible (no necesariamente óptima).

Por ejemplo en el siguiente gráfico que representa un modelo lineal en 2 variables se puede apreciar que los vértices A, B, C, D y E son soluciones básicas factibles.

modelo-lineal-2-v
solucion-grafica-nueva-rest

  • Propiedad 3: «Si el problema tiene solución óptima, tiene una solución básica factible óptima»

Siguiendo con el ejemplo anterior el vértice C no sólo es una solución básica factible sino también una solución básica factible óptima. Si todos los costos reducidos (de las variables no básicas: S1 y S3) son mayores o iguales que cero y estamos en presencia de una solución básica factible (X=100, S2=400, Y=350 todas ≥0), se cumple con el criterio de parada del Método Simplex y en consecuencia la actual solución básica factible es óptima.

tabla-optima-simplex


Cómo detectar que un Problema es No Acotado con el Método Simplex

El Método Simplex es un algoritmo que nos permite resolver modelos de Programación Lineal que en ciertas ocasiones permite identificar casos excepcionales como infinitas soluciones óptimas o que el problema es no acotado. En este contexto el Método Simplex rescata las condiciones establecidas en el Teorema Fundamental de la Programación Lineal.

En la aplicación del Método Simplex, un problema no acotado se detecta cuando en una iteración cualquiera existe una variable no básica con costo reducido negativo y todos los elementos en la columna de dicha variable son negativos o cero. Es decir, no se puede seleccionar un pivote para determinar la variable que debe dejar la base.

Consideremos el siguiente modelo de Programación Lineal:

modelo lineal no acotado

Si resolvemos gráficamente dicho modelo nos podemos percatar que éste es no acotado. Notar que el dominio de soluciones factibles (área sombreada o achurada) es no acotado dado que crece indefinidamente en la dirección de la variable X2.

Las curvas de nivel de la función objetivo crecen a su mayor tasa en la dirección del vector gradiente \triangledown f(X_{1},X_{2})=(4,6) lo que indica que se podría desplazar indefinidamente en esa dirección y siempre interceptar el dominio de soluciones factibles.

problema no acotado

¿Cómo podemos detectar esta situación (Problema No Acotado? utilizando el Método Simplex?

Para ello llevamos el modelo a su forma estándar, agregando X3 y X4 como variables de holgura de la restricción 1 y 2, respectivamente. Lo anterior define la siguiente tabla inicial del método:

método simplex no acotado

Notar que X2 es la variable no básica con el costo reducido más negativo y siguiendo ese criterio debería ser aquella que ingresamos a la base. Sin embargo, no es factible hacer el criterio de factibilidad o mínimo cuociente debido a que los elementos en la columna de X2 son negativos o cero. En esta instancia ya se puede afirmar que el problema es no acotado.

Observación: Se puede verificar que si seleccionamos X1 como la variable que entra a la base y se aplica una iteración del Método Simplex se llegara a una conclusión similar a la presentada anteriormente.