Sunteți pe pagina 1din 10

TUTORIAL 3

EL MÉTODO SIMPLEX DE LA PROGRAMACIÓN LINEAL

CONTENIDO DEL TUTORIAL

• CONVERSIÓN DE RESTRICCIONES A ECUACIONES


• CONSTRUCCIÓN DE LA PRIMERA TABLA DEL SIMPLEX
• PROCEDIMIENTO DE SOLUCIÓN DEL SIMPLEX
• RESUMEN DE LOS PASOS DEL SIMPLEX PARA PROBLEMAS DE MÁXIMO
• VARIABLES ARTIFICIALES Y DE HOLGURA
• RESOLUCIÓN DE PROBLEMAS DE MINIMIZACIÓN
• RESUMEN
• TÉRMINOS CLAVE
• PROBLEMA RESUELTO
• CUESTIONES PARA DESARROLLAR
• PROBLEMAS

La mayoría de los problemas reales de programación lineal tienen más de dos variables, por lo que
resulta demasiado compleja su resolución gráfica. Para hallar la solución óptima de estos problemas,
podemos utilizar el método simplex. El método simplex es, de hecho, un algoritmo (conjunto de
instrucciones) con el que examinan los vértices de una forma metódica hasta alcanzar la mejor
solución: mayor beneficio o menor coste. Existen programas de computador y hojas de cálculo que
pueden realizar los cálculos del método simplex por usted. Pero necesita saber qué hay detrás del
escenario para poder comprender mejor los resultados que ofrecen.

CONVERSIÓN DE RESTRICCIONES A ECUACIONES


El primer paso del método simplex es convertir las restricciones de desigualdad de una fórmula PL en
una ecuación. Una restricción del tipo menor o igual (=) puede convertirse en una ecuación,
añadiéndole una variable de holgura con coeficiente positiivo, que representará la cantidad de recurso
no utilizado.
Formulamos el problema del plan de producción de Shader Electronics como sigue, utilizando la
programación linear:

Maximizar beneficio = 7X1 + 5X2.

sujeto a las restricciones PL:

2X1 + 1X2 = 100


4X1 + 3X2 = 240
donde X1 es igual al número de walkmans y X2 es igual al número de televisores a producir.
Para convertir estas restricciones de desigualdad en ecuaciones, añadiremos las variables de holgura
con coeficiente positivo S1 y S2 a la izquierda de la desigualdad, y de esta manera la primera
restricción quedará:

2X1 + X2 +S1 = 100

y la segunda:

4X1+ 3 X2 + S2 =240

Para incluir todas las variables en cada ecuación (condición del próximo paso del simplex), añadimos
las variables de holgura con el coeficiente positivo en cada ecuación con coeficiente cero. Las
ecuaciones serán entonces:
2X1 + 1X2 + 1S1 + 0S2 = 100
4X1 + 3X2 + 0S1 + 1S2 = 240

Dado que las variables de holgura con coeficiente positivo representan recursos no utilizados (como
el tiempo de una máquina o las horas laborables disponibles), no aportan ningún beneficio adicional,
pero tenemos que añadirlas a la función objetivo con coeficientes de beneficio cero. Entonces la
función objetivo se convierte en:

Maximizar beneficio: 7X1$ + 5X2$ +0S1$ + 0S2$

CONSTRUCCIÓN DE LA PRIMERA TABLA DEL SIMPLEX


Para simplificar los cálculos con las ecuaciones y la función objetivo de un problema de PL,
colocaremos todos los coeficientes en una tabla. Podemos expresar las dos ecuaciones de las
restricciones anteriores de la siguiente manera:

Las filas (2, 1, 1, 0) y (4, 3, 1, 0) representan los coeficientes de la primera y segunda ecuación,
respectivamente.
Como en el anterior método de solución basado en el gráfico, empezamos analizando el origen de
coordenadas (X1 = 0, X2 = 0) con un beneficio 0. Los valores de las otras dos variables (S1 y S2)
deben ser por lo tanto diferentes de cero, porque en la ecuación 2X1 + 1X2 + 1S1 = 100 vemos que S1
= 100, y de la misma manera en la segunda vemos que S2 = 240. Estas dos variables de holgura con
coeficiente positivo componen pues la solución inicial, de hecho, sus valores los podemos encontrar
en la columna “cantidad” de cada variable. Como X1 y X2 no están en la solución, sus valores serán
automáticamente igual a cero.
Esta solución inicial se llama solución posible de base y se puede expresar en forma vectorial, o
columnas, de la siguiente manera:

