Anda di halaman 1dari 23

Unidad 4

Mtodo Simplex

Se ha visto que los problemas de programacin lineal (pl) tienen una estructura
bien definida, se trata de optimizar una funcin pero respetando una serie de restricciones que estn dadas por un sistema de ecuaciones, casi todas desigualdades. Encontrar la
solucin de tales problemas implica encontrar las soluciones posibles de este sistema de
ecuaciones. En los cursos de lgebra lineal se establece que cuando un sistema tiene menos ecuaciones que incgnitas, generalmente tiene un nmero infinito de soluciones.
En la unidad 2 se mostr cmo encontrar la solucin a problemas de solamente dos
incgnitas que incluyen desigualdades, ya que en ese caso se puede trabajar en el espacio R2. En estos casos se vio que las restricciones determinan una regin factible que es
el lugar geomtrico de los puntos solucin del sistema de ecuaciones (desigualdades)
correspondientes a las restricciones. Tambin se vio que de esas infinitas soluciones, la
solucin ptima, o sea, la que optimiza a la funcin objetivo (fo), tiene que estar en
uno de los vrtices de la regin factible, y estos vrtices corresponden a la interseccin
de un par de ecuaciones de restriccin.
Como se trata de sistemas lineales, se pueden encontrar analticamente los vrtices interseccin, ver cules quedan dentro de la regin factible y que por lo tanto
son una solucin bsica factible y ver cual de ellos da el mejor valor a la fo. Pero los
problemas reales suelen tener mucho ms que dos variables; en muchos problemas no
muy complicados, se trata de decenas y hasta cientos de variables sujetas a decenas de
restricciones. Si se piensa en un problema pequeo de 2 variables y 6 restricciones,
habr que encontrar todas las intersecciones de cada par de rectas, que en este caso
seran 15. En general en R2, el nmero de intersecciones entre n rectas ser el nmero
de combinaciones de n tomados de a 2, o sea, Cn2. A estos vrtices hay que agregar las
intersecciones de cada recta con los ejes coordenados, otros 2n vrtices. Pero no todos
estos 2n + Cn2 puntos pertenecen a la frontera de la regin factible; habr que ver cules de ellos son soluciones factibles; en el caso de seis restricciones se reducen como
mximo a siete, y determinar en cul de ellos se encuentra la solucin ptima.
En los problemas reales, el nmero de puntos que se han de analizar es tan grande
que se necesita contar con una estrategia eficiente de bsqueda que permita encontrar
solamente aquellos puntos que se encuentran en la frontera, o sea, que corresponden a
una solucin posible.
121

Programacin lineal

Para solucionar estos problemas en el ao de 1947 George Dantzig desarroll un mtodo extraordinariamente eficiente conocido como Simplex, que es capaz de encontrar la
solucin ptima de entre las muchas soluciones posibles analizando slo algunas de las
soluciones bsica (o sea, vrtices): parte de una solucin bsica inicial y contina inspeccionando las soluciones adyacentes que permitan mejorar el objetivo del problema. El
clculo de problemas reales fue posible gracias a que simultneamente ocurri el desarrollo de las computadoras digitales en que estaban trabajando Eckert, Wilkes y finalmente
von Neumann, lo que permiti que las operaciones aritmticas se realizarn en pocos
segundos y posibilitaron as la computacin de miles de operaciones en poco tiempo.
Dantzig fue un doctor en matemticas de la Universidad de California que durante
la Segunda Guerra Mundial tuvo que trabajar en el ejrcito en la planificacin de la
logstica para el abastecimiento. Esta visin de los problemas reales lo llev al desarrollo
del mtodo Simplex. Eckert junto con Mauchly fabricaron, en la Universidad de Pensylvania, la primera computadora de propsito general, la enac; esta computadora integr a la electrnica el concepto de programa resultado de la teora de autmatas
desarrollada por von Newmman, cientfico hngaro radicado en Estados Unidos. Von
Newman hizo notables aportaciones a la fsica cuntica, contribuy al desarrollo de la
lgica y para la economa propuso la teora de juegos y la del equilibrio general como
herramientas fundamentales para su anlisis. El trabajo de estos brillantes cientficos
durante la dcada de 1940 hizo posible que se desarrollara el mtodo Simplex, que
permite la solucin de una variadsima gama de problemas de manera muy eficiente
dando una herramienta fundamental para la investigacin de operaciones.
El mtodo Simplex es un algoritmo iterativo, esto es, un procedimiento que a partir
de un paso inicial realiza un clculo para encontrar una solucin posible; verifica si esta
solucin es mejorable y, si lo es, vuelve a calcular una nueva solucin mejor que la anterior, esto es, realiza una iteracin; cuando ya no la pueda mejorar, es que lleg a la
solucin ptima. El procedimiento de iteracin es similar a un paso del mtodo de
Gauss con pivote. Sin embargo, el mtodo de Gauss se aplica a sistemas de ecuaciones
(igualdades) y no a desigualdades; este inconveniente es subsanado agregando una variable a cada restriccin que representa la holgura o sobrante de ese recurso.
Aunque no se ver la demostracin formal del mtodo Simplex, es importante destacar las premisas o teoremas en que se basa:
1) Todo sistema de la forma A x = b, o no tiene solucin o el conjunto de las soluciones
factibles forman un conjunto convexo (polgono convexo en R2).
2) Si un problema de pl tiene solucin ptima, sta es un punto extremo o de la frontera del conjunto de soluciones del sistema de restricciones del problema. Si ms de
un punto es ptimo, entonces lo son todos los puntos en combinacin lineal de los
dos anteriores.

