Metodo Simplex
Metodo Simplex
Metodo Simplex
Tabla de contenido
Resumen_____________________________________________________________ 2
Introduccin__________________________________________________________ 3
Primera Parte_________________________________________________________ 4
1.1 Una motivacin ________________________________________________________ 5
1.2 Conjuntos convexos _____________________________________________________ 7
1.3 Soluciones Bsicas Factibles _____________________________________________ 17
1.4 Teorema de representacin______________________________________________ 21
Segunda Parte ______________________________________________________________ 25
2.1 El mtodo smplex _____________________________________________________ 26
2.2 El mtodo smplex en formato de tabla ____________________________________ 33
2.3 Problemas con solucin bsica factible inmediata ___________________________ 37
2.4 Problemas sin solucin bsica factible inmediata ____________________________ 44
2.5 Degeneracin _________________________________________________________ 51
Conclusiones ________________________________________________________ 53
Bibliografa _________________________________________________________ 54
Resumen
Se presentan algunos resultados de la teora matemtica de Programacin Lineal y se
exponen algunas consecuencia de estos resultados, que generalmente no aparecen en la
literatura que ms se utiliza para ensear estos temas. Se proponen, adems,
modificaciones al algoritmo de penalizacin, con el fin de simplificar su uso.
Abstract
Some results of the Mathematical theory of Linear Programming is presented and so
me of the consequences of these results are exposed; results included are the one that
do not appear in the kind of literature they used most to teach other topics. Besides,
some modification to big M algorithm in order to simplify its use.
Introduccin
Este trabajo trata sobre los fundamentos tericos de la Programacin Lineal. La
Programacin Lineal est comprendida dentro de un campo ms amplio de la
matemtica aplicada conocido como Investigacin de Operaciones. Por lo tanto, antes
de introducir la Programacin Lineal, se aborda el campo que la contiene. De las
definiciones de Investigaciones de Operaciones ms usadas, la que mejor la describe, al
parecer del autor, es la de Churchman, Ackoff y Arnoff, que aparece en la pgina 20 de
[Pra00] y que se transcribe a continuacin: La Investigacin de Operaciones es la
aplicacin, por grupos interdisciplinarios, del mtodo cientfico a problemas
relacionados con el control de las organizaciones o sistemas (hombre-mquina) a fin
de que se produzcan soluciones que mejor sirvan a los objetivos de toda la
organizacin. De esta definicin se concluye que la naturaleza de los problemas a
tratar es tal que hace necesario recurrir a prcticas que son propias de la ciencia, as
como la confluencia de miradas de diversa formacin terica sobre un mismo hecho.
Est ltima afirmacin coincide con lo que dice Taha en la pgina 2 de [Tah95], donde
afirma que: La Investigacin de Operaciones debe visualizarse como una ciencia y
como un arte, sin embargo, en el Tercer Mundo por la condicin de consumidores no
creadores- de Ciencia y Tecnologa, el trabajo en la parte matemtica se limita a la
aplicacin de algoritmos ya existentes y se abandona el estudio de sus fundamentos
tericos. Esta ha sido una constante en el pasado: unos pocos se dedican a producir
algoritmos, y la mayora, luego de recibir una exposicin terica superficial, aprende a
emplearlos en aplicaciones prcticas. Sin embargo, la llegada de los computadores ha
librado al hombre de tener que emplearse en el desarrollo mecnico de algoritmos.
Existen paquetes de software que desarrollan este trabajo algortmico, por lo tanto, la
parte del trabajo interdisciplinario que corresponde a los matemticos, consiste en
comprender los fundamentos a fin de estar en capacidad de producir soluciones nuevas
a problemas que no hayan sido considerados con anterioridad, o a mejorar las
existentes.
Es caracterstica de los modelos matemticos de los problemas de Investigacin de
Operaciones, la existencia de una, o unas, funciones objetivo que se desea optimizar en
presencia de restricciones sobre las variables. La Programacin Lineal se ocupa de los
problemas en los cuales tanto la funcin objetivo como las restricciones son de tipo
lineal. Este trabajo est dirigido ms al porqu, que al cmo, de los algoritmos, por lo
tanto es adecuado, sobre todo, para quienes ya han tenido contacto con el tema y desean
conocer los resultados en los cuales se basa el algoritmo smplex.
Aunque este trabajo es esencialmente de tipo exploratorio, la aplicacin literal de la
teora permiti llegar a desarrollar ejemplos que van ms all de lo usual y a proponer
dos cambios que simplifican la ejecucin del algoritmo de penalizacin.
Este texto y los otros que aparecen citados, se encuentran completamente referenciados en la
bibliografa que aparece al final del trabajo.
Primera Parte
________________
105
70
y=
u 200x
160
105 5 x
3
2) y
70 2 x
4
3) x 0
4) y 0
El punto (o los puntos) solucin debe(n) satisfacer simultneamente todas las restricciones, por
lo tanto se encontrar(n) en la interseccin de los conjuntos solucin de todas las restricciones.
En la grfica 1.1 la regin sombreada corresponde a esta interseccin (regin factible), por lo
tanto debe buscarse la solucin en ella. Para tal efecto se asignan diversos valores a u y se
grafican las rectas que corresponden a cada una de estas asignaciones. Se puede ver lo que
X = { n / = }
donde
Los conjuntos
X = { n / } y
7
X = { n / }
se llaman semiespacios cerrados.
= + (1 )
,0 1
debe pertenecer tambin al conjunto. La grfica 1.3 ilustra esta definicin.
si
= + (1 )
,0 1
entonces
= + (1 ) z + (1 ) z = z , (0 1)
+ (1 ) X 1 ,0 1
+ (1 ) X 2 ,0 1
+ (1 ) X 1 X 2 ,0 1 .
= , i=1, . . . ,m.
donde ai es la i-sima fila de A, y para cada i, = representa un hiperplano. El conjunto
de los puntos que satisfacen simultneamente todas las ecuaciones es la interseccin de los m
hiperplanos; que es, como ya se vio, un conjunto convexo y cerrado.
Un punto x es un punto extremo de un conjunto convexo, si, y solo si, no existen en el
conjunto puntos ( ) tales que
= + (1 ) , 0 < < 1
La definicin implica que un punto extremo no puede estar entre otros dos puntos del
conjunto, esto es, que no puede estar en el segmento de recta que los une.
Grfica 1.4
La grfica 1.5 permite visualizar un resultado que lleva a la definicin de combinacin convexa
de m puntos. Al prolongar cualquier recta que pase por el punto y esta necesariamente se
encontrar con puntos de la frontera, en este caso los puntos de corte son xa y xb y, por lo tanto,
se tiene que y = xa+(1-)xb, 0 1, pero, a su vez los puntos xa y xb se encuentran entre
x5,x6 y x3,x4 respectivamente, por lo tanto
xa = x5 + (1-)x6, 0 1
xb = x3 + (1-)x4, 0 1
y = xa + (1-)xb
= [x5 + (1-)x6] + (1-)[x3 + (1-)x4]
=x5 + (1-)x6 + (1-)x3 +(1-) (1-)x4
Definicin: una combinacin convexa de un numero finito de puntos x1, . . . ,xm se define
como el punto
=
m
i =1
i
i 0, i = 1,..., m,
m
i =1
i = 1.
Entonces se puede afirmar que, cualquier punto de un conjunto convexo acotado se puede
escribir como combinacin convexa de los puntos extremos del conjunto.
Teorema 1.4: El conjunto de todas las combinaciones convexas de un nmero finito de puntos
x1, . . . ,xm, es un conjunto convexo.
10
Es decir, el conjunto
X={ =
i ! ,
i =1
i = 1}
i =1
es convexo.
=
i =1
m
=
i =1
'i 0, i = 1,..., m,
'i ! ""!
' 'i # $$#
' i = 1.
i =1
m
i =1
' ' i = 1.
m
i =1
'i % + (1 )
pero
m
i =1
m
i =1
y adems
m
i =1
m
i =1
i ' + (1 )
m
i =1
i '' = 1
as que u+(1-)v tambin es una combinacin convexa de los xi y, por lo tanto, el conjunto X
es convexo.
m
i =1
i ( ))(
m
i =1
i = 1. }
m 1
i =1
i ( ))(
m
i =1
i = 1. }
Sea X la envolvente convexa de x1, . . . , xm. Obviamente todo punto de X1 est tambin en X y
adems X debe contener tambin a todos los segmentos de recta que unan puntos de X1 con xm,
esto es, todos los puntos:
11
x=
m 1
i =1
si se hace
i + + (1 ) *
i = i , i=1, . . . , m-1 y m = (1 )
Entonces, todo i 0 y
m
i =1
i =
m 1
i =1
i + (1 ) = 1
Adems, como i y varan entre 0 y 1, cada i puede tambin tomar cualquier valor entre 0 y
1. As, X es el conjunto de todas las combinaciones convexas de x1, . . . , xm.
La grfica 1.6 muestra que dado un conjunto convexo X, y un punto y fuera de l, existe un
hiperplano que los separa, esto es, un hiperplano tal que el punto y est en uno de los
semiespacios que determina el hiperplano, y el conjunto X, en su totalidad, est en el otro.
Nota: al lector que no conozca esta afirmacin acerca de la desigualdad triangular le sugiero consultar, por ejemplo,
la demostracin de la desigualdad de Cauchy-Schwartz que aparece en la pgina 17 de [Apo77] y la demostracin de
la desigualdad triangular de la pgina 59 del mismo libro.
12
w1-y = (w2-y)
se tendra
||w1-y|| = ||w2-y||
pero, como
||w1-y|| = ||w2-y||
(1-)w+x, 0 1,
||(1-)w+x - y|| ||w-y||
|| (w - y +x - w) || ||w-y||
||x|| = xx
||w-y|| + 2(w - y )(x - w) + ||x-w|| ||w-y||
2(w - y )(x - w) + ||x-w|| 0
13
Hasta el momento se ha hecho nfasis en los resultados referentes a las regiones factibles
acotadas, en las cuales se intuye que todo punto puede ser expresado como combinacin
convexa de sus puntos extremos. Este hecho es muy importante, porque ahora que se vean las
regiones no acotadas, se notar que stas se componen de una parte acotada, que puede ser
generada por sus puntos extremos, y una no acotada, que est ligada al concepto de direccin
extrema, el cual se introduce a continuacin. Sin embargo, cuando un problema tiene solucin
finita, esta se encuentra en la regin acotada, de ah la importancia del trabajo desarrollado hasta
ahora.
Definicin: Dado un conjunto convexo, un vector d, distinto de 0, se llama una direccin del
conjunto si, para cada x en el conjunto, el rayo {x+d / >0} tambin pertenece al conjunto. Es
claro que si el conjunto es acotado, entonces no tiene direcciones. Vase la grfica 1.7.
Considrese el conjunto X={ x / Ax=b,
una direccin de X si, y solo si,
A(x+d)=b
.
/
0
+ para cualquier >0
n
(Observacin: en no existe orden, por lo tanto la notacin
,
componentes del vector x son mayores o iguales que 0)
y
Grfica 1.7
1
Como Ax=b si X , la ecuacin se reduce a Ad=0. Adems como x+d debe ser no
negativo para arbitrariamente grande, entonces d debe ser no negativo. Resumiendo, d es una
direccin de X si, y solo si,
2 4
3
, , , y Ad=0
2
3
(Nota: de acuerdo a la observacin anterior debe ser claro que las dos condiciones
,
4
, no son equivalentes a d > 0)
Se sabe que, por ejemplo, dados dos vectores linealmente independientes en 2 , el conjunto de
todas sus combinaciones lineales coincide con 2 , se dice entonces que los dos vectores
generan todo el espacio. Pero si se limita a las combinaciones lineales de coeficientes
14
positivos, se obtiene nicamente la regin del espacio comprendida entre las dos rectas
obtenidas al prolongar los vectores. En la grfica 1.8 se ilustra este hecho.
Definicin: Una direccin extrema de un conjunto convexo es una direccin del conjunto que
no se puede representar como una combinacin lineal positiva de dos direcciones distintas del
conjunto.
Las direcciones extremas ayudan a completar la base para los conjuntos convexos en el
sentido de que, para el caso de los conjuntos no acotados, se necesitan, adems de los puntos
extremos, para expresar cualquier elemento del conjunto. Se ilustra esto grficamente en la
figura 1.9.
Grfica 1.9
En la figura 1.9 el conjunto tiene 3 puntos extremos x1, x2 y x3, y dos direcciones extremas d1 y
d2. El punto x se puede expresar como y ms una de las direcciones del conjunto. Pero y se
puede expresar como combinacin convexa de x1, x2 y x3 y toda direccin del conjunto se
puede expresar como combinacin lineal no negativa de las direcciones extremas. Resumiendo,
todo punto se puede expresar como combinacin convexa de los puntos extremos ms una
combinacin lineal no negativa de las direcciones extremas. Si el conjunto es acotado no tiene
direcciones y se tendr nicamente la combinacin convexa de los puntos extremos. Este
resultado, que se enunciar formalmente y se demostrar ms adelante, es el teorema de
15
representacin y se usar para demostrar que los ptimos se localizan en los puntos extremos.
Se pospone la demostracin para cuando se hayan reunido todos los elementos que esta
requiere.
Teorema 1.7: Los ptimos locales de la funcin objetivo de un programa lineal, son globales.
Demostracin: supngase que xo es un mximo local de
maximizar z = cx
sujeto a
Ax b
x0
si xo no fuese global, existira x1 tal que cxo < cx1. Entonces usando la notacin
x() = (1-) xo + x1 para 0 < < 1
se tiene
lim ( ) = 5
6
Teorema 1.8: Cuando la funcin objetivo de un programa lineal asume su valor mximo o
mnimo, lo hace en un punto extremo del conjunto de soluciones factibles.
=
k
i =1
i 8 +
l
j =1
j 7
donde
i =1
i = 1
y adems
i 0, i = 1,2,..., k y
j 0, j = 1,2,..., l
k
i =1
i : +
sujeto a
k
i =1
i = 1
16
l
j =1
j 9
i 0, i = 1,2,..., k
j 0, j = 1,2,..., l
como las j se pueden hacer arbitrariamente grandes, si cdj > 0 para alguna j, la funcin objetivo
z puede tomar valores tan grandes como se quiera. Si cdj 0 para toda j, entonces se toman
todas las j = 0. Entonces, para maximizar
k
i =1
= 1 @ 1 + 2 @ 2 + ... + p @ p
Entonces
o sea
C
Considrese el sistema Ax=b, B , en donde A es una matriz m n y b es un vector.
Supngase que rango(A,b) = rango(A)=m. Despus de un posible rearreglo de las columnas de
A, sea A=[B,N], en donde B es una matriz invertible m n y N es una matriz m ( n m) .
El punto
E
= D
en donde
G = F y H =
se llama una solucin bsica del sistema. Si I , entonces x se llama una solucin bsica
factible del sistema. Las componentes de J se llaman variables bsicas, y las componentes
de K
solucin bsica factible degenerada. De hecho, la matriz B es una matriz cuadrada que se
17
Teorema 1.9: Un punto x es una solucin bsica factible si, y solo si, x es un punto extremo.
C
i =1 i
x'j =
x j + c j , j = 1,2,..., p
0, j = p + 1,..., n
x''j =
x j c j , j = 1,2,..., p
0, j = p + 1,..., n
Como x j > 0 para j=1,2, . . . ,p, entonces, independientemente de los valores de c1, c2, . . . , cp
se puede escoger >0 tal que x'>
0 y x''j > 0 para j=1,2,... ,p.
j
=
M
O =N
x'j L =
M
O =N
( x j + c j ) L =
M
O =N
x jL +
M
O =N
c jL =
esto contradice el hecho de que x es un punto extremo. Por lo tanto, a1, a2, . . . ,ap son
linealmente independientes. Ahora bien, como A es de rango m entonces p m, si p=m ya se
tiene el resultado. Si p < m se extraen m p vectores de ap+1,ap+2, . . . ,an tales que junto con
a1,a2, . . . ,ap formen un conjunto linealmente independiente. Despus de un posible rearreglo de
columnas de A, supngase que son ap+1,ap+2, . . . ,am. Entonces se tiene B=[ a1,a2, . . . ,ap,
ap+1,ap+2, . . . ,am] y con esto concluye la demostracin.
Recprocamente, supngase que x es una solucin bsica factible del sistema Ax=b,
B la base correspondiente a x, por lo tanto
=
R
18
P . Sea
Sean =
T
S
y =
R
V
U
R
Y
+ (1 )
R
Y
0<<1
\ = [
Por lo tanto se concluye que x B = xB y como Z = Z = , entonces x=x. Anlogamente
x=x y, como consecuencia, se tiene que x es un punto extremo.
El Teorema 1.8 dice que el punto ptimo se encuentra en uno (o unos) de los puntos extremos y
el Teorema 1.9 dice como encontrarlo(s). Por lo tanto, se est ya en condiciones de resolver
problemas de Programacin Lineal.
De la matriz ]_^a`
(existen
n
m
de tales
+x4
= 105
= 70
A =
2
4
2
x2
3
4
x3
x4
105
70
19
c =
f =
x1 x2
5 3
2 4
x2
d =
x3
3 1
4 0
g =
x1 x
3
5 1
2 0
x2
e =
x4
3 0
4 1
h =
x1 x4
5 0
2 1
x3 x4
1 0
0 1
en este caso las 6 matrices son invertibles y se tiene por lo tanto, por ejemplo, que el sistema
B1x=b tiene como solucin x=B1 i b, que en este caso da como resultado x1=15, x2=10 para un
x1 = [15,10,0,0] , y similarmente para los otros sistemas se obtiene:
x1=35, x3= -70 para un x2 = [35, 0,-70, 0]
x1=21, x4=28 para un x3 = [21,0,0,28]
x2=17
1
1
1
1
, x3=52 para un x4 = [0, 17 , 52 ,0]
2
2
2
2
1
] y [0,0], se pueden verificar estos resultados en la grfica 1.1. Ahora, se evala la
2
z[0,17
1
] = 2800
2
z [21,0] = 4200
z[15,10] = 4600
entonces el punto ptimo es [15,10], esto coincide con el resultado obtenido mediante el mtodo
grfico.
El Teorema 1.9 da un mtodo para encontrar los puntos extremos (soluciones bsicas factibles)
sin embargo, an falta garantizar la existencia de tales puntos extremos, esto se har en el
siguiente teorema.
Demostracin: Sea x una solucin factible de la forma x=(x1, . . . ,xp,xp+1, . . . ,xn) en donde
x1, . . . ,xp > 0 y xp+1= . . . =xn=0. Si a1, . . . ,ap son linealmente independientes entonces se les
pueden agregar m-p vectores columna de A tales que los m vectores sean linealmente
independientes y tener as que x es una solucin bsica factible. De lo contrario, existen
escalares c1, . . . ,cp no todos cero, tales que c1a1+ . . . +cpap = 0. Como hay por lo menos un cj
diferente de cero, si es positivo, no se hace nada, si es negativo, se multiplica la ecuacin por -1,
para tener certeza de que hay al menos un cj positivo. Considrese el siguiente punto x:
x'j =
x j c j , j = 1,..., p
0, j = p + 1,..., n
en donde = mnimo
20
xj
cj
/cj > 0 =
xk
para algn k,
ck
=
j =1
x'j j =
p
j =1
( x j j ) j =
p
j =1
x jj
j j =
j =1
Teorema 1.11: Sean a1, a2, . . . ,an una base de n y sea a ai, i=1,2, . . . ,n, por lo tanto
=
n
i =1
i k
n
i =1
i j
i l de donde
n
i =1
i j
i m = 0 lo cual
i =1
i j
n
i =1
i j
i p
n
i =1
i p =
n
i =1
i j
i n = 0 entonces
( i i p j o = 0
como los a1, a2, . . . ,an son una base y como j 0 , se tiene =0 y i-i=0 para i j,
entonces i=0 para i j y esto termina la demostracin.
Se finaliza esta parte con la demostracin del teorema de representacin, que fue empleado en la
demostracin del Teorema 1.8 el cual, junto con el Teorema 1.9, constituyen los dos resultados
ms importantes de esta primera parte.
=
k
j =1
jq +
l
j =1
j q donde
k
j =1
21
=
k
j =1
j r +
j =1
j r =
por lo tanto x X.
Recprocamente, supngase que el rango(A) = rango(A,B) = m, en caso contrario podemos
eliminar todas las restricciones redundantes. Supngase ahora que x X y que sin embargo,
no puede expresarse segn (*). Considrese el siguiente conjunto
k
S = { =
j =1
jq +
j =1
j q con
j =1
Como X es no vaco, por el teorema anterior, tiene al menos un punto extremo, por lo tanto S es
no vaco. Se ver que S es un conjunto convexo. Sean u y w que pertenecen a S. Esto es:
=
k
j =1
=
js +
k
j =1
jt +
l
j =1
l
j =1
entonces u + (1-)w =
=
j =1
j =1
( j + (1 ) j ) t +
jt +
l
j =1
j t donde
j =1
k
j s donde
j =1
l
j =1
j t + (1 )
k
j =1
j t + (1 )
l
j =1
j t
( j + (1 ) j ) t
donde se tiene
k
j =1
( j + (1 ) j ) = 1 pues
k
j =1
j =1 y
k
j =1
j = 1 , j + (1 ) j 0 j=1, . . .,k
k
j =1
ju +
l
j =1
j u + (1)
22
Puesto que xp es un punto extremo, entonces, por el Teorema 1.9, se puede representar como
w
en donde B es una submatriz de A de tamao mxm invertible y x . Sin prdida
z
de generalidad, supngase que x > . Descomponiendo x en
se tiene Ax = BxB +
y
~
0
= [ ] *
= [ ~ + ~ ] = 0 adems d 0, d 0
0
Por lo tanto, d es una direccin de X y, adems
+ d
haciendo b = | b se tiene
Nota: en esta parte se ha empleado multiplicacin de matrices por bloques, el lector no familiarizado
puede consultar, por ejemplo, la pgina 45 de [Lip85].
23
x =
b'
1
y1 j
b'
m
0
y mj
0
1
0
24
Segunda Parte
_____________
25
Ax=b,
en donde A es una matriz m n , b es un vector m-dimensional y c y x son vectores ndimensionales. El mtodo consiste en extraer todas las submatrices B m m de A y verificar si
son invertibles. En caso de serlo, se resuelve el sistema Bx=b y, si todos los elementos de la
solucin son no negativos, entonces se ha encontrado una solucin bsica factible. Se evala la
funcin objetivo en cada una de tales soluciones bsicas factibles y se escoge la ptima. La
dificultad para emplear este procedimiento con problemas reales radica en la cantidad de
submatrices que hay que revisar. Como ya se indic, el nmero de tales submatrices es
n
.
m
Por lo tanto, si se enfrenta un problema en el cual n = 50 y m = 30, el cual es, sin embargo,
bastante moderado, se tendran que revisar
50
30
billones) de matrices de tamao 30x30, lo cual constituye, obviamente, una labor irrealizable. El
mtodo smplex, que se desarrolla a continuacin, y que fue expuesto por primera vez, por su
creador George Dantzig, en 1948, optimiza la bsqueda de la solucin reducindola a unas
dimensiones razonables.
El mtodo es iterativo y consiste, en cada iteracin, en pasar de una solucin bsica factible,
asociada a una matriz B, a otra, asociada a una matriz B, en la cual la funcin objetivo presenta
una mejora con respecto a la anterior. Adems, las matrices B y B difieren nicamente en una
columna.
Antes de abordar el desarrollo del mtodo smplex se llamar la atencin acerca de un resultado,
o mejor de su presentacin, del lgebra lineal: en n , n vectores linealmente independientes
(LI) constituyen una base, esto es, cualquier otro vector de n puede expresarse como
combinacin lineal de los elementos de la base, por ejemplo, para 3 se tiene que si
b11
b12
b13
a1
Ax=b,
26
(1)
Las columnas de A se denotarn como a1, a2, . . . , am. Se considera la matriz Amxn =
[Bmxm,Nmx(n-m)], donde B est constituida por columnas linealmente independientes y est
asociada a una solucin bsica factible, esto es, = (ms adelante se muestra como
obtener esta solucin bsica factible inicial). La idea consiste en reemplazar una columna de B
por alguna de las de N y obtener as una mejora en la funcin objetivo. Por su independencia
lineal las columnas de B constituyen una base para n y esta es la razn por la cual se
denomina base a B. Que B sea invertible es equivalente a que puede convertirse en l mediante
operaciones elementales, por lo tanto, como primer paso, se efectan sobre todo el sistema
Ax=b tales operaciones elementales de manera que se obtiene el sistema equivalente Ax=b
donde A = [I,N]. Como este nuevo sistema es equivalente a (1), por comodidad de notacin,
se seguirn empleando A, B, N y b para referirse a A,I, N y b respectivamente. Es importante
notar tambin que ai=ei para i=1, . . .,m donde ei es la i-sima componente de la base
cannica de n . Como las columnas de I constituyen una base de n , cualquier columna ae
de N (la e es porque las columnas de N son las candidatas para entrar a reemplazar a alguna de
las de B) puede escribirse como
m
i =1
aie (2)
x = b (3)
que, como ya se dijo, en adelante se notar simplemente b, sin embargo en (3) se escribe b para
resaltar que esta igualdad se cumple cuando se ha hecho B = I.
Si se supone que el vector que se va a sacar de B es el as, entonces (2) se puede reescribir
ae =
m
i =1
is
aie + a se
(4)
como ae reemplazar a as, por el teorema 1.11 necesitamos que la componente ase de ae sea
diferente de cero para que el conjunto
as =
1
a se
m
i =1
is
a ie
as =
1
a se
m
i =1
is
a ie
.
a se
(5)
Se ver que a1,a2, . . . ,as-1,ae,as+1, . . ,an efectivamente estn asociados a una solucin
bsica. La solucin bsica factible BxB = b puede escribirse como
m
i =1
xi =
27
m
i =1
is
xi + x s =
xi + x s (
1
a se
m
i =1
is
aie
)=
a se
reagrupando
m
xi x s
i =1
is
aie
x
+ s =
a se
a se
(6)
si se definen
x'
e =
xs
(7)
a se
x'
i = xi x s
aie
= xi x '
e a ie para 1 i m, i s (8)
a se
se tiene
m
i =1
is
x'
i + x'
e =
28
xs
0
a se
lo cual implica que a se > 0 pues x s 0 ,
(9)
xi x s
aie
0 para 1 i m, i s
a se
ie
(10)
aie
0 para 1 i m, i s. Lo cual es equivalente a
a se
xs
x
i
para 1 i m, i s (11)
a se aie
En este punto es conveniente recordar que se han empleado los subndices s y e para indicar
que se reemplazar la columna s de B por la e de N, pero hasta el momento no se han fijado,
esto es, pueden ser cualesquiera. Sin embargo, al llegar a (11) aparece el primer criterio de
decisin que se debe emplear, en primer lugar debe verse que la condicin i s se hace
redundante y por lo tanto se puede omitir. En segundo lugar indica que una vez fijado e (ms
adelante se ver con que criterio) s no puede ser cualquiera, debe ser tal que satisfaga (11) y esto
se tiene nicamente si se escoge s de acuerdo a la siguiente regla: s debe ser tal que cumpla
xs
x
= mn i / aie > 0
a se
aie
para 1 i m (12)
Se tiene, por lo tanto, una regla que garantiza que x sea una solucin bsica factible. De (12) y
de (3) se ve que la regla (12) equivale a dividir los elementos de b entre los correspondientes de
ae, siempre y cuando estos ltimos sean positivos, y elegir el ms pequeo de estos cocientes.
Esta solucin est asociada a la matriz B, la cual difiere de B en tan slo una columna. Ahora
se debe fijar el criterio que garantice que x es una mejor solucin que x. El mtodo para ello es,
obviamente, estudiar el valor de la funcin objetivo z en x.
Si en (1) se considera la particin x = [xB,xN] correspondiente a la particin Amxn =
[Bmxm,Nmx(n-m)] se obtiene para Ax = b
[B,N]
=
(13)
desarrollando
BxB = b
xB = b (15)
29
que es una solucin bsica de Ax = b. El vector xB se denomina vector bsico y xN, vector no
bsico. Se parte el vector c en [cB,cN] y la funcion objetivo z = cx puede escribirse
=
z = cB xB + cN xN
z = cB xB (16)
z =[cB,cN]
z = c B x B
Pero, cB y c B difieren nicamente en la s-sima componente, esto es
i s y cs = ce
z = c B x B
=
=
m
i =1
m
i =1
is
m
i =1
is
c'
i x'
i
c'
i x'
i + c'
s x'
s
ci x '
i + ce x'
e
m
i =1
is
ci ( xi x s
a ie
x
) + ce s
a se
a se
(17)
a se
) que es igual a cero, por lo tanto puede
a se
=
i =1
m
=
i =1
m
=
i =1
ci ( xi x s
ci x i
xs
a se
ci x i (
30
m
i =1
aie
x
) + ce s
a se
a se
m
i =1
ci aie + ce
ci aie ce )
xs
a se
xs
a se
(18)
ze = cBae =
m
i =1
(19)
z = z ( z e ce )
xs
a se
(20)
xs
0 , por lo tanto, para que z sea mayor que z es necesario que
a se
z e c e < 0 y como el objetivo es obtener el mayor incremento debe escogerse e de tal manera
que z e c e sea el ms negativo. Se tiene por lo tanto la regla para escoger el vector que entra a
la base.
De esta regla se deduce que, siempre que exista algn i tal que z i ci < 0 la solucin actual es
susceptible de ser mejorada. Por lo tanto el proceso se detendr cuando, para todo i, z i ci 0
y esto indicar que se ha encontrado la solucin ptima. Establecer este resultado es el propsito
del siguiente teorema.
Antes de enunciarlo se extender la definicin (19)
para i=1, . . . , m z i = cB a i = cB e i = c
y, por lo tanto
z i c i = 0 para i=1, . . . , m
Teorema 2.1: Se ha llegado a la solucin ptima de (1) cuando z i ci 0 para todo i.
Demostracin: sean x una solucin factible
Ax=b
que puede expandirse como
aj =
m
i =1
31
aij
x1
m
i =1
ai1 + x2
m
i =1
ai 2 + . . .+ xn
m
i =1
ain = b
y reagrupando
n
a1
i =1
x'
i a1i + a 2
i =1
x'
i a 2i + . . . + a m
n
i =1
x'
i a mi = b (23)
esta ltima igualdad expresa a b como combinacin lineal de a1, a2, . . . , am, que son
linealmente independientes y, por lo tanto, tal representacin es nica, y como adems se tiene
BxB = b, entonces
n
x j=
i =1
x'
i a ji , j=1,2, . . . ,m (24).
x'
1
m
i =1
ci a i1 + x'
2
m
i =1
ci ai 2 + ... + x'
n
m
i =1
ci a in z '
y reagrupando
c1
n
i =1
x'
i a1i + c 2
n
i =1
x'
i a 2 i + ... + c m
n
i =1
x'
i a mi z '
(25)
c1 x1 + c 2 x 2 + ... + c m x m = z z '
por lo tanto, la solucin bsica factible x, para la cual z i ci para todo i, da a la funcin
objetivo un valor mayor o igual que cualquier otra solucin factible. Esto era lo que se quera
demostrar.
Hasta este momento, la idea central de la exposicin ha sido expresar las columnas de N en
trminos de las de de la base B y aplicar los conceptos y operaciones del algebra lineal, sin
embargo, algunos de estos resultados pueden ser reinterpretados desde una perspectiva ms
intuitiva. Se har esta exposicin a continuacin.
Retomando (8)
32
x'
i = xi x s
aie
= xi x '
e a ie para 1 i m, i s
a se
se ve que por cada unidad en que se incremente x e la variable xi sufre un decremento igual a
aie (si aie es negativa, el efecto ser en realidad un incremento). El efecto neto de estos
decrementos (incrementos) sobre la funcin objetivo z = cx ser, por tanto, igual a
m
i =1
ci aie
que, por (19 ), es igual a - ze. Falta, sin embargo, tener en cuenta el efecto sobre z del
incremento de una unidad de xe, que vendra a ser igual a ce. Por lo tanto, el efecto neto total
sobre z, por cada unidad en que se incremente a xe (desde su actual valor de 0) ser
ce - ze = (ze - ce)
en otras palabras, por cada unidad en que se incremente la variable de entrada la funcin
objetivo tendr un incremento (decremento) de (ze - ce) unidades. Como se trata de
maximizar se toma, como ya se dijo, la e que tenga el ze ce ms negativo con el fin de
mejorar el valor de z. Por otra parte, si todos los ze ce son mayores o iguales a cero y existe
algn e tal que ze ce sea igual a cero el incremento de xe desde su valor actual de cero
conduce a otra solucin que tendr, sin embargo, el mismo valor objetivo.
Supngase que se incrementar una variable no bsica xe tal que ze ce es negativo. Por (8)
para las i, 1 i m, tales que aie > 0 cada unidad de incremento de xe implica un
decremento de xi igual a aie, entonces xe podr incrementarse hasta que para alguna i, x i = 0,
pues incrementos superiores a este implicaran que xi asumira valores negativos, lo cual
constituira una violacin a la factibilidad de las soluciones. La primera variable bsica que se
hace 0 al incrementarse xe se llama variable de bloqueo pues bloquea un incremento adicional
de xe. Entonces se tiene que xe entra a la base y la variable de bloqueo sale de ella.
Supngase, como en el caso anterior, que se tiene una solucin factible con valor objetivo zo y
que hay una variable no bsica xe con ze ce < 0, pero que ai 0 para 1 i m, por lo
tanto, no existe variable de bloqueo pues el incremento de xe se refleja en incrementos en los
valores de las variables bsicas o en que estas conserven su valor actual (en el caso, ai = 0). Al
no existir restriccin para el crecimiento de xe esta variable puede asumir valores tan grandes
como se quiera, sin abandonar la regin factible, por lo tanto, se tendra que la solucin x, en
donde = x e , xe es arbitrariamente grande y todas las otras componentes no
bsicas son cero, es factible y su valor objetivo es z = zo (ze ce)xe que tiende a infinito
cuando xe tiende a infinito.
33
Supngase que se tiene una solucin bsica factible inicial x relacionada con la base B. El
problema de programacin lineal (1) puede reescribirse como
Maximizar z
Sujeto a
de (26) se tiene
xB = B-1b = b
(30)
z = cB B-1b = cB b (31)
si se piensa en z como una variable bsica ms y en (29) como una restriccin adicional, se
puede tabular el problema como aparece en la tabla 2.1, en donde el lado derecho (LD)
contendr los valores de las variables bsicas, incluyendo z. Las variables bsicas se
identificarn en la columna de la extrema izquierda (VB).
xN
LD
VB z xB
-1
z 1 0 cBB N cN cB B-1b
Rengln 0
-1
-1
xB 0 I
B N
B b
Renglones 1 a m
Tabla 2.1
Se muestra el contenido de esta tabla con referencias en el trabajo realizado
34
de los renglones 1 a m del lado derecho entre las correspondientes de ae que sean
positivas y se escoge el menor de estos resultados, de esta manera se determina la
variable de bloqueo xs.
(Los pasos que siguen consisten en hacer un pivoteo sobre ase, este es el
procedimiento que se realiza al hacer la eliminacin de Gauss-Jordan)
z
XB1
z XB1
XBs
1 0 ... 0 ...
0 1 ... 0 ...
XBs
0 0 ... 1
...
XBm
0 0 ...
...
XBm
0
...
0
...
z XB1
XBs
1
z ce
0.. e
a se
XB1
a1e
0 1 ... a
se
Xe
0 0 ..
XBm
1j
...
...
...
sj
...
...
mj
...
Xe
zece . .
1e
...
se
me
...
...
LD
cBb
b1
bs
bm
Tabla 2.2
Despus de pivotear
Xj
zjcj
1
a se
a me
0 0... a
se
XBm
...
Xj
zjcj
...
.. .
- ( z e c e)
...
...
...
...
...
...
1j
1e
a sj
a sj
a se
a se
Tabla 2.3
35
me
. ..
a se
a sj
mj -
Xe
0
a sj
a se
...
0 ...
...
1 ...
...
0 ...
LD
cBb b'
(zece) s
a se
b1a
bs 1e
a se
b'
s
a se
bma
bs me
a se
1. La variable Xe entr a la base y XBs sali de la base. Este cambio queda registrado en
la columna de la izquierda, en la cual Xe reemplaz a XBs.
2. El lado derecho (LD) contiene los valores actualizados de las variables bsicas.
Tnganse en cuenta (30), (31),(7), (8) y (20). Hay que recordar que z se est
considerando como una variable bsica adicional.
3. El valor de z
Hacer evidente que los z j c j de las variables no bsicas tambin fueron actualizados
requiere un poco ms de trabajo. De (19) se tiene
zj = cBaj =
m
i =1
aplicando esta definicin a la tabla resultante despus del pivoteo se obtiene, para las variables
que siguieron por fuera de la base,
m
z j c j =
i =1
is
ci (aij aie
a sj
a se
) + ce
a sj
-cj
a se
z j c j - ( z e c e)
(32)
a sj
a se
m
i =1
ci aij c j
i =1
a sj
ci aij aie
m
i =1
is
a se
ci aij a ie
a sj
a se
a sj
ci a ie ce
c j + ce
a se
a sj
a se
c j + ce
a sj
a se
z s c s = i =1
is
ci
a ie
1
+ ce
c s (33)
a se
a se
36
z e ce
a se
(34)
i =1
a se
m
=
=
ci a ie ce
i =1
is
ci a ie + c s a se c e
a se
m
i =1
is
ci
a ie
1
c s + ce
a se
a se
Ax b,
Tiene una expresin expandida as
37
a 21 x1 + a 22 x 2 + ... + a 2 p x p b2
a m1 x1 + a m 2 x 2 + ... + a mp x p bm
Que se transforma, mediante la introduccin de las variables de holgura xp+1, . . . ,xn, en
maximizar z = c1x1+ c2x2+ . . . + cpxp+0xp+1+ . . . +0xn
sujeto a
+ 0 x n = b1
a 21 x1 + a 22 x 2 + ... + a 2 p x p + 0 x p +1 + x p + 2 +
+ 0 x n = b2
a m1 x1 + a m 2 x 2 + ... + a mp x p + 0 x p +1 + 0 x p + 2 +
(36)
(37)
+ x n = bm
se tiene por tanto que x=[xp+1, . . . ,xn] =[b1, . . . ,bm] es una solucin bsica factible
asociada a la matriz B = I para la cual se tiene cB = 0 y z = 0. Las variables x1, . . . ,xp, al no
ser bsicas, tienen todas valor cero y cumplen las condiciones para ser solucin de (35). En otras
palabras, un problema que tenga la forma de (35) permite siempre que el vector x = 0 sea una
solucin. No es este el caso de los problemas que presentan en sus restricciones = o ,
estos casos se discutirn posteriormente.
Se reproduce la tabla 2.1 para ver cmo se tabula la solucin bsica factible que permite iniciar
el ciclo de iteraciones (en esta tabla se han intercambiado las columnas que estn debajo de xB y
xN pues esto se acostumbra en la mayora de los libros y es probable que el lector se sienta ms
cmodo con esta presentacin)
VB z
xN
xB LD
-1
Rengln 0
z 1 cBB N cN 0 cB B-1b
-1
-1
Renglones 1 a m
xB 0
B N
I
B b
Tabla 2.1
Si en (36) se transponen trminos queda
1 cN +0 = 0 (37)
como cB = 0 en el rengln 0 la expresin cBB-1N cN se reduce a cN. Adems, se tiene
que cB B-1b = 0, por lo tanto la parte
1 cBB-1N cN 0 cB B-1b
38
cN 0 0
que coincide exactamente con (37). Adems, como se tiene que B = I, entonces B-1N = N y
B-1b = b.
Entonces la parte
B-1N I B-1b
N I b
que coincide exactamente con los coeficientes de (37). La columna VB almacena el nombre de
la variable bsica correspondiente a cada fila. Reuniendo todas estas conclusiones, se tiene que
la tabla 2.1 para el problema (36), (37) queda como aparece en la tabla 2.4
VB
z
xp+1
xp+2
xn
z
1
0
0
-c1
a11
a21
0 am1
xN
-c2 - . . . -cp
a12 . . . a1p
a22 . . . a2p
...
am2 . . . amp
0
1
0
0
xB
0 ... 0
0 . ..0
1 . ..0
...
0 ...1
LD
0
b1
b2
bm
Tabla 2.4
En este estado de cosas se puede comenzar a ejecutar el algoritmo iterativo.
Ejemplo 1: Resulvase por medio del mtodo smplex el siguiente problema
maximizar z = 5x1 + 3x2
sujeto a
3x1 + 5x2 15
5x1 + 2x2 10
x1,x2 0
trasponiendo trminos y agregando variables de holgura se tiene
z - 5x1 - 3x2
3x1 + 5x2 + x3
5x1 + 2x2
+ x4
x1,x2 x3,x4 0
= 0
= 15
= 10
se tabula la informacin anterior en la tabla 2.5 (se omite la columna z pues las operaciones que
se hacen en el pivoteo no la modifican, se agrega la columna bi/aie para almacenar las razones
que se emplean en la regla (12))
39
VB x1 x2
z -5 -3
x3 3 5
x4 5 2
x3 x4 LD
0 0 0 bi/aie
1 0 15
5
0 1 10
2
Tabla 2.5
En este momento se tiene:
Variables bsicas x3 = 15, x4 =10.
Variables no bsicas x1 = 0, x2 = 0.
z = 0.
Como -5 es el ms negativo de los z j c j de las variables no bsicas (x1, x2) x1 entra a la base
y por lo tanto se tiene e=1. Se calcula, entonces, la columna bi/aie. 15/3=5 y 10/5=2 el valor
mnimo es 2, por lo tanto, x4 es la variable de bloqueo que sale de la base y 2 es el valor que
asumir x1. Como x4 est en la fila 2, s=2 (esto se hace as para evitar los reordenamientos de
los que se habla en el desarrollo de la teora y en los cuales se reservan los subndices 1 a m para
las variables bsicas, en este caso m=2 y se tendra, reordenando, que XB1 = x3 y que XB2 =
x4). Por lo tanto se realiza el pivoteo sobre a21. Se tiene la tabla 2.6
VB
z
x3
x1
x1 x2
0 -1
0 19/5
1 2/5
x3 x4 LD
0 1 10 bi/aie
1 -3/5 9
0 1/5 2
Tabla 2.6
Se ha eliminado la lnea que separaba las variables bsicas de las no bsicas, pues en la
prctica, como ya se dijo, no se reordenan las columnas. Las variables bsicas se
identifican en la columna VB.
Variables bsicas x3 = 9, x1=2. Ntese que sus respectivos z j-c j = 0.
Variables no bsicas x2 = 0, x4 = 0.
z = 10. Este valor es igual al valor anterior de z (0) menos el z j-c j de la variable que
entr a la base (-5) multiplicado por el valor que asumi esta variable (2), o sea 10 = 0
(-5)*2. Otra forma de verificar este resultado es reemplazar los valores actuales de las
variables en la funcin objetivo z = 5x1 + 3x2 + 0x3 + 0x4 = 5*2 + 3*0 +0*9 + 0*0
= 10.
Como el proceso es iterativo, ste se repite, siguiendo las mismas reglas, hasta cuando ocurra
alguno de los eventos mencionados como posibles terminaciones del algoritmo.
Ejemplo 2: Resolver por el mtodo smplex
Maximizar z = 4x1 + 4x2
Sujeto a
-2x1 + 2x2 2
-x1 + 2x2 4
x1, x2 0
40
VB x1 x2
z -4 -4
x3 -2 2
x4 -1
2
x3
0
1
0
x4 LD
0 0 bi/aie
0 2
1
1 4
2
Tabla 2.7
se puede escoger entre x1 y x2 para entrar a la base, escogemos x2, al calcular los bi/aie se
tiene 2/2=1, 4/2= 2. Por lo tanto la variable de bloqueo es x3. Se pivotea sobre a12.y se tiene la
tabla 2.8.
VB x1 x2
z -8
0
x2 -1 1
x4 1
0
x3 x4
2
0
1/2 0
-1
1
LD
4 bi/aie
1
*
2
2
Tabla 2.8
y para la siguiente iteracin
VB x1 x2
z 0
0
x2 0 1
x1 1
0
x3
-6
-1/2
-1
x4 LD
8 20 xi/aie
1 3
*
1 2
*
Tabla 2.9
Para esta ltima tabla se tiene que x3 es candidato para entrar a la base, sin embargo a3 0 y
por lo tanto no existe variable de bloqueo para x3. En otras palabra x3 puede hacerse tan grande
como se quiera.
Segn la teora expuesta se tiene como solucin x, en
x2 = 3 +
Se ver que la solucin
M
y x1 = 2 + M
2
2 + M ,3 +
M
, M ,0
2
es factible y se calcular z para ella. Esta solucin cumple las restricciones, pues
41
M
)= 2 2
2
M
) = 4 4
2
z = 4x1 + 4x2 = 4( 2 + M ) + 4( 3 +
M
) = 20 + 6M
2
Es bueno recordar que la teora recomienda hacer entrar a la base la variable xi, tal que, el zi-ci
correspondiente sea el ms negativo, con el fin de obtener la mayor mejora posible en la funcin
objetivo. Sin embargo, no contradice a la teora hacer entrar a la base cualquier variable que
tenga el correspondiente zi-ci negativo. Por lo tanto, debe ser claro que si en alguna iteracin se
tiene que, para algn i, zi-ci es negativo y, adems, ai 0, entonces, al hacer entrar xi a la
base, el valor de la funcin objetivo puede hacerse tan grande como se quiera. Esta aclaracin se
hace porque en algunos libros (vase, por ejemplo, [Hil02] pg 129) se insina que este
hecho ocurre nicamente cuando se trata de la variable que entra a la base segn el
criterio del zi-ci ms negativo. Esta inexactitud tiene como consecuencia que, en algunos casos,
VB
z
x4
x5
x6
x1
-3
2
3
1
x2
-2
3
2
1
x3
-1
5
1
7
x4
0
1
0
0
x5
0
0
1
0
x6
0
0
0
1
LD
0 bi/aie
17 17/2
10 10/3
14 14
Tabla 2.10
pivoteando en a21 se obtiene la tabla 2.11
VB
z
x4
x1
x6
x1 x2 x3 x4
0 0 0 0
0 5/3 13/3 1
1 2/3 1/3 0
0 1/3 20/3 0
x5 x6
1 0
-2/3 0
1/3 0
-1/3 1
42
LD
10 bi/aie
31/3 31/5
10/3
5
32/3 32
Tabla 2.11
Al no existir en la fila cero cantidades negativas, el algoritmo debera detenerse en este
momento, pues, segn el teorema 2.1, ya se ha encontrado una solucin ptima (10/3, 0, 0, 31/3,
0, 32/3) sin embargo, ntese que en el rengln 0 las variables no bsicas x2 y x3 tienen un 0,
esto indica que al entrar a la base no aportarn nada a z, pero esto permitir encontrar una
solucin alternativa, por ello se hace una nueva iteracin en la cual se hace entrar a x2 a la base.
Por lo tanto pivoteando en a22 se tiene la tabla 2.12
VB x1 x2 x3 x4 x5 x6 LD
z 0 0 0 0 1 0 10 bi/aie
x4 -5/2 0 7/2 1 -3/2 0 2
4/7
x2 3/2 1 1/2 0 1/2 0 5
10
x6 -1/2 0 13/2 0 -1/2 1 9 18/13
Tabla 2.12
En esta ltima tabla se tiene la solucin ptima alternativa (0,5,0,2,0,9). Nuevamente hay dos
variables no bsicas con un cero en el rengln 0: x1 y x3, por lo tanto, se realiza otra iteracin en
la cual x3 entra a la base (si se hiciera entrar x1 se regresara a la tabla anterior). Pivoteando en
a13, se tiene la tabla 2.13
VB x1 x2 x3 x4 x5 x6 LD
z
0 0 0 0 1 0
10 bi/aie
x3 -5/7 0 1 2/7 -3/7 0
4/7
x2 13/7 1 0 -1/7 5/7 0 33/7
x6 29/7 0 0 -13/7 16/7 1 37/7
Tabla 2.13
Se tiene una segunda solucin alternativa (0, 33/7, 4/7, 0, 0, 37/7). Si estas 3 soluciones se
restringen a las variables originales del problema, se tienen las siguientes soluciones:
x1 =
10
33
4
1 , x2 = 5 2 + 3 , x3 = 3 , donde 1 + 2 + 3 = 1
3
7
7
z = 3x1 + 2x2 + x3
43
10
33
4
1 + 2( 5 2 + 3 ) + 3
3
7
7
= 10 1 +10 2 + 10 3
= 10(1+2+3)
= 10
= 3*
10
33
4
1 + 3*( 5 2 + 3 ) + 5* 3
3
7
7
20
1 + 152 + 173
3
= 17 + (
20
17)1 2 2 17
3
Ax b,
tiene a x = 0 como una solucin factible y, que si adems agregamos las variables de holgura, la
solucin [xB,xN] = [B,0] es una solucin bsica factible asociada a la matriz I, la cual queda
constituida por los coeficientes de stas variables. Los valores que ellas asumen, tienen un
significado en los problemas que se atacan. Puede significar, por ejemplo, la cantidad de un
recurso que se deja sin emplear. Sin embargo, en problemas como el siguiente
maximizar z = x1 2x2
sujeto a
x1 + x2
-x1 + x2
x2
x1, x2
2
1
3
0
es evidente que (x1, x2) = (0, 0) no es una solucin factible pues no satisface las dos primeras
restricciones. Por lo tanto, debe encontrarse, de alguna manera, una solucin bsica factible para
poder comenzar a aplicar el mtodo smplex. En esta clase de problemas se procede de la
siguiente manera: en las dos primeras restricciones que son de la forma , se restan las
variables no negativas x3 y x4, las cuales conservan el nombre de holguras (en algunos textos se
conocen como variables de supervit) y en la ltima sumamos x5, con lo que el problema
quedara
maximizar z = x1 2x2
44
sujeto a
x1 + x2 x3
=2
-x1 + x2
- x4
=1
x2 +
x5 = 3
x1, x2, x3, x4, x5 0
(38)
como los coeficientes de las variables de holgura no forman la matriz identidad se debe extraer
una submatriz invertible, para ello debe verificarse que su determinante sea diferente de cero.
Luego se multiplica el sistema por la inversa de esta submatriz y si el lado derecho es no
negativo se tiene una solucin bsica factible. Se ensaya con las 3 primeras columnas, como
1 1
|B| = 1 1
0 1
1 1
1 1
1 1
0 0 1 * 1 1
1 1 2
0 1
0
0
1 0
0 1
1 0 0 1 1
1 = 0 1 0 0 1
3
0 0 1 1 2
3
3
Como los trminos del lado derecho son no negativos se tiene una solucin bsica factible en la
cual x1=2, x2=3 y x3=6 (ntese que x1=2, x2=3 si es una solucin factible del problema
original). Trasponiendo trminos en la funcin objetivo z (z - x1 + 2x2 = 0) el sistema queda
tabulado como aparece en 2.14
VB x1 x2
z -1 2
x1 1 0
x2 0 1
x3 0 0
x3
0
0
0
1
x4
0
1
0
1
x5
0
1
1
2
LD
0 bi/aie
2
3
3
Tabla 2.14
Sin embargo los zj-cj de las variables bsicas x1 y x2 no son cero, por lo tanto mediante
operaciones elementales con los unos de las filas 1 y 2 se hacen ceros en la fila cero y
finalmente se tiene 2.15
VB x1 x2
z 0 0
x1 1 0
x2 0 1
x3 0 0
x3
0
0
0
1
x4
1
1
0
1
x5 LD
-1 -4 bi/aie
1 2
2
1 3
3
2 3 1.5
Tabla 2.15
Ahora si se estn cumpliendo las condiciones para ejecutar el mtodo smplex. Pivoteando en
45
VB
z
x1
x2
x3
x1 x2 x3
x4 x5 LD
0 0 1/2 1/2 0 -5/2 bi/aie
1 0 -1/2 1/2 0 1/2
0 1 -1/2 -1/2 0 3/2
0 0 1/2 1/2 1 3/2
Tabla 2.16
y se ha llegado a la solucin.
Este mtodo, sin embargo, resulta bastante engorroso, pues a pesar de que en este caso la
submatriz que se escogi result no singular y, adems, al resolver el sistema se obtuvieron
valores no negativos - por esto no fue necesario hacer ms ensayos-, este no ser siempre el caso
y, por lo tanto, el mtodo empleado no resulta eficiente.
Un mtodo ms eficiente para encontrar una solucin bsica factible inicial consiste en emplear
el propio mtodo smplex para tal efecto. Para ello se introducen las llamadas variables
artificiales, llamadas as porque, a diferencia de las de holgura, no representan nada en el
problema que se est resolviendo, sino que, simplemente se utilizan para encontrar la solucin
bsica factible inicial y luego se eliminan. Uno de los mtodos empleados para hacer salir las
variables artificiales de la base, consiste en penalizarlas en la funcin objetivo con un
coeficiente que en valor absoluto tiende a infinito y, que ser negativo si el problema es de
maximizacin y positivo en el caso de minimizacin. La solucin bsica factible obtenida en la
iteracin en la cual sale la ltima variable artificial queda en trminos de las variables originales
y de las de holgura y, por lo tanto, es una solucin bsica factible para el problema original, que
era lo que se estaba buscando. Se ilustra esta teora resolviendo nuevamente el ejercicio anterior.
Si en (38) se agregan las variables artificiales para completar la base y se penalizan estas nuevas
variables en la funcin objetivo se tiene
maximizar z = x1 2x2 Mx5 Mx6
sujeto a
x1 + x2 x3 +
x5
=2
-x1 + x2
- x4+ x6
=1
x7 = 3
x2 +
x1, x2,x3, x4, x5, x6, x7 0
VB
z
x5
x6
x7
x1
-1
1
-1
0
x2 x3
2 0
1 -1
1 0
1 0
x4
0
0
-1
0
x5
M
1
0
0
x6
M
0
1
0
x7 LD
0 0 bi/aie
0 2
0 1
1 3
Tabla 2.17
Haciendo ceros en la fila cero para las variables bsicas x5 y x6 queda la tabla 2.18
46
VB
z
x5
x6
x7
x1 x2
-1 2-2M
1 1
-1 1
0 1
x3
M
-1
0
0
x4
M
0
-1
0
x5 x6 x7 LD
0 0 0 -3M bi/aie
1 0 0
2
2
0 1 0
1
1
0 0 1 3
3
Tabla 2.18
En este momento, las variables artificiales x5 y x6 estn en la base y, por sta razn, el punto
(x1,x2) = (0,0) no pertenece a la regin factible del problema original.
Como 2-2M es el coeficiente ms negativo de la fila cero entra x2 y como 1 es la razn mnima
sale x6. Pivoteando en a22 se tiene 2.19
VB
z
x5
x2
x7
x1
1-2M
2
-1
1
x2
0
0
1
0
x3
x4 x5
M 2 -M 0
-1 1
1
0 -1
0
0
1
0
x6
2M-2
-1
1
-1
x7 LD
0 -3M bi/aie
0
1
1/2
0
1
*
1
2
2
Tabla 2.19
La variable artificial x5 an permanece en la base y, por lo tanto, el punto (x1,x2) = (0,1) no es
factible en el problema original, (ntese que no satisface la restriccin 1).
Como 1-2M es el coeficiente ms negativo de la fila cero entra x1 y como 1/2 es la razn
mnima sale x5. Entonces se pivotea en a11 para obtener la tabla 2.20
VB
z
x1
x2
x7
x1
0
1
0
0
x2
0
0
1
0
x3
x4
x5
x6
x7
1/2 3/2 M-1/2 M-3/2 0
-1/2 1/2 1/2
-1/2
0
-1/2 -1/2 1/2
1/2
0
1/2 1/2 -1/2
-1/2
1
LD
-5/2 bi/aie
1/2
3/2
3/2
Tabla 2.20
En este momento las variables artificiales x5 y x6 han abandonado la base y, por lo tanto, el
punto (x1,x2) = (1/2,3/2) pertenece a la regin factible del problema original. Mas an,
(1/2,3/2,3/2) es una solucin bsica factible asociada a la matriz I cuyas columnas aparecen
debajo de las variables bsicas x1,x2 y x7. Se est, segn la teora expuesta, en condicin de
aplicar el mtodo smplex para resolver el problema original, esto se consigue simplemente
suprimiendo las columnas correspondientes a las variables artificiales y aplicando a la tabla
resultante el algoritmo smplex. En todos los libros que consult el autor de este trabajo, no
eliminan estas columnas, sino que continan el proceso con la tabla completa. Cuando se
desarrolla el algoritmo a mano, esto obviamente implica realizar un trabajo superfluo. Es
probable que la razn de obrar as sea que al programar el algoritmo en un computador, no es
necesario hacer que este tenga en cuenta el momento en el cual sali la ltima variable artificial
y, simplemente, contina iterando con la tabla completa.
47
Teorema 2.2: Si [x,xa], donde xa es el vector de variables artificiales, es solucin ptima del
problema artificial y si xa 0, entonces el problema original no tiene puntos factibles.
Demostracin: Supngase que x es una solucin factible del problema original y, por lo
tanto, [x,0] lo es del artificial. Por la optimalidad de [x,xa] se tiene que
cx cx Mxa
pero como se puede tomar M tan grande como se quiera y como adems xa 0 y xa 0 esta
desigualdad no tiene sentido y por lo tanto x no puede ser una solucin factible del problema
original.
48
3x1 + 2x2 6
x1 + 2x2 4
x1, x2 0
49
La tabla 2.21
aM+b cM+d
1
e
Tabla 2.21
representa una situacin simplificada, en la cual slo aparecen, el pivote y una entrada
cualquiera de la misma fila del pivote, con sus correspondientes entradas en la fila cero. Para
hacer un 0, encima del pivote, se multiplica su fila por (aM+b) y se la suma a la fila cero para
obtener 2.22
aM+b(aM+b) cM+de(aM+b)
1
e
Tabla 2.22
que simplificando queda
0 (c-ea)M+deb
1
e
Tabla 2.23
si se aplica la descomposicin de la fila 0 en lugar de la tabla 2.21 se tiene la tabla 2.24
a c
b d
1 e
Tabla 2.24
En la cual la primera fila corresponde a los coeficientes de las M y la segunda a los trminos
independientes. Se hacen ceros en las posiciones ocupadas por a y b, para obtener 2.25
0 c-ea
0 d-eb
1
e
Tabla 2.25
si se compara esta ltima tabla con la tabla 2.23 se ve que los resultados son equivalentes.
Est nueva forma de tabulacin para el mtodo de la M, como ya se dijo, permite que el trabajo
sea puramente numrico y evita los errores de redondeo provenientes de asignar valores
grandes a la M. Por lo tanto, se tiene que, con la nueva tabulacin, el mtodo de la M es ms
eficiente que el de las dos fases y por esta razn, no tiene sentido dedicar esfuerzos a aprender
este ltimo.
50
2.5 Degeneracin
Se presenta degeneracin cuando alguna de las variables bsicas asume el valor cero. La
degeneracin indica la existencia de restricciones redundantes como ilustra el siguiente ejemplo
maximizar z = 3x1 +9x2
sujeto a
x1 + 4x2 8
x1 + 2x2 4
x1, x2 0
VB x1 x2 x3
z -3 -9
x3 1
4
x4 1
2
x4 LD
0 0 0 bi/aie
1 0 8
2
0 1 4
2
Tabla 2.26
VB x1 x2
z -3/4
x2 1/4
x4 1/2
x3 x4 LD
0 9/4 0 18 bi/aie
1 1/4 0 2
8
0 -1/2 1 0
4
Tabla 2.27
VB x1 x2 x3 x4 LD
z 0 0 3/2 3/2 18 bi/aie
x2 0 1 1/2 -1/2 2
x4 1 0 -1
2 0
Tabla 2.28
51
En la tabla 2.26 se ve que hay un empate entre las variables que entran a la base,
siempre que esto ocurre la tabla siguiente tiene una solucin bsica factible degenerada,
pues al existir, al menos dos variables de bloqueo, una sale de la base y la otra
permanece, pero con un valor de 0.
En la tabla 2.28 se llega a una solucin ptima degenerada despus de que apareciera la
degeneracin en la tabla 2.27, sin embargo, esto no es una constante pues existen
problemas como:
maximizar z = 3x1 + 2x2
sujeto a
4x1 + 3x2 12
4x1 + x2 8
4x1 - x2 8
x1,x2 0
el cual, luego de pasar por una degeneracin temporal en la primera iteracin llega, en
la segunda, a la solucin ptima no degenerada:
x1 = 3/2,
x2 = 2
z = 17/2
Generalmente cada iteracin del smplex lleva a un nuevo valor de z mejor que el
anterior, sin embargo, este no es el caso cuando hay degeneracin, como se puede ver
en las tablas 2.27 y 2.28. Este hecho, el de que no exista modificacin para z en
sucesivas iteraciones, puede llevar al caso extremo del ciclado, el cual consiste en que,
luego de algunas iteraciones, se llega a una tabla que ya se haba tenido en el proceso, lo
cual, si se siguen los mismos pasos, llevara a un ciclo infinito. Aunque existen mtodos
para evitar el ciclado (vase, por ejemplo, [Baz96] pgina 170 y siguientes) una forma
menos complicada de hacerlo es elegir de manera diferente la variable de entrada que
llev al ciclado (vase, por ejemplo, [Hil02] pgina 129).
52
Conclusiones
Detrs de todo algoritmo matemtico, desde la multiplicacin de nmeros de varias
cifras, hasta el entrenamiento de redes neuronales, existe un teora que justifica cada
uno de los pasos. El conocimiento de sta teora no es necesario para ejecutar los
algoritmos, una demostracin contundente de esta afirmacin son todos los que ejecutan
los computadores. Sin embargo, el desconocimiento de la teora s impide mejorar, o
adaptar, los algoritmos existentes o crear nuevos algoritmos.
En la comprensin del algoritmo smplex, que fue el propsito de este trabajo, hay que
resaltar la importancia de resultados como el teorema 1.9, que relaciona el enfoque
geomtrico con las matrices, mediante la definicin de soluciones bsicas factibles. El
hecho de que los libros enfocados a la Ingeniera no presenten este resultado, y algunos
otros, como algunas conclusiones sobre convexidad y el teorema de representacin (aun
sin demostracin) es la causa, al parecer del autor, de que tales libros no logren ser
convincentes en los intentos que hacen de presentar una justificacin terica. Tampoco
ayuda el proceso de decremento en la enseanza del Algebra Lineal que estamos
viviendo, pues aunque las demostraciones vistas en este trabajo son sencillas en esencia,
a pesar de que algunas puedan resultar extensas, es necesario poseer conocimientos
elementales como: los conceptos de independencia lineal, base etc., y el producto de
matrices por bloques.
La programacin lineal es la puerta de entrada al extenso campo de la Investigacin de
Operaciones, que constituye una de las reas de la matemtica aplicada ms interesantes
y tiles de la actualidad. Por alguna razn, en este momento los trabajos de grado de la
Fundacin se estn enfocando hacia esta rea y esto me parece bueno, porque la
situacin futura del pas nos llevar a enfrentarnos con naciones que aplican este tipo de
conocimientos a cada una de las empresas en las cuales se comprometen, y han
demostrado que constituye una herramienta efectiva.
El terreno ganado en comprensin terica es pequeo, pero desde l se puede continuar
la exploracin de los grandes espacios que an falta conquistar. El matrimonio
matemticas-informtica que est en las fundamentos de la concepcin de la carrera de
matemticas en la Fundacin, puede encontrar en la Investigacin de Operaciones un
rico filn, y puede constituirse en el fuerte del perfil del futuro profesional. Adems,
esto estara en consonancia con el postgrado que ofrece la Fundacin en esta rea.
53
Bibliografa
54