Las variables que están en la solución se llaman, según la terminología de la PL, variables en base.
En este caso, las variables básicas (o en base) serían S1 y S2, mientras que las variables que no
están en la solución, o en la base, ( X1 y X2) serían variables no básicas.
La Tabla T3.1 muestra la tabla inicial completa del problema de Shader Electronics. Los términos y
filas que no había visto hasta ahora son los siguientes:
Cj: Beneficio unitario de cada producto (coeficientes de la función objetivo). Cj está tanto en la
primera fila como en la primera columna. En la primera fila se trata de los beneficios unitarios de cada
una de las variables de la función objetivo en la programación lineal. En la columna es el beneficio
unitario de cada una de las variables básicas (representadas en la segunda columna).
Zj: En la columna de “Cantidad” proporciona el beneficio total (beneficio bruto en este caso)
de la solución actual. En el resto de columnas (bajo las variables) significa el beneficio bruto perdido
por añadir una unidad de esta variable a la solución actual. El valor Zj para cada columna se
encuentra multiplicando la Cj de cada fila por el número de la columna en cuestión y sumando los
valores resultantes.
Los cálculos para los valores de las Zj en la Tabla T3.1 son los siguientes:

Zj (para la columna de X1) = 0 (2) + 0 (4) = 0


Zj (para la columna de X2) = 0 (1) + 0 (3) = 0
Zj (para la columna de S1) = 0 (1) + 0 (0) = 0
Zj (para la columna de S2) = 0 (0) + 0 (1) = 0
Zj (para beneficio total) = 0 (100) + 0 (240) = 0

Cj - Zj: Este número representa el beneficio neto (esto es, el beneficio ganado menos el beneficio
perdido) del resultado de introducir una unidad del producto (variable) en la solución (en la base). No
se calcula para la columna de “Cantidad”. Para calcular estos valores simplemente restamos de Cj (de
la primera fila) el valor de Zj calculado en la fila anterior.
Los cálculos de la fila del beneficio neto unitario (Cj - Zj) en este ejemplo son los siguientes:

Es bastante obvio que el beneficio aportado por esta solución inicial (0 dólares) no es el óptimo.
Examinando los valores de la fila de las Cj - Zj de la Tabla T3.1, podemos ver que el beneficio total
aumentará en 7 dólares por unidad de Xj (walkmans) y en 5 dólares por unidad de X2 (televisor). Un
número negativo en la fila Cj - Zj nos indicaría que el beneficio decrecería en tal cantidad por unidad,
si introducimos la variable en cuestión en la base. Nos encontraremos ante una solución óptima en el
método simplex cuando en la fila de las Cj - Zj no se encuentre ningún número positivo, que no es el
caso de nuestra primera tabla.

TABLA T3.1 Tabla inicial del simplex completa

PROCEDIMIENTO DE SOLUCIÓN DEL SIMPLEX


Una vez completada la primera tabla, procederemos a través de series de cinco pasos para calcular
todos los valores que se necesitarán en la siguiente tabla. Los cálculos no son difíciles, pero sí son lo
suficientemente complejos para que cualquier pequeño error aritmético produzca una muy mala
solución.
En primer lugar, enumeraremos los cinco pasos y después los aplicaremos en la construcción de la
segunda y tercera tabla del ejemplo de Shader Electronics.
1. Determinar la variable que entrará en base e identificar la columna (y por tanto la variable) con el
valor de Cj - Zj mayor de los positivos. Este paso significa que deseamos producir algo del
producto que aporta el mayor beneficio adicional por unidad.