122

Mtodo simplex

En esta unidad se explicar el mtodo Simplex para el caso cannico, esto es, un
problema en que se quiere maximizar la utilidad sujeta a restricciones debido a recursos
limitados como materias primas y horas de trabajo, representadas por relaciones de
menor o igual.
Para facilitar la explicacin del mtodo se utilizar un ejemplo tpico: la produccin
de dos artculos sujeta a restricciones de mano de obra, materias primas y demanda. Se
resolver primero por el mtodo grfico para luego resolverlo con el mtodo Simplex.
Ejemplo 4.1
Una empresa produce dos tipos de artculos, el a y el b. La utilidad que se obtiene por
unidad es de $150 por el a y $200 por el b. El gerente de produccin quiere realizar la
planeacin semanal sabiendo que solamente cuenta con 64 horas para la elaboracin y
24 unidades de materia prima. De semanas anteriores sabe que la demanda mxima del
artculo b es de 6 unidades. En el cuadro se indican los requisitos para realizar cada uno
de los artculos.
Cuadro 4.1
a

Mano de obra (h)

Materia prima

Variables de decisin:
x1: cantidad del artculo a a producir
x2: cantidad del artculo b a producir
Funcin objetivo:
Mx U = 150x1 + 200x2 (4.1a)
Restricciones:
Mano de obra: 8x1 + 8x2 64 horas
Materias primas: 4x1 + 2x2 24 unidades
Demanda: x2 6 artculos

(4.1b)
(4.1c)
(4.1d)

La solucin del problema se muestra en la grfica 4.1:

123

Programacin lineal

Grfica 4.1
14
12
4x1 + 2x2 = 24
10
8

8x1 + 8x2 = 64

6 D

: 0x1 + 1x2 = 6

4
B
2

Payoff: 150x1 + 200x2 = 1 500


A

4
2
Optimal Decisions (x1, x2) : (2, 6)
: 8x1 + 8x2 64
: 4x1 + 2x2 24
: 0x1 + 1x2 6

10

12

14

En la grfica 4.1 aparecen como vrtices de la regin factible los puntos B = (4, 4)
interseccin entre la recta de la restriccin de mano de obra y la correspondiente a las
materias primas; el vrtice C = (2, 6) en el que se agotan las horas de mano de obra y
se satisface totalmente la demanda, y las intersecciones con los ejes debido a las condiciones de no negatividad D = (0, 6) y A = (6, 0). Todos los anteriores son soluciones
factibles, que en el mtodo Simplex se les llama soluciones bsicas factibles. Hay otros
puntos de interseccin de las restricciones en la grfica 4.1 como el (3, 6), pero estn
fuera de la regin de soluciones posibles del problema, en este punto se exceden las
horas disponibles.
Para poder trabajar analticamente es ms conveniente tener un sistema de ecuaciones lineales, por lo que el primer paso es transformar las desigualdades en igualdades
agregando variables que se denominan variables de holgura; por ejemplo, la ecuacin
(4.1b) sobre las horas hombre utilizadas:
8x1 + 8x2 64

124

Mtodo simplex

se convierte en:
8x1 + 8x2 + h1 = 64

(4.2b)

donde h1 son las horas hombre no utilizadas.


De la misma manera la ecuacin correspondiente a las materias primas:
4x1 + 2x2 24
se transforma en:
4x1 + 2x2 + h2 = 24

(4.2c)

donde h2 son las unidades de materia prima sobrantes.


Por ltimo la ecuacin de la demanda:
x2 6
se convierte en:
x2 + h3 = 6

(4.2d)

donde con x2 ser el nmero de artculos a producidos y h3 representa cuantos an


se pueden producir sin superar la demanda mxima.
El sistema queda entonces as:
Mx U = 150x1 + 200x2
s.a.
8x1 + 8x2 + h1 = 64
4x1 + 2x2 + h2 = 24
x2 + h3 = 6
x1, x2, h1, h2, h3 0
A este sistema se le llama sistema aumentado, y cuenta con cinco variables y tres
ecuaciones, por lo que se trata de un sistema con infinitas soluciones. Si las tres ecuaciones son linealmente independientes, para obtener una de las soluciones es necesario
dar un valor arbitrario a dos de las variables, y quedan entonces solo tres incgnitas que
podrn despejarse.
8x1 + 8x2 + h1 = 64
4x1 + 2x2 + h2 = 24

