Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema III - Método Simplex
Tema III - Método Simplex
2. Programación Lineal.
Además de las iteraciones, los algoritmos incluyen un procedimiento para iniciar y un criterio para
determinar cuándo detenerse, como se resume enseguida:
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.
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.
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:
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:
3. Prueba de optimalidad: ni (0,6) ni (4,3) son mejores que (2,6), entonces se detiene, (2,6) es óptima.
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
x1 + x3 = 4
x3 0,
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.
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.
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
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).
PASO ITERATIVO.
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:
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)
Para ilustrar con el ejemplo, los nuevos renglones se obtienen de la forma siguiente:
Renglón de Z: 3 5 0 0 0, 0
(5) 0 1 0 1/2 0, 6
Renglón 3: 3 2 0 0 1, 18
(2) 0 1 0 1/2 0, 6
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.
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 Z3x13x2 = 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.
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.
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:
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:
donde los pesos w1 yw2 son números que satisfacen las relaciones:
w1 + w2 = 1 y w1 0, w2 0
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).
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.