2. Determinar la variable que va a ser reemplazada. Dado que hemos decidido que una nueva
variable pase a formar parte de la base, debemos decidir cual de las existentes sale para dejarle
espacio. Para ello, dividimos el valor de la columna “cantidad” de cada variable por el número de
la misma fila y de la columna correspondiente a la variable que hemos decidido que entrase en el
paso 1. La fila con menor cociente será reemplazada en la tabla siguiente (el menor de los
cocientes proporciona el máximo número de unidades de la variable que podemos asignar en la
solución). Esta fila de la variable que sale de la base se llama la fila del pivote, mientras que la
columna de la variable que entra en base se llama la columna del pivote. El pivote es el
elemento común (la intersección) de la fila de la variable que sale con la columna de la variable
que entra.
3. Calcular los nuevos valores de la fila del pivote. Para encontrarlos, simplemente dividimos cada
componente por el pivote.

4. Calcular los nuevos valores para cada una de las filas restantes. En nuestro ejemplo, solamente
existen dos filas, pero en problemas más grandes puede haber muchas más, en concreto,
existirán tantas filas como restricciones. Los cálculos se efectúan de la siguiente forma:

5. Calcular las filas de la Zj y de las Cj - Zj de la misma forma que se hizo en la primera tabla. Si
todas las Cj - Zj son negativas o cero, hemos hallado la solución óptima; si éste no es el caso
volvemos al paso 1.

Todos estos cálculos los veremos mejor utilizando un ejemplo. La tabla inicial del simplex de la Tabla
T3.1 se repite abajo, por lo que, vamos a seguir estos cinco pasos que habíamos avanzado para
hasta alcanzar la solución óptima.

Paso 1: La variable X1 entra en base dado que tiene la mayor Cj - Zj. Esta columna será a columna del
pivote.

Paso 2: Dividimos cada número de la columna “cantidad” por el número correspondiente de la


columna del pivote: 100/2 = 50 para la primera fila, y 240/4 = 60 para la segunda. El menor de ellos
(50) es el correspondiente a la fila del pivote y el pivote y la variable que se va a reemplazar. La fila
del pivote la identificaremos con una flecha y el pivote dibujando un círculo alrededor. La variable X1,
por tanto, reemplazará en la base a la variable S1, como vemos en la segunda tabla.

Paso 3: Calculamos la nueva fila del pivote tomando cada uno de los valores de la antigua, y
dividiéndolos por el pivote: (2/2 = 1, ½ = ½, ½ = ½, 0/2 = 0, 100/2 = 50). Esta nueva versión de la fila
completa del pivote aparece debajo:

Paso 4: Calculamos el resto de nuevos valores, es decir, los nuevos valores de la fila de S2.
Paso 5: Calculamos las filas Zj y las Cj – Zj:

Zj (de X1) = 7$(1) + 0(0) = 7$


Zj (de X2) = 7$(1/2) + 0(1) = 7/2$ Cj – Zj = 7$ – 7$ = 0
Zj (de S1) = 7$(1/2) + 0(-2) = 7/2$ Cj – Zj = 5$ – 7/2$ = 3/2$
Zj (de S2) = 7$(0) + 0(1) = 0 Cj – Zj = 0 – 7/2$ = -7/2$
Zj (beneficio total) = 7$(50) + 0(40) = 350$ Cj – Zj = 0 – 0 = 0

Como no ocurre que todas las Cj – Zj sean cero o negativas, la solución actual que es X1 = 50, S2 =
40, X2 = S1 = 0, beneficio = 350 todavía no es la óptima, por lo que procedemos a calcular la tercera
tabla repitiendo los cinco pasos.

Paso 1: La variable X2 entra en base dado que Cj – Zj = 3/2 es el mayor número (y único)
positivo de la línea. Por ello, por cada unidad de X2, que empezamos a producir, la función objetiva se
incrementará en 3/2 ó 1,50 dólares.

Paso 2: La fila del pivote será S2 porque el cociente 40/1 = 40 es menor que 50/(1/2) = 100.

Paso 3: Reemplazamos la fila del pivote tomando cada uno de los valores y dividiéndolos por
el pivote. Como ahora cada número se divide entre 1, la fila no variará.
Paso 4: Calculamos el resto de nuevos valores de la fila de X1.
Paso 5: Calculamos las Zj y las Cj – Zj:

Zj (de X1) = 7$(1) + 5(0) = 7$ Cj – Zj = 7$ – 7 = 0$