x2 + h3 = 6
125

(4.2b)
(4.2c)
(4.2d)

Programacin lineal

Primer paso
El mtodo Simplex propone como primer paso asignar a las variables originales los valores (x1, x2) = (0, 0), con lo que el sistema se reduce a:
8(0) + 8(0) + h1 = 64
4(0) + 2(0) + h2 = 24
0 + h3 = 6

(4.3b)
(4.3c)
(4.3d)

y despejando las variables restantes:


h1 = 64 8x1 8x2 (4.3b)
h2 = 24 4x1 2x2 (4.3c)
h3 = 6
(4.3d)
la solucin inicial queda as:
xo = (x1, x2, h1, h2, h3) = (0, 0, 64, 24, 6)
si se sustituye en la funcin de utilidad:
Uo = 0

Segundo paso
El siguiente paso es preguntarse si puede mejorarse esta solucin forzando que sea cero
a otra variable diferente de las que actualmente lo son, y asignando un valor diferente
de cero a una de las que en el paso anterior lo eran: x1 o x2. Para esto se analizan los
coeficientes de la fo para ver cul de las variables ofrece un incremento mayor por
unidad producida.
U = 150x1 + 200x2
en este caso cada unidad de la variable x2 contribuye con 200, por lo que se tratar de
hacer que la variable x2 tome el mayor valor posible; esto significa tratar de producir la
mayor cantidad posible de unidades del artculo b.

126

Mtodo simplex

Tercer paso
Si la solucin es mejorable, hay que calcular la nueva solucin. Se deber tratar de
que x2 tome el mayor valor posible. Las restricciones son las que limitan este valor;
en las ecuaciones (4.3) se observa que se cuenta con 64 horas hombre y se necesitan
8 horas para hacer cada artculo, por lo tanto el nmero mximo que se podra producir es x2 = 64 / 8 = 8.
En cuanto a materias primas, se requieren de 2 unidades por cada artculo b, y se
dispone de 24 unidades, por lo que slo se podran producir x2 = 24 / 2 = 12.
Adems, por cuestiones de demanda del mercado, x2 = 6; entonces el valor mximo
que puede tomar x2 es el menor de los anteriores:
x2 mximo = 6
Si se produjeran ms unidades, no podran venderse en el mercado. Por lo tanto, h3,
que corresponde al nmero de artculos que an se podran fabricar, se hace igual a
cero:
x2 = 6

h3 = 0

Se dice que x2 es la variable de entrada y que h3 es la variable de salida. Para determinar cules son los recursos an disponibles, de (4.2d) se despeja la nueva variable
bsica y se sustituye en las ecuaciones de los otros recursos disponibles, (4.3b) y (4.3c):
x2 = 6 h3
h1 = 64 8x1 8 (6 h3) =
h1 = 16 8x1 + 8 h3
h2 = 24 4x1 2 (6 h3) =
h2 = 12 4x1 + 2 h3
Se llega entonces a una solucin bsica mejorada, nuevamente un sistema con cinco
incgnitas y tres ecuaciones, por lo que es necesario asignar valor a dos de ellas, en este
caso x1 = 0 y h3 = 0; en este sistema:
x2 = 6 h 3
h1 = 16 8x1 + 8 h3 (4.4b)
h2 = 12 4x1 + 2 h3 (4.4c)

127

Programacin lineal

Esto indica que se deben producir 6 unidades del producto b, pero que an se dispone de 16 de las 64 horas hombre y de 12 unidades de materia prima de las 24 originales. La utilidad en este caso ser de $1200, superior a la solucin anterior:
x1 = (x1, x2, h1, h2, h3) = (0, 6, 16, 12, 0)
U1 = 1200
Una vez obtenida la nueva solucin es necesario regresar al paso 2. Es posible mejorar esta solucin? Para esto hay que calcular el efecto neto sobre la funcin de utilidad
de cada una de las variables. Ya que no es posible seguir incrementando el valor de x2,
las utilidades marginal o unitaria de cada una de las variables pueden no ser las que
tenamos al comenzar. Para esto se sustituyen las ecuaciones de las variables bsicas en
la fo y se observa el valor de los coeficientes:
U = 150x1 + 200x2 + 0 h1 + 0 h2 + 0 h3
Como las variables de holgura tienen coeficiente cero, se anulan y queda as:
U1 = 150x1 + 200 (6 h3) = 1200 + 150x1 200 h3
Esta nueva expresin nos informa que por cada unidad del artculo a que se produzca la fo se incrementar en $150, y por cada unidad que se incremente h3, se
dejarn de ganar $200. (Aqu es importante sealar que la utilidad incremental por
cada artculo a coincide con el valor original, pero esto no siempre es as, ya que en
ciertos casos habr que dejar de producir parte de un artculo para poder hacer el otro,
con lo que la utilidad ser menor.) De la ecuacin (4.4b) se obtiene x1 = 2, y de la
(4.4c), x1= 3; o sea, las 16 horas hombre an disponibles permiten producir 2 unidades de a, aunque se dispone de materia prima para 3 de ellas; por lo tanto se podrn
producir slo x1 = 2; la nueva solucin ser sta:
x1 = 2
x2 = 6
h1 =16 16 = 0
h2 = 12 8 = 4
h3 = 0
La nueva solucin tiene tres variables distintas de cero y dos igual a cero; en este
paso la variable entrante fue x1, y la saliente, h1. Las tres primeras son las nuevas variables bsicas. Sustituyendo la variable entrante en la fo:

