Parte 6 Programación Lineal Método Simplex

Anuncio
Parte 6 Programación Lineal Método Simplex
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:
Paso inicial
Preparación para iniciar iteraciones
Paso iterativo
Realización de iteraciones
Regla de detención
Si no
¿Es óptima la solución actual?
Si sí
Fin
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:
Max Z = 3x1 + 5x2
s.a.
x1
4
2x2  12
3x1 + 2x2  18
x1  0 x2  0
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
x3  0,
y
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
2x2
3x1 + 2x2
xj  0
=
+ x4
=
+ x5 =
para j = 1, 2, …, 5
4
12
18
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
+ x3
x1
2x2
3x1 + 2x2
xj  0
=
=
+ x4
=
+ x5 =
para j = 1, 2, …, 5
0
4
12
18
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:
Variable
Básica
Z
x3
x4
x5
Lado
Z
1
0
0
0
x1
–3
1
0
3
x2
–5
0
2
2
x3
0
1
0
0
x4
0
0
1
0
x5
0
0
0
1
derecho
0
4
12
18
Cociente
¿Es óptima?
(0, 0, 4, 12, 18)
Z=0
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,12,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:
Variable
Básica
Z
x3
x4
x5
Lado
Z
1
0
0
0
x1
–3
1
0
3
x2
–5
0
2
2
x3
0
1
0
0
x4
0
0
1
0
x5
0
0
0
1
derecho
0
4
12
18
Cociente
12/2 = 6
18/2 = 9
¿Es óptima?
mínimo
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.
Variable
Básica
Z
x3
x4
x5
Z
x3
x2
x5
Lado
Z
1
0
0
0
1
0
0
0
x1
–3
1
0
3
x2
–5
0
2
2
x3
0
1
0
0
x4
0
0
1
0
x5
0
0
0
1
derecho
0
4
12
18
0
1
0
1/2
0
6
Cociente
¿Es óptima?
(0, 0, 4, 12, 18)
Z=0
Para ilustrar con el ejemplo, los nuevos renglones se obtienen de la forma
siguiente:
3
5
0
0
0,
0
(5)  0
1
0
1/2
0,
6
Renglón de Z:
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:
(2)
Renglón nuevo =
3
2
0
0
1,
18
0
1
0
1/2
0,
6
3
0
1
0
1,
6
Estos cambios llevan a la nueva tabla símplex que se muestra en la siguiente
tabla
para
la
iteración 1:
Variable
Básica
Z
x3
x4
x5
Z
x3
x2
x5
Lado
Z
1
0
0
0
1
0
0
0
x1
–3
1
0
3
–3
1
0
3
x2
–5
0
2
2
0
0
1
0
x3
0
1
0
0
0
1
0
0
x4
0
0
1
0
5/2
0
1/2
–1
x5
0
0
0
1
0
0
0
1
derecho
0
4
12
18
30
4
6
6
Cociente
¿Es óptima?
(0, 0, 4, 12, 18)
Z=0
(0, 6, 4, 0, 6)
Z = 30
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:
Variable
Lado
Básica
Z
x1
x2
x3
x4
x5
derecho
Z
1
–3
0
0
5/2
0
30
Cociente
¿Es óptima?
x3
0
1
0
1
0
0
4
x2
x5
0
0
0
3
1
0
0
0
1/2
–1
0
1
6
6
4/1 = 4
(0, 6, 4, 0, 6)
Z = 30
6/3 = 2
mín.
En las siguientes tablas se muestra el conjunto completo de las tablas del
método símplex para este ejemplo. 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ón de 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.
Variable
Lado
Básica
Z
x3
x4
Z
1
0
0
x1
–3
1
0
x2
–5
0
2
x3
0
1
0
x4
0
0
1
x5
0
0
0
x5
Z
x3
x2
x5
0
1
0
0
0
3
–3
1
0
3
2
0
0
1
0
0
0
1
0
0
0
5/2
0
1/2
–1
1
0
0
0
1
Z
x3
1
0
0
0
0
0
0
1
3/2
1/3
x2
x1
0
0
0
1
1
0
0
0
1/2
–
1/3
1
–
1/3
0
1/3
derecho
Cociente
0
4
12
12/2 = 6
mín.
18
18/2 = 9
30
4
4/1 = 4
6
6
6/3 = 2
mín.
36
2
6
2
¿Es óptima?
(0, 0, 4, 12, 18)
Z=0
(0, 6, 4, 0, 6)
Z = 30
(2, 6, 2, 0, 0)
Z = 36
Óptima
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
y
x1  4
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.
Variable
Básica
Z
X3
Lado
Z
1
0
x1
–3
1
x2
–5
0
derecho
0
4
x3
0
1
Cociente
¿Es óptima?
Sin mínimo
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.
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
Aplicando la técnica de las variables artificiales se introduce una variable
artificial no negativa (denotada por x5) en la última ecuación, como si fuera una
variable de holgura:
3x1 + 2x2 + 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:
Minimizar
sujeta a
Z
= 0.4x1
0.3x1
0.5x1
0.6x1
x1 
0,
+
+
+
+
0.5x2
0.1x2 
0.5x2 =
0.4x2 
x2  0
2.7
6
6
Notemos que la tercera restricción es del tipo , por lo que para cambiarla a su
forma de igualdad tendríamos que restar una variable de superávit (o de excedente),
quedando de la siguiente manera:
0.6x1 + 0.4x2  x5 = 6
Se ha restado la variable de excedente x5 (se utilizó x5 porque en la primera
restricción agregamos una variable de holgura que sería x3 y en la segunda restricción
agregamos también una variable artificial que sería x4; todo esto con el fin de convertir
las desigualdades a su forma de igualdades) para que consuma el exceso de 0.6x 1 +
0.4x2, o sea, lo que se pasa de 6. No obstante en este caso debe agregarse otra
variable. Esta variable extra, llamada variable artificial se aumenta como sigue:
0.6x1 + 0.4x2  x5 + x6 = 6
La razón de esto es que, si no se agrega la variable artificial, no se estarían
cumpliendo las restricciones de no negatividad. Para comprenderlo, se dejará sin
aumentar. El método símplex comienza por hacer todas las variables reales (originales)
iguales a cero. Entonces:
0.6x1 + 0.4x2  x5 = 6
Sea x1 = 0 y x2 = 0, entonces:
x5 = 6
x5 = 6
ó
(que no cumple la
restricción de no negatividad)
La variable artificial opera para mantener todas las variables no negativas
cuando 0.6x1 + 0.4x2 es menor que 6. Si x1 = 0 y x2 = 0, entonces x5 = 0 y
0.6x1 + 0.4x2  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.
Consideremos el siguiente problema:
Maximizar
sujeta a
Z
=
3x1
x1
3x1
x1 
0,
+
5x2