Zj (de X2) = 7$(0) + 5$(1) = 5$ Cj – Zj = 5$ – 5 = 0$
Zj (de S1) = 7$(3/2) + 5$(-2) = 1/2$ Cj – Zj = 0$ – 1/2 = -1/2$
Zj (de S2) = 7$(-1/2) + 5$(1) = 3/2$ Cj – Zj = 0$ – 3/2 = -3/2$
Zj (beneficio total) = 7$(30) + 5$(40) = 410$

Los resultados de la tercera y última tabla los podemos ver en la Tabla T3.2.
Como todas las Cj – Zj de esta tercera tabla son negativas o cero, podemos asegurar que hemos
alcanzado el óptimo. La solución es: X1= (walkmans) y X2= (televisores), S1= (no sobra nada del
primer recurso), S2= (del segundo recurso tampoco sobra nada) que proporciona un beneficio de 410
dólares.

RESUMEN DE LOS PASOS DEL SIMPLEX PARA PROBLEMAS DE


MÁXIMO

Los pasos que se siguen si utilizamos el método simplex para ayudar a resolver un programa lineal
con la función objetivo de máximo son los siguientes:

1. Escoger la variable con mayor Cj – Zj positiva para que entre en la base.


2. Determinar la fila que se va a reemplazar escogiendo aquélla con menor (no negativo) cociente
de cantidad para la columna del pivote.
3. Calcular los nuevos valores de la fila del pivote.
4. Calcular los nuevos valores para el resto de las filas.
5. Calcular las Zj y Cj – Zj de la nueva tabla. Si no existen valores Cj – Zj mayores que cero, volver al
paso 1.

VARIABLES ARTIFICIALES Y DE HOLGURA


Las restricciones de los programas lineales no siempre son de la forma “menor o igual a” (=), como
hemos visto en los ejemplos anteriores. Igual de habituales son las restricciones del tipo “mayor o
igual a” (=) y las que se expresan en forma de igualdad (=). Para utilizar el método simplex, cada una
de ellas debe convertirse a un formato especial. Si no se hace así, el método simplex es incapaz de
fijar una solución posible inicial en la primera tabla. El Ejemplo T1 muestra cómo realizar la
conversión de este tipo de restricciones.
EJEMPLO T1
Se formularon las siguientes restricciones de un problema de PL para la editorial Joyce Cohen
Publishing Company. Debemos realizar las conversiones pertinentes para poder utilizar el algoritmo
simplex.

Restricción 1. 25X1 + 30X2 = 900. Para reconvertir una igualdad, simplemente añadimos una variable
artificial (A1 ) y queda la ecuación:

25X1 + 30X2 + A1 = 900

Una variable artificial es una variable que no tiene ningún significado real, simplemente se utiliza para
crear una solución posible de base inicial y así poder aplicar el algoritmo simplex. Una variable
artificial no puede estar en la solución final del problema.

Restricción 2. 5X1 + 13X2 + 8X3 = 2.100. Para tratar una restricción del tipo =, restaremos una variable
de holgura con el coeficiente negativo (S1), y para obtener una solución de partida añadiremos una
nueva variable artificial (A2), quedando la siguiente ecuación:

5X1 + 13X2 + 8X3 - S1 + A2 = 2.100

Una variable de holgura con el coeficiente negativo tiene un significado físico. Es la cantidad
superior e inferior al límite mínimo fijado al lado derecho de una restricción del tipo “mayor o igual a”.
Siempre que se añade una variable artificial o de holgura con coeficiente negativo a una restricción,
debemos incluirla en las otras ecuaciones y en la función objetiva del problema, al igual que se hacía
con las variables de holgura con coeficiente positivo.
A cada variable artificial se le asigna un coste muy grande para asegurarse de que no aparecerá en la
solución final. En lugar de utilizar cifras como 10.000 dólares o 1 millón de dólares, simplemente se
utiliza el símbolo M$, que representa un número muy grande. Las variables de holgura con
coeficiente negativo, como las que tienen coeficiente positivo, tienen un coste igual a cero. El Ejemplo
T2 nos muestra cómo utilizarlas.
EJEMPLO T2
Memphis Chemical Corp. debe producir 1.000 libras de una mezcla especial de fosfato y
potasio para un cliente. El fosfato cuesta 5 dólares por libra y el potasio 6. No se pueden utilizar más
de 300 libras de fosfato ni menos de 150 libras de potasio.
Se desea formular el programa lineal que minimice el coste de la operación y convertir las
restricciones y la función objetivo de forma que pueda utilizarse el algoritmo simplex para resolverlo.

