Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2.1 Introduccin
En el mdulo anterior hemos estudiado el mtodo grfico para resolver un programa
lineal con dos variables de decisin. La presentacin geomtrica fue til en la exploracin de
propiedades importantes del modelo de programacin lineal.
Dado que la mayora de los problemas del mundo real contienen ms de dos variables
de decisin, dichos problemas son resueltos mediante el mtodo o algoritmo (procedimiento
matemtico repetitivo) simplex, o alguna variable de l. Este mtodo fue creado por George
Dantzig en los ltimos aos de la dcada de los cuarenta. Desde entonces, Dantzig y otros
han continuado su desarrollo, especialmente para ciertas aplicaciones.
Conjunto Convexo
Un conjunto de puntos S es un conjunto convexo, si el segmento rectilneo que une cualquier
par de puntos de S, se encuentra completamente en S.
C (m, n) = n! / [(n-m)!*m!]
Solucin ptima
Es toda solucin que le da a la funcin Z el mximo (o mnimo) valor.
Mx. (Z) = 70 x1 + 40 x2
Sa 2 x1 + 5 x2 <= 2.000 (C1)
2 x1 + 1 x2 <= 800 (C2)
1 x1 + 1 x2 <= 500 (C3)
x1 ; x2 >= 0
Veamos el grfico y analicemos algunas soluciones (la lnea que esta en rojo
corresponde a la funcin objetivo). La cantidad de soluciones posibles a nuestro problema es
infinito y esta determinada por la zona sombreada de color verde. Una caracterstica del
mtodo simplex es que trabaja con soluciones o puntos extremos y la solucin ptima se
encuentra en uno de ellos, es decir, que estos puntos que se encuentran donde se cortan dos
restricciones o bien cuando una restriccin corta algunos de los ejes.
Los puntos A (donde se corta C1 con C3) y B (donde se corta C1 con eje X2) son
soluciones bsicas factibles, son soluciones bsicas porque se encuentran en un punto
extremo y son factibles porque pertenecen a la regin factible (zona sombreada de verde). El
punto D es una solucin no bsica y factible, es no bsica porque no es punto extremo y
factible por que se encuentra dentro del polgono de soluciones (regin factible). Y el punto C
(donde se corta C3 con eje X1) es una solucin bsica no factible. Es bsica porque es punto
extremo y es no factible porque se encuentra por fuera de la regin factible.
Considerando lo analizado hasta el momento, podemos hacer las siguientes
observaciones:
Para cumplir con las restricciones de no negatividad de las variables,
grficamente se trabaja siempre en el primer cuadrante
El poliedro de soluciones es un conjunto convexo..
Los puntos que resulta necesario considerar para buscar el ptimo, son
los que se encuentran sobre la frontera de la regin factible.
En particular podemos observar que si el PL tiene solucin, sta se
encontrar en, al menos, uno de los vrtices.
Se puede obtener la solucin en cada vrtice resolviendo en forma
simultnea las ecuaciones lineales que lo determinan.
Las soluciones factibles en los vrtices son soluciones factibles bsicas.
Todos los puntos del poliedro de soluciones verifican las restricciones,
es decir que el problema tiene infinitas soluciones factibles.
En todo punto situado sobre una recta no hay sobrante de insumos.
En las ecuaciones determinantes del ptimo (restricciones limitantes), no
hay sobrantes de insumos, por lo tanto, las variables de holgura son
nulas.
En las ecuaciones no determinantes del ptimo (restricciones no
limitantes) siempre hay sobrantes de insumos, o sea, las variables de
holgura son positivas.
Si el funcional verifica su mximo valor en un nico vrtice del poliedro,
significa que el problema tiene una nica solucin ptima.
Si z fuera paralela a una restriccin limitante, el problema tendra
infinitas soluciones ptimas.
Expresaremos una serie de teoremas relacionados con las soluciones factibles de los
problemas lineales, los que resultarn de utilidad en desarrollos posteriores.
Teorema 1
Este teorema se enuncia como: "Toda combinacin lineal convexa de soluciones
factibles, es otra solucin factible".
Para demostrarlo partimos de un PL estndar matricial:
Maximizar CX
AX = B
X
Sean X1, X2, Xr, r vectores soluciones del PL, por lo tanto se verificar:
AX, = B
AX, = B
... (1)
Xr = B
Si multiplicamos miembro a miembro las ecuaciones del sistema (1) por escalares 1;
2, , r, respectivamente, con la condicin que,
i 0 y i =1, i = 1, 2,..., r,
Tendremos:
1 A X1 = 1 B
2 A X2 = 2 B
(2)
r A X2 = r B
De donde,
A r X2 = B r
Teorema 2
"Si existe ms de una solucin factible que le den el mismo valor a la funcin objetivo,
cualquier combinacin lineal convexa de las mismas, dar al funcional igual valor*.
La demostracin de este teorema es similar al anterior.
Partimos de un PL en forma estndar matricial:
Maximizar CX
AX = B
X
Sean Xi, X2, Xr, r vectores soluciones del PL que dan a la funcin objetivo igual valor,
por lo tanto se verificar:
CX1 = Z0
CX2 = Z0
.. (3)
CXr = Z0
Si multiplicamos miembro a miembro las ecuaciones del sistema (3) por escalares 1;
2, , r, respectivamente, con la condicin que,
i 0 y i =1, i = 1, 2,..., r,
Tendremos:
1 C X1 = 1 Z0
2 C X2 = 2 Z0
(2)
De donde,
C i Xi = Z0 i
Como,
i =1,
Tendremos que el vector resultante de la combinacin convexa
i Xi = Xk
Es tambin una solucin factible del PL que otorga a la funcin de decisin el mismo
valor Z0, es decir:
CXk = Zo
Teorema 3
"Si un PL puede ser resuelto - es decir que posee ptimo existir siempre por lo
menos una solucin factible bsica que tambin sea ptima".
Recordemos que grficamente, cada vrtice se forma por la interseccin de las rectas
representativas de las restricciones y que los valores de las variables para cada punto
extremo, se encuentran resolviendo en forma simultnea las ecuaciones de restriccin
correspondientes a ese vrtice. A su vez, cada punto extremo o vrtice corresponde a
una solucin posible bsica del problema.
El mtodo Simplex, basndose en estas conclusiones generales, analiza
sistemticamente los puntos extremos de la regin factible hasta identificar el punto
ptimo. Asegurndose en cada paso que el vrtice analizado no es peor que el
anterior, esto es, que le d a la funcin objetivo un valor mejor o al menos igual que el
anterior.
Este cociente representa el mximo valor que puede tomar la variable entrante, antes
que viole la restriccin de no negatividad.
Si todos los ij y son 0 la solucin es no acotada. Esto significa que la funcin
objetivo podra incrementar (disminuir) infinitamente su valor. Esta situacin es
prcticamente imposible en la realidad, por lo cual corresponde detener el proceso de
clculo y revisar la modelizacin del problema.
Para alguna variable no bsica que pueda entrar a la base se verifica que todos los ij
son 0
Mx. (Z) = 70 x1 + 40 x2
Sa 2 x1 + 5 x2 <= 2.000
2 x1 + 1 x2 <= 800
1 x1 + 1 x2 <= 500
x1 ; x2 >= 0
2 x1 + 5 x2 +S1 = 2.000
2 x1 + 1 x2 +S2 = 800
1 x1 + 1 x2 +S3= 500
Podemos analizar cada una de estas soluciones, para ello construiremos la siguiente
tabla:
Sol. X1 X2 S1 S2 S3 Z Observaciones
1 0 0 2.000 800 500 0 Solucin bsica factible no ptima
Cj 70 40 0 0 0
Sol. x1 x2 s1 s2 s3
2.000 2 5 1 0 0
800 2 1 0 1 0
500 1 1 0 0 1
A la altura del rengln Cj, vamos a colocar los coeficientes de la funcin objetivo para
cada una de las variables. Por columna tenemos el vector solucin (en la tabla a la
altura de sol.), que corresponde al lado derecho de las restricciones y van a
corresponder al valor de las variables que no son cero (recuerde que el mtodo
simplex trabaja con soluciones bsicas y para obtenerlas se deben hacer dos
variables iguales a cero, y las vamos a llamar variables no bsicas). A la altura de
sol por rengln tenemos identificadas las variables y por debajo tenemos cada uno de
los coeficientes de las restricciones.
Cj 70 40 0 0 0
Ck Xk Sol. x1 x2 s1 s2 s3
0 S1 2.000 2 5 1 0 0
0 S2 800 2 1 0 1 0
0 S3 500 1 1 0 0 1
Zj 0 0 0 0 0 0
Cj Zj -- 70 40 0 0 0
X1 = 0
X2 = 0
Solucin inicial= S1 = 2.000 Z inicial= 0 solucin 1 de la tabla de soluciones
S2 = 800
S 3 = 500
Agregamos el vector Xk que corresponde al vector de las variables que no son cero
en esta primera solucin bsica, de ahora en ms las vamos a llamar variables
bsicas (porque estn a la base). Ck es un vector columna conformado por los
coeficiente de la funcin objetivo de las variables que estn a la base.
Por otro lado hemos adicionado el rengln Zj que se calcula haciendo la suma
producto del vector Ck por cada uno de los vectores columnas correspondiente, por
ejemplo a la altura del vector solucin tenemos: 0*2.000+0*800+0*500 = 0 y
corresponde al valor de Z de esta solucin. El rengln Cj - Zj es la prueba que realiza
el mtodo para saber si esta solucin es la ptima o no, si en ese rengln existe un
valor positivo significa que la solucin no es la ptima (como se observa en la tabla
hay mas de un valor positivo), si bien de antemano sabamos que no era el ptimo
porque lo vimos a travs del mtodo grfico.
Entonces encontramos una solucin, que le llamamos solucin inicial y a partir de cual
simplex comienza a trabajar. El siguiente paso consiste en encontrar otra solucin,
para ello vamos a sacar unas de las variables que esta a la base (variables que tienen
= min.(i / ij)
Cj 70 40 0 0 0
Ck Xk Sol. x1 x2 s1 s2 s3
0 s1 2.000 2 5 1 0 0 1=2.000/2
0 s2 800 2 1 0 1 0 2=800/2
0 s3 500 1 1 0 0 1 3=500/1
Zj 0 0 0 0 0 0
Cj - Zj -- 70 40 0 0 0
El valor ms chico es 2 que est a la altura del rengln de S2, indicando que esta
es la variable que se va a de la base en el prximo paso y en su lugar entra X 1. En
este caso 2 representa el valor que va a tener X1 en la prxima tabla.
Para obtener la prxima solucin directamente de la tabla de simplex, vamos a tener
que trasladar el vector unitario que esta a la altura de la variable que se va de la base
(S2) a la posicin de la columna de X1. Esta operacin no se puede realizar en un
mero acto de movimiento fsico, si no que se debe realizar a travs de operaciones
elementales de matrices. Recordemos estas tres operaciones: 1). Se pueden
intercambiar de posicin dos filas o columnas, 2). Se puede multiplicar a los
elementos de una fila por una constante distinta de cero y 3). Una fila se le
puede sumar otra fila previamente multiplicado por una constante distinta de
cero.
Cj 70 40 0 0 0
Ck Xk Sol. x1 x2 s1 s2 s3
0 s1 2.000 2 5 1 0 0 1=2.000/2
0 s2 800 2 1 0 1 0 2=800/2
0 s3 500 1 1 0 0 1 3=500/1
Zj 0 0 0 0 0 0
Cj - Zj -- 70 40 0 0 0
70 x1 400 1 0 0
Ahora debemos hacer cero los elemento que estn por encima y por debajo del
elemento pivot, para ello nos vamos a valer de la operacin 3. Tomamos la nueva fila
calculada, la multiplicamos por el elemento opuesto al que queremos hacer cero y la
sumamos a la primera fila de la tabla de simplex original. Entonces para nuestro
ejemplo sera la primera nueva fila (la llamamos F1), que es la nueva fila que
queremos calcular) resulta de tomar la fila 2 nueva calculada (la lamamos F2) la
multiplicamos por el elemento opuesto que queremos hacer cero (en este caso -2) y la
sumamos la primera fila de la primera tabla de simplex (que la llamamos F1) en
resumen:
F1= F2*(-2) + F1
Y obtenemos:
Ck Xk Sol. x1 x2 s1 s2 s3
0 s1 2.000 2 5 1 0 0 1=2.000/2
0 s2 800 2 1 0 1 0 2=800/2
0 s3 500 1 1 0 0 1 3=500/1
Zj 0 0 0 0 0 0
Cj - Zj -- 70 40 0 0 0
0 S1 1200 0 4 1 -1 0
70 X1 400 1 0 0
0 S3 100 0 0 -1/2 1
Recuerde que simplex trabaja cambiando de a una variable por vez, en el caso
anterior sac de la base S2 e introdujo X1 a la base y obtuvo una nueva solucin.
Ahora debemos probar si esta solucin es la ptima o no y para ello volvemos a
calcular de nuevo Zj y Cj - Zj.
Esta nueva solucin por supuesto es otra solucin bsica, es punto extremo y la
podemos ubicar sobre el eje X1 en interseccin con la restriccin C2 formando punto
(400,0). En el ejemplo el mtodo simplex arranco en el origen y tomo la solucin
bsica adyacente inmediata sobre X1, dado que en la funcin objetivo es la que tiene
mayor coeficiente. Para a prxima solucin simplex va a analizar la solucin
adyacente siguiente en la misma direccin con la que arranco, esto es que si arranco
en sentido horario va continuar en esta direccin sin volverse para atrs.
Calculemos de Zj y Cj Zj para saber si es la solucin ptima o no, aunque sabemos
de antemano que la solucin ptima no esta en este punto.
Ck Xk Sol. x1 x2 s1 s2 s3
0 s1 2.000 2 5 1 0 0 1=2.000/2
0 s2 800 2 1 0 1 0 2=800/2
0 s3 500 1 1 0 0 1 3=500/1
Zj 0 0 0 0 0 0
Cj - Zj -- 70 40 0 0 0
0 S1 1200 0 4 1 -1 0 1=1.200/4
70 X1 400 1 0 0 2=400/0.5
Zj 28.000 70 35 0 35 0
Cj - Zj -- 0 5 0 -35 0
X1 = 400
X2 = 0
Nueva solucin = S1 = 1.200 Z1 = 28.000 solucin 2 de la tabla de soluciones
S2 = 0
S 3 = 100
Obteniendo la siguiente:
Cj 70 40 0 0 0
Ck Xk Sol. x1 x2 s1 s2 s3
0 s1 2.000 2 5 1 0 0 1=2.000/2
0 s2 800 2 1 0 1 0 2=800/2
0 s3 500 1 1 0 0 1 3=500/1
Zj 0 0 0 0 0 0
Cj - Zj -- 70 40 0 0 0
0 S1 1200 0 4 1 -1 0 1=1.200/4
70 X1 400 1 0 0 2=400/0.5
0 S3 100 0 0 - 1 3=100/0.5
Zj 28.000 70 35 0 35 0
Cj - Zj -- 0 5 0 -35 0
0 S1 400 0 0 1 3 -8
70 X1 300 1 0 0 1 -1
40 X2 200 0 1 0 -1 2
Ck Xk Sol. x1 x2 s1 s2 s3
0 s1 2.000 2 5 1 0 0 1=2.000/2
0 s2 800 2 1 0 1 0 2=800/2
0 s3 500 1 1 0 0 1 3=500/1
Zj 0 0 0 0 0 0
Cj - Zj -- 70 40 0 0 0
0 S1 1200 0 4 1 -1 0 1=1.200/4
70 X1 400 1 0 0 2=400/0.5
Zj 28.000 70 35 0 35 0
Cj - Zj -- 0 5 0 -35 0
0 S1 400 0 0 1 3 -8
70 X1 300 1 0 0 1 -1
40 X2 200 0 1 0 -1 2
Zj 29.000 70 40 0 30 10
Cj - Zj -- 0 0 0 -30 -10
Como puede verse esta es la ltima tabla del simplex dado que en el Cj Zj son todos
positivos o nulos, esto significa que hemos encontrado la solucin ptima:
Como puede verse en este problema tenemos una restriccin de menor e igual, una
de mayor e igual y una de igualdad. Para llevarlo a la forma estndar, en el caso de la
primera restriccin simplemente agregamos una variable de holgura y se transforma
la desigualdad en igualdad (+S). Para el caso de la restriccin de mayor e igual
agregamos una variable de excedente (-S), el signo es lo que la diferencia de la de
holgura, y se transforma la desigual en igualdad. Ahora ya hemos transformado las
inecuaciones en ecuaciones y agregamos tantas variables artificiales como son
necesarias; en nuestro caso a la segunda restriccin por ser mayor e igual y a la
tercera que es una restriccin del tipo desigual. Entonces el problema de
programacin lineal en su forma estndar nos queda:
Ck Xk Sol. X1 X2 S1 S2 A2 A3
0 S1 1.000 4 2 1 0 0 0 1=1000/2
-100 A2 50 1 0 0 -1 1 0 2=50/0
-100 A3 0 -3 1 0 0 0 1 3=0/1
X1 = 0
X2 = 0
Solucin inicial= S1 = 1.000 Z inicial= -5000
A 2 = 15
A3= 0
Ck Xk Sol. X1 X2 S1 S2 A2 A3
0 S1 1.000 4 2 1 0 0 0 1=1000/2
-100 A2 50 1 0 0 -1 1 0 2=50/0
-100 A3 0 -3 1 0 0 0 1 3=0/1
8 X2 0 -3 1 0 0 0 1
Posteriormente debemos hacer cero los elementos que estn por encima y por debajo
del elemento pivot. Recuerde que lo que estamos haciendo es trasladar el vector
unitario de las variables que sale a la posicin de la variable que entra. A continuacin
desarrollamos el simplex completo.
Ck Xk Sol. X1 X2 S1 S2 A2 A3
0 S1 1.000 4 2 1 0 0 0 1=1000/2
-100 A2 50 1 0 0 -1 1 0 2=50/0
5 A3 0 -3 1 0 0 0 1 3=0/1
0 S1 1.000 10 0 1 0 0 -2 1=1000/10
-100 A2 50 1 0 0 -1 1 0 2=50/1
8 X2 0 -3 1 0 0 0 1 3=0/-3
Zj Nota: ij negativo
-5000 -124 8 0 100 -100 8
no se tiene en
Cj - Zj cuenta para la
-- 129 0 0 -100 0 -108
seleccin de
0 S1 500 0 0 1 10 -10 -2 1=500/10
5 X1 50 1 0 0 -1 1 0 2=50/-1
8 X2 150 0 1 0 -3 3 1 3=0/-3
Zj 1.450 5 8 0 -29 29 8
Cj - Zj -- 0 0 0 29 -129 -108
0 S2 50 0 0 0,1 1 -1 -0,2
Min. (Z) = 30 X1 + 20 X2
Sa 1 X1 + 3 X2 <= 90
4 X1 + 2 X2 >= 120
X1 ; X2 >= 0
Forma estndar:
Min. (Z) = 30 X1 + 20 X2 +0S1 +0S2 + 100A2
Sa 1 X1 + 3 X2 +S1 = 90
4 X1 + 2 X2 - S2 + A2 = 120
X1 ; X2 ; S1 ; S2 ; A2 ; >= 0
Ck Xk Sol. X1 X2 S1 S2 A2
0 S1 90 1 3 1 0 0 1=90/1
Cj - Zj -- 0 5 0 15/2 1015/2
X1 = 30
X2 = 0
Nueva solucin = S1 = 60 Z* = 900 solucin ptima
S2 = 0
A2 = 0
Todo problema de minimizacin puede ser resuelto como un problema de
maximizacin, multiplicando la funcin objetivo por (-1), aplicamos simplex y una vez
obtenido el valor de Z ptimo se lo vuelva a multiplicar por (-1). Compruebe esto.
Sa 1 X1 + 3 X2 <= 90 Sa 1 X1 + 3 X2 <= 90
X1 ; X2 >= 0 X1 ; X2 >= 0
Ejemplo 1:
Mx. (Z) = 70 x1 + 40 x2
Sa 2 x1 + 5 x2 <= 2.000
2 x1 + 1 x2 <= 800
1 x1 + 1 x2 <= 500
x1 ; x2 >= 0
Solucin del sistema, entramos al men results y hacemos clic en solution summary.
Se obtiene el valor de las variables y el valor de la funcin objetivo.
Ejemplo 2:
Mx. (Z) = 8 X1 + 5 X2
Sa 4 X1 + 2 X2 <= 1.000
1 X1 >= 50
-3 X1 + 1 X2 = 0
X1 ; X2 >= 0
Ejemplo 3:
Mx. (Z) = 30 X1 + 20 X2
Sa 1 X1 + 3 X2 <= 1.000
4 X1 + 2 X2 >= 50
X1 ; X2 >= 0
Ingreso al programa:
Solucin:
http://www.phpsimplex.com/
http://www.phpsimplex.com/simplex/simplex.htm?l=es
Paso 4:
Listo! La solucin ptima se expresa resaltada en color verde. Fcil, no?
Esto es todo. Pueden utilizar esta herramienta como apoyo para practicar con
otros ejemplos para repasar el mtodo.