2x2 
+ 2x2 =
x2  0
4
12
18
Como explicamos anteriormente, para resolver este problema, debemos
construir un problema artificial que tiene la misma solución óptima que el problema
real, haciendo dos modificaciones a este problema real.
1. Se aplica la técnica de las variables artificiales introduciendo una variable
artificial no negativa (denotada por x5) en la última ecuación, como si fuera una
variable de holgura:
3x1 + 2x2 + 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 = 3x1 + 5x2  Mx5,
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.
Nota: Para el caso de minimización, penalizamos a la variable artificial, haciéndola
aparecer en la función objetivo con un coeficiente de +M.
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:
Maximizar Z,
sujeta a
Z
 3x1  5x2
+ x3
x1
2x2
3x1 + 2x2
xj  0
+ Mx5 =
=
+ x4
=
+ x5 =
Para j = 1, 2, …, 5
0
4
12
18
En este momento estamos preparados para pasar los coeficientes a la tabla
símplex:
Variable
Básica
Z
x3
x4
x5
Lado
Z
1
0
0
0
x1
–3
1
0
3
x2
–5
0
2
2
x3
0
1
0
0
x4
0
0
1
0
x5
M
0
0
1
derecho
0
4
12
18
Cociente
¿Es óptima?
Esta tabla todavía no está en la forma apropiada porque el coeficiente de x 5 es
diferente de cero en la ecuación de Z (es M). Por lo tanto, antes de que el método
símplex pueda aplicar la prueba de optimalidad y encontrar la variable básica entrante,
debe pasarse esta tabla a la forma apropiada para que cumpla la condición símplex.
Esta condición que debe cumplir toda tabla del método símplex para que pueda
reportarnos la siguiente solución básica factible dice que: “Toda variable básica debe
tener un 1 en la intersección de su renglón y columna correspondiente y cero en los
demás renglones incluido el renglón de Z”, en otras palabras, que toda variable que sea
básica solamente debe aparecer en el renglón de la restricción que representa. Para
hacer cero el coeficiente M, utilizamos el renglón de x5 como renglón pivote
multiplicándolo por M y sumando el resultado al renglón de Z. Realizando el
procedimiento anterior, la tabla símplex queda de la siguiente manera:
Variable
Lado
Básica
Z
Z
1
x3
x4
x5
0
0
0
x1
x2
-3M- -2M3
5
1
0
3
0
2
2
x3
x4
x5
derecho
0
0
0
18M
1
0
0
0
1
0
0
0
1
4
12
18
Cociente
¿Es óptima?
Mx5 + Z
(0, 0, 4, 12, 18)
Z = 18M
Podemos observar que la tabla anterior ya se encuentra en la forma apropiada
y podemos leer la solución básica factible actual, que es (0, 0, 4, 12, 18), la cual
aplicando la prueba de optimalidad vemos que no es óptima ya que todavía tenemos
coeficientes negativos en el renglón de Z (los correspondientes a x1 y x2). Aplicando el
método símplex a la tabla anterior tenemos: el coeficiente negativo con el mayor valor
absoluto corresponde a x1 (3M3), recordemos que M es un número muy grande
positivo, por lo tanto, x1 se convierte en la variable básica entrante, realizando los
cocientes correspondientes, vemos que x3 se convierte en la variable básica saliente.
El procedimiento completo para resolver este ejemplo se muestra en el siguiente
conjunto de tablas:
ariable
Lado
Básica
Z
x1
x2
x3
x4
x5
derecho
Z
1
-3M-3
-2M-5
0
0
0
18M
x3
0
1
0
1
0
0
4
x4
0
0
2
0
1
0
12
x5
0
3
2
0
0
1
18
Z
1
0
-2M-5
3M+3
0
0
6M+12
Cociente
¿Es óptima?
4/1 = 4
(0, 0, 4, 12, 18)
Z = 18M
18/3 = 6
x1
0
1
0
1
0
0
4
(4, 0, 0, 12, 6)
x4
0
0
2
0
1
0
12
12/2 = 6
x5
0
0
2
3
0
1
6
6/2 = 3
Z
1
0
0
9/2
0
M+5/2
27
x1
0
1
0
1
0
0
4
4/1 = 4
(4, 3, 0, 6, 0)
x4
0
0
0
3
1
6
6/3 = 2
Z = 27
x2
0
0
1
3/2
0
1
1/2
36
Z = 6M+12
3
Z
1
0
0
0
3/2
M+1
x1
0
1
0
0
1/3
2
(2, 6, 2, 0, 0)
x3
0
0
0
1
1/3
1/3
2
Z = 36
x2
0
0
1
0
1/2
1/3
0
6
Óptima
MINIMIZACIÓN con el método símplex.
Una manera directa de minimizar Z con el método símplex es cambiar los roles
de los coeficientes negativos y positivos en el renglón de la función objetivo, tanto para
la prueba de optimalidad como para la parte 1 de una iteración. Se determina la
variable básica entrante mediante la elección de la variable con el coeficiente positivo
menor en la ecuación de Z. 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
positivos (  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). Notemos que no se ha dicho nada
con respecto a la forma de obtener la variable básica saliente en una iteración, ya que
este paso se realiza de la misma manera que cuando se está maximizando, es decir,
se escoge aquella variable básica con el menor cociente. Ilustremos la forma de utilizar
el método símplex para el caso de minimización. Consideremos el siguiente ejemplo:
Minimizar
sujeta a
Z
=
3x1
x1
x1
x1 
0,
+
+
+
8x2
4x2 
2x2 
x2  0
4
2
Pasando este problema a su forma de igualdades añadiendo las variables
necesarias, obtenemos lo siguiente:
Minimizar Z,
sujeta a
Z
 3x1  8x2