128

Mtodo simplex

U2 =
U2 =
U2 =
U2 =

1200 + 150x1 200 h3


1200 + 150x1 200 h3 = 1200 +150 (2 h3) 200 h3
1500 350 h3
1500

La nueva solucin es sta:


x2 = (x1, x2, h1, h2, h3) = (2, 6, 0, 4, 0)
U2 = 1500
Esta solucin es mejor que la anterior ya que la fo aument. La ecuacin de la fo
ya no tiene variables con coeficientes positivos, por lo tanto ya no es posible incrementar
la utilidad, pues si h3 tomara un valor positivo, es decir, si se produjeran menos de seis
unidades del producto b, la utilidad disminuira, por lo que se ha llegado a la solucin
ptima.

El mtodo Simplex en forma tabular


La resolucin de estos problemas por el mtodo analtico utilizado en la seccin anterior facilita entender el significado fsico de cada una de las variables y parmetros con
el problema concreto que se est analizando. Pero as como se puede resolver un sistema
de ecuaciones lineales por sustitucin o por los mtodos matriciales, lo realizado no
difiere mucho del mtodo de Gauss con pivote, aunque tiene sus particularidades.
Para poder aplicar el mtodo matricial, es necesario contar con un sistema de ecuaciones, no de desigualdades, por lo que el primer paso es reescribir el sistema; a partir
de all el mtodo realiza una serie de iteraciones hasta encontrar la mejor solucin. Cada
iteracin es una transformacin del sistema de ecuaciones que mejora la solucin anterior. El mtodo se puede bosquejar as:
1) Transformar las desigualdades del problema en un problema estndar introduciendo las variables de holgura.
2) Construir la tabla inicial.
3) Determinar la solucin inicial, llamada solucin bsica inicial.
4) Determinar si se puede mejorar la solucin dependiendo de los coeficientes de la
funcin objetivo segn el criterio de mejorabilidad:
Si s, entonces hay que calcular la nueva solucin:
a) determinar cul es la variable entrante
b) determinar cul es la variable saliente
c) modificar las restricciones por pivoteo
129

Programacin lineal

d) calcular el valor de la fo
e) explicitar la nueva solucin
f ) volver al inciso 4
Si no, entonces se termina y la ltima solucin es la solucin ptima.
Para explicar el mtodo se resolver el problema planteado por las ecuaciones (4.1):
Mx U = 150x1 + 200x2 (4.1a)
8x1 + 8x2 64
(4.1b)
4x1 + 2x2 24
(4.1c)
x2 6
(4.1d)
1) Se deben transformar las desigualdades de las restricciones como se hizo en (4.2):
8x1 + 8x2 + h1 = 64
4x1 + 2x2 + h2 = 24
x2 + h3 = 6

(4.2b)
(4.2c)
(4.2d)

Pero la fo tambin debe modificarse ya que en el mtodo matricial todas las variables deben estar del mismo lado e igualadas al trmino independiente; entonces (4.1a)
se convierte en:
U 150x1 200x2 = 0

(4.2a)

Hay que sealar que slo en esta ecuacin aparece la variable U y que las variables
de holgura no aparecen de manera explcita ya que representan el sobrante de recursos,
y stos no afectan a la utilidad; por lo tanto es equivalente a:
U 150x1 200x2 + 0 h1 + 0 h2 + 0 h3 = 0

(4.2a)

2) Construccin de la tabla inicial. La tabla inicial tiene una columna por cada una
de las variables, una columna para los trminos independientes y se agrega una columna especial que se utilizar para un clculo auxiliar. Tiene una fila especial para la fo y
a continuacin una fila por restriccin, en este caso tres restricciones. Se vacan en la
tabla los coeficientes de las ecuaciones (4.2).

130

Mtodo simplex

Cuadro 4.2
Tabla inicial del mtodo Simplex
U

x1

x2

-150

-200

h1

h2

h3

b/aij

0
1

64
1

24
1

3) Determinacin de la solucin inicial. La matriz correspondiente a las restricciones