X1 = libras de fosfato en la mezcla


X2 = libras de potasio en la mezcla

Función objetivo: minimizar coste = 5X1 + 6X2


Función objetivo en formato simplex:

Minimizar costes = 5$X1 + 6$X2+ 0$S1+ 0$S2 + M$A1+ M$A2

Formato normal Formato simplex


1ª restricción: 1X1+ 1X2 = 1.000 1X1 + 1X2 + 1A1 = 1.000
2ª restricción: 1X1 = 300 1X1 + 1S1 = 300
3ª restricción: 1X2 = 150 1X2 - 1S2 + 1A2 = 150

RESOLUCIÓN DE PROBLEMAS DE MINIMIZACIÓN


Ahora que ya ha trabajado con diferentes ejemplos de problemas de PL con los tres tipos de
restricciones, está preparado para resolver un problema de minimización utilizando el algoritmo
simplex. Los problemas de minimización son muy similares a los de maximización que ya hemos
resuelto anteriormente. La única diferencia significativa se encuentra en la fila de las Cj – Zj. Dado que
nuestro objetivo ahora es minimizar costes, la variable que entrará en base en cada iteración (la
columna del pivote) será aquella que tenga una Cj – Zj más negativa. Por lo tanto, escogeremos la
variable que reduzca más el coste total. En un problema de minimización, se alcanzará la solución
óptima cuando las Cj – Zj sean todas positivas o cero. El resto de pasos seguirán siendo los mismos.

1. Escoger la variable con una Cj – Zj más negativa para que entre en base.
2. Determinar la fila que se va a reemplazar, escogiendo aquélla que tenga el menor
cociente (que no sea negativo) entre los valores de la columna “cantidad” y los de la
columna del pivote.
3. Calcular los nuevos valores de la fila del pivote.
4. Calcular los nuevos valores del resto de filas.
5. Calcular las Cj – Zj de la nueva tabla. Si no existiera ningún valor de Cj – Zj inferior a cero,
volver al paso 1.

RESUMEN
Este capítulo ha introducido una clase especial de modelo: la programación lineal. Se ha constatado
que la PL es extremadamente útil cuando se intenta utilizar los recursos de una organización de la
forma más eficiente. Todos los problemas de PL pueden también ser resueltos a través del método
simplex, tanto manualmente como mediante la utilización de programas de computador. Este método
es matemáticamente más complejo que el método gráfico, pero proporciona una muy valiosa
información económica, como son los precios sombra. La PL puede utilizarse en un amplio abanico
de aplicaciones económicas, como revelan los ejemplos y problemas de este capítulo.

TÉRMINOS CLAVE
Método simplex (p. T3 -2)
Fila del pivote (p. T3 -5)
Columna del pivote (p. T3-5)
Pivote (p. T3-5)
Variable de holgura con el coeficiente negativo (p. T3-8)

PROBLEMAS RESUELTOS
Problema resuelto T3.1
Convertir las siguientes restricciones y función objetivo a la forma adecuada para que puedan ser
utilizadas en la resolución mediante el simplex.

Función objetivo: Minimizar coste = 4X1+1X2


Sujeto a las restricciones: 3X1+ X2 = 3:
4X1+3X2 = 6
X1+ 2X2 = 3

Solución

Minimizar costes = 4X1+1X2+ 0S1 +0S2+ MA 1+ MA 2


Sujeto a: 3X1+1X2 + 1A1 =3
4X1+3X2 –1S1 +1A2 =6
1X1+2X2 +1S2 =3

CUESTIONES PARA DESARROLLAR


1. Explique el objetivo y procedimientos del método simplex.
2. ¿En que se diferencian los procedimientos gráficos y el método simplex en la resolución de
programas lineales? ¿En qué se parecen? ¿Bajo qué circunstancias sería preferible el método
gráfico?
3. ¿Cuáles son las reglas del simplex para seleccionar la columna del pivote? ¿Y para la fila del
pivote? ¿Y para el pivote?
4. Un determinado problema de programación lineal tiene la siguiente función objetivo:

Maximizar beneficio = 8$X1 + 6$X2 + 12$X3 – 2$X4