x1 + 4x2 + x3
x1 + 2x2
xj  0
 Mx5 =
=
 x4 + x5 =
para j = 1, 2, …, 5
0
4
2
Utilizando el método de la M para obtener una solución óptima por el método
símplex, obtenemos el siguiente conjunto de tablas:
Variable
Lado
Básica
Z
x1
x2
x3
x4
x5
derecho
Z
1
3
8
0
0
M
0
x3
x5
0
0
1
1
4
2
1
0
0
1
0
1
4
2
Z
1
0
M
0
2M
x3
x5
0
0
1
1
4
2
1
0
0
1
0
1
4
2
Z
1
0
2
0
3
M+3
6
x3
x1
0
0
0
1
2
2
1
0
1
1
1
1
2
2
M3 2M8
Cociente
4/1 = 4
2/1 = 2
¿Es óptima?
(0, 0, 4, 0, 2)
Z = 2M
(2, 0, 2, 0, 0)
Z=6
Óptima
Notemos que la primera tabla no se encontraba en la forma apropiada para el
método símplex, ya que el coeficiente de la variable básica x5 era de M en el renglón
de Z, lo cual hacia que no se cumpliera la condición símplex.
2.6. Método de las dos Fases.
En el ejemplo presentado en la sección “Restricciones funcionales de la forma
“, recordemos la función objetivo real:
Problema real:
Minimizar
Z = 0.4x1 + 0.5x2
Sin embargo, el método de la M utiliza la siguiente función objetivo a través de
todo el procedimiento:
Método de la M:
Minimizar
Z = 0.4x1 + 0.5x2 + Mx4 + Mx6
Como los dos primeros coeficientes (0.4 y 0.5) son despreciables comparados
con M, el método de dos fases puede eliminar la M usando las siguientes dos funciones
objetivo que definen Z de manera completamente diferente:
Método de las dos fases:
Fase 1:
Minimizar
Z = x4 + x6
(hasta que x4 = 0 y x6 = 0).
Fase 2:
Minimizar
Z = 0.4x1 + 0.5x2
(con x4 = 0 y x6 = 0).
La función objetivo de la fase 1 se obtiene dividiendo la función objetivo del
método de la M entre M eliminando los términos despreciables, en otras palabras, la
fase 1 consiste en la minimización de la suma de todas las variables artificiales que se
introduzcan en el problema. Como la fase 1 concluye al obtener una solución básica
factible para el problema real (aquella en la que x4 = 0 y x6 = 0), esta solución se usa
como la solución básica factible inicial para aplicar el método símplex al problema real
(con su función objetivo) en la fase 2. Antes de resolver el ejemplo de esta manera se
hará un resumen de las características generales.
Resumen del método de dos fases.
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 =  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.
Problema para la fase 1:
Minimizar
W = x4 + x6,
sujeta a
0.3x1 + 0.1x2 +
0.5x1 + 0.5x2
0.6x1 + 0.4x2
x3
x10
x3
+
x4