tiene cinco variables y tres ecuaciones, por lo que tendr infinitas soluciones; para obtener
alguna de las soluciones es necesario asignar un valor arbitrario a dos de ellas (5 3 = 2).
El mtodo Simplex asigna valor cero a aquellas variables a las que correspondan vectores
columna diferentes de un vector unitario: en este caso x1 = x2 = 0, por lo tanto de la primera restriccin se obtiene h1 = 64, de la segunda, h2 = 24, y h3 = 6 de la tercera restriccin. De la fila correspondiente a la fo se obtiene U = 0, que coincide con la solucin
inicial obtenida analticamente:
Xo = (x1, x2, h1, h2, h3) = (0, 0, 64, 24, 6)
Uo = 0
4) Se puede mejorar esta solucin? Para determinar si es mejorable la solucin se
analizan los coeficientes de la fo. La ecuacin (4.1a) indica que se quiere maximizar U,
y dado que la utilidad marginal o contribucin unitaria de x1 es 150 y la de x2 es 200, se
escoge la mayor (si hay empates, cualquiera de ellas), en este caso es x2. Se dice que esta
es la variable entrante, cuyo valor actual es cero, y pasar a tomar el mayor valor positivo
posible cumpliendo todas las restricciones para con esto incrementar el valor de U.
En la tabla del Simplex, si se trata de maximizar habr que escoger la variable que
tenga el coeficiente ms negativo ya que al convertir la ecuacin (4.1a) en la (4.2a) se
invierten los signos de los coeficientes de las variables originales.1
Como en este caso s hay una variable que actualmente no est en la solucin (vale
cero) con un coeficiente en la fo que permita aumentar el valor de sta, se puede mejorar la solucin y se debe calcular una nueva solucin. Pero el mtodo introduce una
variable a la solucin y quita otra, por lo que es necesario determinar cul es la variable
que sale. El criterio es ver cul es el recurso o restriccin que se agota primero. Para esto
se divide el trmino independiente de cada restriccin por el coeficiente de la columna
1Si

se trata de minimizar se debe escoger el coeficiente positivo de mayor valor.


131

Programacin lineal

correspondiente a la variable entrante: por cada unidad que aumente x2, se necesitan 8
horas del recurso 1; 2 unidades del recurso 2, y 1 unidad del recurso 3. El cociente entre la disponibilidad del recurso y este requerimiento se anota en la columna auxiliar;
el menor de estos cocientes determina cul es la variable saliente. En este caso el recurso 1 permite producir 8 unidades, con el recurso 2 se podran producir 12, pero la
demanda es solamente de 6, por lo que slo se puede producir esta cantidad (vase el
cuadro 4.3).2
Una vez definida la variable entrante (columna) y la saliente (fila), se utiliza como
pivote el elemento interseccin, al que se debe hacer igual a 1; y con las operaciones de
rengln utilizadas en el mtodo de Gauss con pivote, se transforma la matriz como se
muestra en la parte inferior del cuadro:
i) Para hacer 1 el pivote, se divide el rengln de la variable saliente por el coeficiente
pivote; en este caso se divide el tercer rengln entre a32. Como el elemento a32 = 1,
la fila queda idntica.
ii) Se deben transformar en 0 los elementos de la columna correspondiente a la variable entrante, en este caso a12 y a22 as como el coeficiente de la fo c2. Para hacerlo
se debe utilizar el rengln pivote:
(rengln i = rengln i rengln pivote)
Cuadro 4.3
Tabla de la primera iteracin
x1

x2

-150

-200

h1

h2

h3

b/aij

0
1
1

64

24

12

-150

200

1200.00

-8

16

-2

12

Una vez concluida la iteracin se debe analizar cul es la nueva solucin. Nuevamente se observa el sistema de restricciones de 3 x 5, para obtener una solucin se debe
2La

columna de U se suprime por simplicidad ya que esa variable no afecta las otras filas.
132

Mtodo simplex

dar un valor arbitrario a dos variables. El mtodo indica asignar el valor cero a aquellas
variables cuyos vectores columna no sean un vector unitario; por lo tanto, si x1 = h3 = 0,
la solucin del sistema es x2 = 6, h1 = 16, h2 = 12, que coincide con la solucin obtenida en el apartado anterior:
x1 = (x1, x2, h1, h2, h3) = (0, 6, 16, 12, 0)
U1 = 1200
En este momento hay que regresar al punto 4), se puede mejorar esta solucin?
Observando el rengln de la fo se encuentra que an hay un coeficiente negativo, por
tanto s se puede mejorar la utilidad, por lo que debemos repetir el proceso.
a) Determinar la variable entrante: x1.
b) Determinar la variable saliente: mn (16 / 8, 12 / 4, 6 / 0) = (2, 3, -) = 2, entonces
variable saliente h1. Aqu no se pudo realizar el tercer cociente pues se trataba de una
divisin entre cero; no se toman en cuenta las variables a las que correspondan divisiones entre cero o cocientes negativos.
c) El pivote debe estar en la posicin (1, 1), por lo que se divide el primer rengln
entre 8 y luego se utiliza este rengln para hacer cero los dems elementos de la
columna 1.
d) Se lee la solucin obtenida en la nueva tabla en la que escogiendo h1 = 0 y h3 = 0 se
obtienen x1 = 2, x2 = 6 y h2 = 4, con una utilidad de 1500, que corresponde con la
obtenida en la seccin anterior (cuadro 4.4).
x2 = (x1, x2, h1, h2, h3) = (2, 6, 0, 4, 0)
U2 = 1500
Cuadro 4.4
Tabla de la segunda iteracin
-150