¿Qué variable debería entrar en base en la primera iteración del simplex? Y si la función objetivo
fuese:

Minimizar coste = 2,5$X1 + 2,9$X2 + 4,0$X3 + 7,9$X4

¿Qué variable debería entrar en base en la primera iteración del simplex?


5. En la resolución de un programa lineal por el método de simplex ¿cuándo se añaden las
variables de holgura con coeficiente positivo?
6. Enumere los pasos del simplex para un problema de maximización.
7. ¿Qué significado tiene una variable de holgura con el coeficiente negativo? ¿Qué es una variable
artificial?

PROBLEMAS
T3.1 Cada mesita de café que fabrican John Alessi Designers reporta a la empresa
un beneficio de 9 dólares. Por cada librería se obtienen 12 dólares de beneficio.
La empresa de Alessi es pequeña y sus recursos son limitados. Durante un
determinado período de producción (una semana), se dispone de 10 galones
de barniz y de 12 medidas de madera de secoya de alta calidad. Cada mesita
de café necesita un galón de barniz y una medida de madera. Cada librería
necesita un galón de barniz y dos medidas de madera.

Formular el problema del plan de producción de Alessi como un problema


de PL, y resolverlo utilizando el método simplex. ¿Cuántas mesitas de café y
librerías se tendrían que producir cada semana? ¿Cuál será el beneficio
máximo?
T3.2 a) A partir de los datos adjuntos haga la primera tabla del simplex.

1X1 + 4X2 = 24
1X1 + 2X2 =16
Maximizar beneficio = 3$X1 + 9$X2
(deberá añadir las variables de holgura con el coeficiente positivo)

b) Explique brevemente los pasos necesarios para resolver el problema.


c) Haga la siguiente tabla. Determine si es óptima o no.
d) Si es necesario, desarrolle otra tabla y determine si esta nueva solución es
óptima o no. Interprete esta tabla.
e) Empiece con la misma tabla inicial del apartado a), pero haga entrar en la
base la variable X1. Continúe iterando (dos iteraciones) hasta llegar a la
solución óptima.
T3.3 Resuelva el siguiente programa lineal de forma gráfica. Después, resuélvalo
mediante el simplex. Vaya indicando en el gráfico los vértices generados en
cada iteración.
Maximizar beneficio = 3$X1 + 5$X2
Sujeto a: X2 = 6
3X1 + 2X2 = 18
X1, X2 = 0

T3.4 Resuelva el siguiente programa lineal de forma gráfica. Después, resuélvalo


mediante el simplex.
Maximizar beneficio = 4X1 + 5X2
Sujeto a: X1 + 2X2 = 80
3X1 + X2 = 75
X1, X2 = 0

¿Cuáles son los valores de las variables en base en cada iteración? ¿Cuáles
son las variables no base en cada iteración?

T3.5 Distribuciones Barrow empaqueta y distribuye suministros industriales. Un


envío estándar puede ser empaquetado en un contenedor de clase A, de clase
K o de clase T. Un contenedor de clase A aporta un beneficio unitario de 8
dólares, el de clase K, de 6 dólares y el de clase T, de 14 dólares. Cada envío
necesita una cierta cantidad de material de embalaje y un cierto tiempo de
preparación.

El director de la empresa, Joe Barrow, debe decidir el número óptimo


de contenedores de cada clase que deben empaquetarse cada semana. Está
limitado por las restricciones de recursos mencionadas previamente, pero
además ha decidido que debe mantener a sus seis empleados ocupados de
doscientas cuarenta horas de trabajo (seis empleados por cuarenta horas) de
cada semana.

Formular y resolver el problema a través del método simplex.


: T 3.6 Haga la primera tabla del simplex para los siguientes datos utilizados
previamente en el problema resuelto T3.1.

Minimizar coste = 4X1 + 1X2 + 0S1 + 0S1 + MA1 + MA2


Sujeto a: 3X1 + 1X2 + 1A1 =3
4X1 + 3X2 – 1S2 +1A2 =6
1X1+ 2X2 +1S2 =3

a) ¿Qué variable entrará en base?


¿Qué variable saldrá de la base?
T3.7 Resuelva el problema anterior aplicando el método simplex.

S-ar putea să vă placă și