x5
+
x6
y
x20
x40
x50
x60
Problema para la fase 2:
Minimizar
Z = 0.4x1 + 0.5x2,
sujeta a
0.3x1 + 0.1x2 +
0.5x1 + 0.5x2
0.6x1 + 0.4x2
x3

x5
=
=
=
y
x10
x20
x3
x50
2.7
6
6
=
=
=
2.7
6
6
Las únicas diferencias entre estos dos problemas se encuentran en la función
objetivo y en la inclusión (fase 1) o exclusión (fase 2) de las variables artificiales x4 y x6.
Sin las variables artificiales, el problema para la fase 2 no tiene una solución básica
factible inicial obvia. El único propósito de resolver el problema para la fase 1 es
obtener una solución básica factible con x4 = 0 y x6 = 0 que se pueda usar como la
solución básica factible inicial para la fase 2.
Las siguientes tablas muestran el resultado de aplicar el método símplex a este
problema para la fase 1:
ariable
Lado
Básica
W
x1
x2
x3
x4
x5
x6
derecho
Cociente
¿Es óptima?
W
1
0
0
0
1
0
1
0
x3
0
0.3
0.1
1
0
0
0
2.7
x4
0
0.5
0.5
0
1
0
0
6
x6
0
0.6
0.4
0
0
1
1
6
W
1
1.1
0.9
0
0
1
0
12
x3
0
0.3
0.1
1
0
0
0
2.7
2.7/0.3=9
(0,0,2.7,6,0,6)
x4
0
0.5
0.5
0
1
0
0
6
6/0.5=12
W = 12
x6
0
0.6
0.4
0
0
1
1
6
6/0.6=10
W
1
0
0.53
3.66
0
1
0
2.1
x1
0
1
0.33
3.33
0
0
0
9
9/0.33=27.2
(9,0,0,1.5,0,0.6)
x4
0
0
0.33
1.66
1
0
0
1.5
1.5/0.33=4.5
W = 2.1
x6
0
0
0.2
2
0
1
1
0.6
0.6/0.2=3
W
1
0
0
1.64
0
1.65
2.65
0.51
x1
0
1
0
6.63
0
1.65
1.65
8.01
8.01/1.65=4.8
(8.01,3,0,0.51,0,0)
x4
0
0
0
1.64
1
1.65
0.51
0.51/1.65=0.30
W = 0.51
x2
0
0
1
10
0
5
1.65
5
W
1
0
0
0
1
0
1
0
x1
0
1
0
5
0
0
7.5
(7.5,4.5,0,0,0.3,0)
x5
0
0
0
0.99
1
0.60
1
0.3
W=0
x2
0
0
1
5.05
3
0
1
0
4.5
Óptima fase 1
3
Notemos que ya hemos obtenido una solución óptima para la fase 1 que
consistió en la minimización de la suma de todas las variables artificiales. Observemos
también que la función objetivo W terminó con un valor de cero en la última tabla, lo
que indica que las dos variables artificiales (x4 y x6) valen cero ó tienen valores
recíprocos y se cancelan mutuamente para dar cero. En nuestro caso, las dos variables
artificiales valen cero ya que no se encuentran en la columna de las variables básicas
en la última tabla de la primera fase. La segunda fase consiste en resolver el problema
original utilizando como tabla inicial de esta fase la última tabla de la primera fase pero
sin considerar la columna de las variables artificiales ya que éstas tomaron el valor de
cero en la primera fase. El método símplex aplicado a la segunda fase se muestra en el
siguiente conjunto de tablas:
Variable
Lado
Básica
Z
Z
1
x1
x5
x2
0
0
0
1
0
0
0
0
1
Z
1
0
0.5
2
0
3
x1
x5
x2
0
0
0
1
0
0
0
0
1
5
0.99
5.05
0
1
0
7.5
0.3
4.5
Z
1
0
0
0.52
0
5.25
x1
x5
x2
0
0
0
1
0
0
0
0
1
5
0.99
5.05
0
1
0
7.5
0.3
4.5
x1
x2
0.4 0.5
derecho Cociente
x3
x4
x5
x6
0
0
0
0
0
0
1
0
0
1
0
7.5
0.3
4.5
5
1
0.99 0.60
3
5.05
¿Es óptima?
(7.5,4.5,0,0,0.3,0)
Z = 5.25
Óptima fase 2
Notemos que no fue necesario aplicar propiamente el método símplex a la
primera tabla de la segunda fase, ya que únicamente aplicando operaciones con
matrices para tratar de llevar esta tabla a la forma apropiada para el método símplex
fue suficiente para resolver el problema planteado en la segunda fase. Es necesario
aclarar que no siempre ocurrirá de esta manera, es decir, si después de dejar la tabla
en la forma apropiada, es necesario aplicar el método símplex, se debe aplicar como lo
hemos estudiado.
Nota: Independientemente de que el problema original (real) sea de maximización o
minimización, la primera fase siempre consistirá en la minimización de la
suma de todas las variables artificiales.
Documentos relacionados
Descargar