200

1200.00

-8

16

-2

12

18.77

50

1500.00

1/8

-1

-1 / 2

1
133

Programacin lineal

e) regresar al punto 4: se puede mejorar esta solucin? Observando la fila de la fo de


la segunda iteracin, se encuentra que ya no hay un coeficiente negativo, por tanto
no se puede mejorar la utilidad; esta es la solucin ptima.
Cuadro 4.5. Tabla completa del Simplex
x1

x2

h1

-150

-200

h2

h3

b
0

64
1

24
1

-150

200

1200

-8

16

-2

12

18.77

50

1500

1/8

-1

-1 / 2

En el cuadro 4.5 se presentan todas las iteraciones. Se observa que al terminar la


segunda iteracin no queda ningn coeficiente negativo en el rengln correspondiente
a la fo, por lo que sta es la solucin ptima. En la solucin h1 = 0, por lo tanto, se
utilizarn todas las horas disponibles: h3 = 0, lo que indica que se cubrir exactamente
la demanda del artculo b; se deben producir 2 unidades del artculo a y 6 del artculo
b, y sobran 4 unidades de materia prima, con lo que se obtiene una utilidad de 1500.
x2 = (x1, x2, h1, h2, h3) = (2, 6, 0, 4, 0)
U2 = 1500

La adaptacin del mtodo Simplex a problemas no estndar


Restricciones igual que y mayor o igual que
En las secciones anteriores se analiz el caso estndar en el que se trata de maximizar un
objetivo, sujeto a restricciones de menor o igual. En esta seccin se mostrarn las mo134

Mtodo simplex

dificaciones necesarias para llegar a la tabla inicial del Simplex cuando las restricciones
son mayor o igual que e igual que.
Cuando se trata de una desigualdad de la forma,
2x + 4y 20
para poder escribirla como una igualdad, la ecuacin quedar as:
2x + 4y h = 20
Pero esto no es suficiente para poder utilizar el mtodo Simplex. Cuando se tiene
una desigualdad , se introduce una variable de holgura con coeficiente negativo y por
lo tanto no generar el vector unitario correspondiente; para solucionar esto se agrega
otra variable llamada variable artificial, que no tiene un sentido fsico y por lo tanto es
necesario que no aparezca en la solucin final. La ecuacin anterior queda as:
2x + 4y h + A = 20
Esto nos indica que una restriccin del tipo mayor o igual genera dos variables auxiliares, una de holgura o excedencia, en este caso, y una variable artificial.
Cuando se trata de restricciones de igualdad, a pesar de que no se debera modificar
la ecuacin, como el mtodo Simplex necesita que la matriz agrandada tenga una matriz unitaria, se necesita agregar una variable artificial:
3x 2y = 12

3x 2y + A = 12

En el caso de la igualdad, es muy claro que en la solucin final A debe ser igual a
cero, lo mismo debe ocurrir en el caso de mayor o igual. Para poder anular las variables
artificiales, es necesario incluirlas en la fo. Mientras las variables de holgura no afectan
a la fo pues se trata de sobrantes de recursos, ya sea horas hombre o materias primas
o de excedentes, las variables artificiales no tienen un significado fsico, y para garantizar que stas desaparezcan, el mtodo Simplex les asigna un valor contrario al objetivo,
que puede interpretarse como una multa.
Para entender el proceso se resolver el siguiente problema:
Mx z = 30x + 70y
s.a.
20x + 15y 300
10x + 4y 100

x, y 0
135

Programacin lineal

La primera restriccin se transforma en:


20x + 15y + h1 = 300
donde h1 es el sobrante de las 300 unidades del recurso y se mide en las mismas unidades.
La segunda restriccin es una desigualdad de , por lo tanto la igualdad queda as:
10x + 4y h2 + A2 = 100
(Se utiliz A2 aunque no exista A1 solamente para indicar que corresponde a la segunda restriccin, pero puede ponrsele cualquier nombre.)
La fo quiere maximizar:
z = 30x + 70y
Para que la variable artificial no aparezca en la solucin del problema (A = 0), se
introduce en la fo con un coeficiente tal que se oponga al objetivo de maximizar:
z = 30x + 70y MA2
M es el valor de la multa que se pagar por cada unidad que valga A. (Lo que se dir
a continuacin corresponde al mtodo de la gran M aunque hay otros como el mtodo
de la doble fase.) Para poder introducirlo en la tabla del Simplex, primero debe rescribirse la fo:
z 30x 70y + MA2 = 0
El cuadro 4.6 muestra la resolucin de este problema. Pero hay una diferencia en el
cuadro inicial; en este caso, cuando hay variables artificiales, la fila de la fo aparece dos
veces porque es necesario volver a calcularlo previamente. Si se observan las filas de las
restricciones, se trata de un sistema de dos ecuaciones con cinco incgnitas, por lo que,
para encontrar una solucin, se le debe dar valor arbitrario a tres variables. Se puede
observar que la columna 3 y 5 (h1 y A2, respectivamente) corresponden a vectores unitarios que conforman la matriz identidad de 2 x 2, y son las que inicialmente deben ser
distintas de cero. Pero si las variables h1 = A2 0 son la solucin bsica inicial, es necesario que los coeficientes de estas variables en la fo sean cero. Por eso es necesario
modificar la fo restndole M veces la segunda restriccin. El resultado es el que se
muestra en la segunda fila. En este momento se puede empezar con el mtodo tal como
se utiliz anteriormente.

136

Mtodo simplex

La solucin inicial es Xo = (x, y, h1, h2, A2) = (0, 0, 300, 0, 100)


Uo = 100M
En este caso como A = 100 la utilidad inicial es negativa igual a 100 multas. El valor
de M se considera mucho ms grande que los otros coeficientes de la fo.
El siguiente paso es elegir la variable entrante entre las que tengan coeficiente negativo en la fo; entonces entra x ya que -30 10 M < -70 4 M (M >> 30, 70) y la
variable saliente es la correspondiente a la segunda restriccin ya que 10 < 15, entonces
ser la variable A2.
Cuadro 4.6. Tabla del Simplex del problema
z
1

-30

-70

-10M -30

h1

h2

A2

b/aij

-4M -70

-100M

20

15

300

15

10

-1

100

10

-58

-3

M+3

300.00

-2

100

14.29

0.4

-0.1

0.1

10

25

8.29

12.86

M -12.85

528.00

0.14

0.29

-0.28

14.29

-0.01

-0.21

0.21

4.29

La solucin despus de realizar una iteracin es:


x1 = (x, y, h1, h2, A2) = (10, 0, 100, 0, 0)
U1 = 300
La solucin no es ptima porque an queda un coeficiente negativo en la fo; la
variable y entra, y sale h1 por ser el recurso que se acaba antes.
La solucin despus de realizar la segunda iteracin es:
x2 = (x, y, h1, h2, A2) = (4.28, 14.29, 0, 0, 0)
U1 = 528
Y se trata de la solucin ptima porque no quedan coeficientes negativos en la fo,
por lo tanto no se puede mejorar.
137

Programacin lineal

Caso de minimizacin
Por ltimo hay que analizar el caso en que se quiera minimizar, por ejemplo, los costos
o el tiempo. Se tiene una funcin como esta:
Mn z = 3x 2y +5w
Por cada unidad que aumente x, el valor de z aumentar tres; por cada unidad que
aumente y, el valor de z disminuir en dos unidades, y por cada unidad que aumente
w, el valor de z se incrementar en cinco unidades. Es claro que la variable que conviene aumentar es y, pues hace disminuir la fo, lo que coincide con el objetivo de minimizar. Cuando se reescribe la ecuacin para introducirla en la tabla del Simplex, la
ecuacin queda as:
z 3x + 2y 5w = 0
Para escoger cul es la variable de entrada, se debe escoger la que ms convenga; en
este caso, como se invirtieron los signos, habr que elegir de entre las variables que tengan coeficiente positivo en el rengln de la fo, la que tenga el mayor coeficiente.
Si en un problema de minimizacin hay restricciones de igualdad o de mayor que,
aparecern las variables artificiales, y como ya se vio stas deben afectar a la fo en sentido negativo; debe ser una penalizacin. Como se trata de minimizar, las variables artificiales aparecern en la fo como:
Mn z = 3x 2y + 5w + MA1 + MA2
y en la funcin modificada:
z 3x + 2y 5w MA1 MA2 = 0
El resto del procedimiento es exactamente el mismo que para el caso de maximizacin.
El procedimiento se muestra en el siguiente ejemplo:
Mn z = x 2y
s.a.
x+y>2
y < 3

x, y > 0

138

Mtodo simplex

Despus de modificar las ecuaciones, queda as:


Mn z = x 2 y + MA

x + y h1 + A = 2
y + h2 = 3
Cuadro 4.7
z

h1

-1

-1 + M

2+M

-M

h2

A
-M

2M

-1

-3

-2

-4

-1

-1

-1

-1

-2

-6

-1

-1

Del cuadro 4.7 se observa que la solucin ptima es:


z = -6,

(x, y, h1, h2) = (0, 3, 1, 0)

Casos especiales: empates, problemas inconsistentes


Hay que agregar unas palabras para considerar los casos especiales como empate en las
variables de entrada o de salida, problemas con soluciones mltiples, degeneramiento
y problemas sin solucin.
El mtodo Simplex utiliza un criterio de mejorabilidad para determinar cul es la variable entrante comparando los coeficientes en la fo; en algunos casos puede haber dos
coeficientes iguales; en estos casos se debe escoger arbitrariamente cualquiera de ellos.
Lo mismo puede ocurrir con la variable de salida, puede ser que simultneamente
se acaben dos recursos. Tambin se escoger como variable de salida cualquiera de ellas.
Lo importante aqu es que el problema se vuelve degenerado, esto es, alguna de las variables bsicas es igual a cero. En estos casos se puede llegar al ciclamiento de la solu-

139

Programacin lineal

cin, y el Simplex queda como atrapado en una serie de vrtices y no puede converger
a la solucin ptima. Este problema ocurre muy raramente y en modelos grandes. El
hecho de llegar a una solucin degenerada no implica que no se pueda encontrar la
solucin ptima, pero el problema es que la informacin que se obtiene con el anlisis
de sensibilidad a veces no es aceptable.
Se haba visto con el mtodo grfico que en ciertos casos la fo puede ser paralela a
uno de los lados de la solucin factible, y entonces la funcin se optimiza en ambos
vrtices y en todos los puntos intermedios. En el Simplex se llega a un punto en que la
solucin alterna entre dos puntos con igual valor en la funcin objetivo.

Lecturas complementarias
Arreola y Arreola (2003), especialmente los captulos 7 y 9. Budnick (2007), las secciones 11.2 y 11.3. Hillier (2003), el captulo 4.

Problemas de la unidad 4
Para cada uno de los siguientes problemas agregue las variables de holgura, excedencia
y las variables artificiales; construya la tabla inicial del Simplex cuando sea posible.
Problema 4.1
3x 2y + 5z 1200
5x 2y 3z 0
Problema 4.2
120 M 100 N R 1/100
20 M + R = 2/7
N 30

140

Mtodo simplex

Problema 4.3
Mx 10x1 + 25x2 + 30x3 + 40x4 + x5
s.a.
5x1 3x3 30

x1 5

x1 30

x2 + 3x3 3x5 50

x3 + x4 + x5 = 18

x 1, x 2, x 3, x 4, x 5 0
Cuntas ecuaciones y cuntas incgnitas tiene este problema?, cuntas variables deben igualarse a cero en la solucin bsica inicial?
Para cada uno de los siguientes problemas plantee el sistema de ecuaciones modificado, construya el cuadro y obtenga la solucin del problema. En cada iteracin seale
cul es la variable entrante y la saliente, y cul es la solucin alcanzada.
Problema 4.4
Mx 10x + 20y
s.a.

2x + y 16
x + y 10
x, y 0
Problema 4.5
Mx z = 6xa + 8xb + 10xc
s.a.
xa + 2.5xb 1200

2xa + 3xb + 4xc 2600
xa, xb, xc 0

141

Programacin lineal

Problema 4.6
Mx z = 25xa + 25xb
s.a.
xa + xb 12

2xa + 0.5xb 12
xa 5
xb 10
xa, xb 0
Problema 4.7.
Mx 16x + 25y
s.a.

2x + 4y 40

x + 2y 30

x, y 0
Problema 4.8
Mx z = 10xa + 3xb + 4xc
s.a.
8xa + 2xb + 3xc 400
4xa + 3xb 200
xc 40
xa, xb, xc 0
Problema 4.9
Mx 2 x 3 y + 4 z
s.a.

x + 2y 6
2x + z 12
y 5
z 1
x, y, z 0

142

Mtodo simplex

Respuesta a los problemas de la unidad 4


Problema 4.1.
3x 2y + 5z + h1 = 1200
5x 2y 3z h2 + A = 0
Problema 4.2.
120 M 100 N R h1 + A1 = 0.01
20 M
+ R + A2 = 2/7
N + h3 = 30
Problema 4.3. Cinco ecuaciones (restricciones) y doce variables, por lo tanto, siete variables deben igualarse a cero.
Problema 4.4.
(x, y, h1, h2) = (6, 4, 0, 0), z = 140
Problema 4.5.
(xa, xb, xc, h1, h2) = (1200, 0, 50, 0, 0), z = 7700
Problema 4.6.
(xa, xb, xc, h1, h2, h3, h4) = (2, 10, 0, 3, 3, 0), z = 300 o
(xa, xb, xc, h1, h2, h3, h4) = (4, 8, 0, 0, 1, 2), z = 300
Problema 4.7.
(x, y, h1, h2) = segmento (0, 12) a (12, 6), z = 96
Problema 4.8.
(xa, xb, xc, h1, h2) = (0, 66.6, 88.88, 0, 0), z = 55.55
Problema 4.9.
(x, y, z) = (0, 5, 1), mnimo -11

143

Anda mungkin juga menyukai