Professional Documents
Culture Documents
2.1
Introduccin
2.2
-1-
-2-
2.3
70 x1 + 40 x2
2 x1
2 x1
1 x1
x1
-3-
-4-
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
r A X2 = r B
(2)
De donde,
A r X2 = B r
-5-
Siendo,
i =1,
El vector resultante de la combinacin convexa,
i Xi = Xk
(2)
-6-
r C X2 = r Z0
Si ahora sumamos miembro a miembro, obtendremos:
C i Xi = i Z0
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
En consecuencia, de acuerdo a los teoremas 1 y 2, podemos afirmar que cualquier
combinacin convexa de soluciones factibles ptimas es tambin una solucin factible
ptima.
Por lo cual, respecto al conjunto de soluciones factibles ptimas decimos que es un
conjunto convexo, que si no es vaco, esta formado por un elemento o por una
infinidad.
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".
2.5
Mtodo simplex
-7-
El mtodo Simpiex tiene en cuenta las siguientes propiedades de los puntos extremos
o soluciones factibles bsicas:
1.
A) Si existe exactamente una solucin ptima, entonces debe ser una
solucin de punto extremo.
B) Si existen soluciones ptimas mltiples, entonces al menos dos de ellas
deben ser soluciones factibles en puntos extremos adyacentes (slo se
consideran las soluciones factibles).
2. Existe slo un nmero finito de puntos extremos (soluciones factibles
bsicas).
3. Si una solucin en un vrtice es igual o mejor (segn el valor de la funcin
objetivo) que todas las soluciones factibles en los vrtices adyacentes a
ella, entonces es igual o mejor que todas las dems soluciones en los
vrtices, es decir, es 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.
Pasos del mtodo simplex
Teniendo en cuenta lo expresado en el Teorema 3, el algoritmo Simplex busca el
ptimo de un problema de PL recorriendo algunos de los vrtices del poliedro del
conjunto de soluciones factibles de manera que el valor de la funcin objetivo mejore
en cada desplazamiento.
Es decir que analiza las soluciones posibles bsicas del problema hasta encontrar la
ptima, resolviendo en cada paso un sistema de m" ecuaciones con "n" variables.
El mtodo consiste fundamentalmente en dos fases:
En la primera fase se identifica una solucin posible bsica que sirva de punto de
partida.
En la segunda fase o fase iterativa se analiza si dicha solucin es o no ptima, y si no
lo es, a partir de ella se encuentra una mejor.
El Simplex trabaja con tablas o cuadros, cada uno de ellos corresponde a un punto
extremo o vrtice del conjunto de soluciones factibles, es decir a una solucin posible
bsica. Las tablas resumen toda la informacin necesaria de cada solucin.
-8-
-9-
- 10 -
2.6
Caso de aplicacin
Veamos un ejemplo:
Mx. (Z) =
Sa
70 x1 + 40 x2
2 x1 + 5 x2 <= 2.000
2 x1 + 1 x2 <= 800
1 x1 + 1 x2 <= 500
x1 ;
x2 >=
0
+S1
= 2.000
+S2
= 800
+S3= 500
- 11 -
Podemos analizar cada una de estas soluciones, para ello construiremos la siguiente
tabla:
Sol.
X1
X2
S1
S2
S3
Observaciones
2.000
800
500
400
400
100
16.000
800
-2000
-300
--
500
-500
300
--
1.000
-1.200
-500
--
400
1200
100
28.000
500
1.000
-200
--
250
300
-50
--
- 12 -
9
10
166,66
333,33
133,33
16.999,89
300
200
400
29.000
70 X1 + 40 X2
2 X1 + 5 X2
2 X1 + 1 X2
1 X1 + 1 X2
x1 ;
x2 ;
= 2.000
= 800
= 500
>=
0
70
40
Sol.
x1
x2
s1
s2
s3
2.000
800
500
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.
- 13 -
Como hemos dicho anteriormente el mtodo simplex arranca con una solucin bsica
inicial, resultndole ms conveniente hacer las variables principales del problema
iguales a cero (X1= 0 y X2= 0), con lo cual del sistema de ecuaciones obtenemos S1
= 2.000, S2 = 800 y S3 = 500. Que corresponde al punto de origen del grfico y la
solucin 1 de la tabla con un valor de Z=0 (valor sombreado a la altura de la columna
sol y fila Zj. Vamos a pasar a completar la primera tabla del simplex que habamos
comenzado con el resto de la informacin.
Cj
70
40
Ck
Xk
Sol.
x1
x2
s1
s2
s3
S1
2.000
S2
800
S3
500
Zj
Cj Zj
--
70
40
Solucin inicial=
X1 = 0
X2 = 0
S1 = 2.000
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
- 14 -
Cj
70
40
x1
x2
s1
s2
s3
Ck
Xk
Sol.
s1
2.000
1=2.000/2
s2
800
2=800/2
s3
500
3=500/1
Zj
Cj - Zj
--
70
40
1.000
SALE S2
ENTRA X1
400
500
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.
- 15 -
Cj
70
40
Ck
Xk
Sol.
x1
x2
s1
s2
s3
s1
2.000
1=2.000/2
s2
800
2=800/2
s3
500
3=500/1
Zj
Cj - Zj
--
70
40
400
70
x1
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
Para la tercera fila hacemos algo similar:
F3= F2*(-1) + F3
Y obtenemos:
- 16 -
Cj
70
40
Ck
Xk
Sol.
x1
x2
s1
s2
s3
s1
2.000
1=2.000/2
s2
800
2=800/2
s3
500
3=500/1
Zj
Cj - Zj
--
70
40
S1
1200
-1
70
X1
400
S3
100
-1/2
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.
- 17 -
Cj
70
40
Ck
Xk
Sol.
x1
x2
s1
s2
s3
s1
2.000
1=2.000/2
s2
800
2=800/2
s3
500
3=500/1
Zj
Cj - Zj
--
70
40
S1
1200
-1
1=1.200/4
70
X1
400
2=400/0.5
S3
100
-1/2
3=100/0.5
Zj
28.000
70
35
35
Cj - Zj
--
-35
Nueva solucin =
X1 = 400
X2 = 0
S1 = 1.200
S2 = 0
S 3 = 100
- 18 -
Cj
70
40
Ck
Xk
Sol.
x1
x2
s1
s2
s3
s1
2.000
1=2.000/2
s2
800
2=800/2
s3
500
3=500/1
Zj
Cj - Zj
--
70
40
S1
1200
-1
1=1.200/4
70
X1
400
2=400/0.5
S3
100
3=100/0.5
Zj
28.000
70
35
35
Cj - Zj
--
-35
S1
400
-8
70
X1
300
-1
40
X2
200
-1
- 19 -
Cj
70
40
Ck
Xk
Sol.
x1
x2
s1
s2
s3
s1
2.000
1=2.000/2
s2
800
2=800/2
s3
500
3=500/1
Zj
Cj - Zj
--
70
40
S1
1200
-1
1=1.200/4
70
X1
400
2=400/0.5
S3
100
-1/2
3=100/0.5
Zj
28.000
70
35
35
Cj - Zj
--
-35
S1
400
-8
70
X1
300
-1
40
X2
200
-1
Zj
29.000
70
40
30
10
Cj - Zj
--
-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:
EN CASO DE MAXIMIZACION ES OPTIMA CUANDO SON NEGATIVOS O CERO !!!
- 20 -
Nueva solucin =
2.6
X1 = 0
X2 = 0
S1 = 2.000
S2 = 800
S 3 = 500
Al resolver algunos problemas con el mtodo Simplex, numerosas veces sucede que
no podemos identificar la solucin bsica de inicial.
En general, esto ocurre cuando en el planteo tenemos restricciones de igualdad o
inecuaciones del tipo . En el primer caso, no es necesario agregar variables de
holgura y en el segundo las agregamos restando (variable de excedente), por lo cual
no existirn en la matriz A los m vectores unitarios necesarios para formar la primera
solucin bsica.
Para solucionar este problema, se utiliza la tcnica de la base artificial o simplemente
variables artificiales. Se trata de un artilugio matemtico por medio del cual, se
agregan al problema tantas variables artificiales como vectores unitarios nos falten en
la matriz A. De este modo, modificamos el problema original de manera tal que nos
permita identificar la solucin de partida.
Es importante destacar que estas variables no son variables del problema original.
Por ello decimos que, una solucin del mismo, se obtiene una vez que se hayan
eliminado de la base todas las variables artificiales. Para que el algoritmo Simplex las
elimine de la base rpidamente, se deben agregar en la funcin objetivo precedidas
de un coeficiente que deber ser:
En caso de maximizacin, muy grande en valor absoluto y negativo.
Si el problema es de mnimo, muy grande y positivo.
Si se verifica la condicin de optimidad y en la base an queda alguna variable
artificial, puede suceder alguna de las siguientes dos cosas:
s Si la variable artificial qued en la base con un valor positivo, entonces el problema
original es no factible. s Si la variable artificial qued en la base pero con un valor
nulo, entonces la solucin encontrada s es solucin del problema original y ser
degenerada ya que tendr menos de m valores positivos.
Respecto de la variable artificial hay tres posibilidades:
a) Que la variable artificial no aparezca en la ltima tabla del simplex, lo que
indica que el problema tiene solucin.
b) Que la variable artificial aparezca en la ltima tabla del simplex con un valor
igual a cero, esto significa que el problema tiene solucin y la solucin es
degenerada.
c) Y por ltimo que la variable artificial aparezca en la ltima tabla del simple,
lo que indica que el problema no tiene solucin.
- 21 -
Ejemplo de aplicacin
Mx. (Z) =
8 X1 + 5 X2
Sa
4 X1 + 2 X2
1 X1
-3 X1 + 1 X2
X1 ;
X2 >=
<= 1.000
>= 50
= 0
0
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:
Mx. (Z) =
Sa
5 X1 + 8 X2
+0S1 +0S2 - 100A2 - 100A3
4 X1 + 2 X2
+S1
= 1.000
1 X1
- S2
+ A2
= 50
-3X1 + 1 X2
+A3 = 0
X1 ;
X2 ; S1 ;
S2 ;
A2 ;
A3 >= 0
Al incorporar las variables artificiales a la funcin objetivo, como se mencionara
anteriormente, hay que darle un valor negativo muy grande en el caso de un problema
de maximizacin, mnimo 10 veces el valor del coeficiente ms alto de la funcin
objetivo. Ahora ya estamos en condiciones de armar la tabla de simplex:
- 22 -
Cj
-100
-100
Ck
Xk
Sol.
X1
X2
S1
S2
A2
A3
S1
1.000
1=1000/2
-100
A2
50
-1
2=50/0
-100
A3
-3
3=0/1
Zj
-5000
100
-100
100
-100
-100
Cj - Zj
--
-95
108
-100
Solucin inicial=
X1 = 0
X2 = 0
S1 = 1.000
A 2 = 15
A3= 0
Z inicial= -5000
- 23 -
Cj
-100
-100
Ck
Xk
Sol.
X1
X2
S1
S2
A2
A3
S1
1.000
1=1000/2
-100
A2
50
-1
2=50/0
-100
A3
-3
3=0/1
Zj
-5000
100
-100
100
-100
-100
Cj - Zj
--
-95
108
-100
-3
X2
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.
- 24 -
Cj
-100
-100
Ck
Xk
Sol.
X1
X2
S1
S2
A2
A3
S1
1.000
1=1000/2
-100
A2
50
-1
2=50/0
A3
-3
3=0/1
Zj
-5000
100
-100
100
-100
-100
Cj - Zj
--
-95
108
-100
S1
1.000
10
-2
1=1000/10
-100
A2
50
-1
2=50/1
X2
-3
3=0/-3
Zj
-5000
-124
100
-100
Cj - Zj
--
129
-100
-108
Nota: ij negativo
no se tiene en
cuenta para la
seleccin de
S1
500
10
-10
-2
1=500/10
X1
50
-1
2=50/-1
X2
150
-3
3=0/-3
Zj
1.450
-29
29
Cj - Zj
--
29
-129
-108
S2
50
0,1
-1
-0,2
X1
100
0,1
-0,2
X2
300
0,3
0,4
Zj
2.900
2,9
3/5
Cj - Zj
--
-2,9
-100
-100
- 25 -
Nueva solucin =
2.6
X1 = 100
X2 = 300
S1 = 50
S2 = 0
A2 = 0
A3 = 0
Problema de minimizacin
Forma estndar:
Min. (Z) =
Sa
30 X1 + 20 X2
1 X1 + 3 X2 <= 90
4 X1 + 2 X2 >= 120
X1 ;
X2 >= 0
30 X1 + 20 X2
1 X1 + 3 X2
4 X1 + 2 X2
X1 ;
X2 ;
= 90
= 120
>= 0
- 26 -
Tabla de simplex:
Cj
30
20
500
Ck
Xk
Sol.
X1
X2
S1
S2
A2
S1
90
1=90/1
500
A2
120
-1
2=120/4
Zj
60.000
2000
1000
-500
500
Cj - Zj
--
-1970
-980
500
S1
60
5/2
1/4
-1/4
30
X1
30
1/2
-1/4
1/4
Zj
900
30
15
-15/2
15/2
Cj - Zj
--
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.
Min. (Z) =
Sa
30 X1 + 20 X2
1 X1 + 3 X2 <= 90
4 X1 + 2 X2 >= 120
X1 ;
X2 >= 0
Max. (Z) =
Sa
- 30 X1 - 20 X2
1 X1 + 3 X2 <= 90
4 X1 + 2 X2 >= 120
X1 ;
X2 >= 0
- 27 -
2.7
El Win QSB es un software que est disponible en forma gratuita y puede ser
descargado desde distintas pginas de internet. Este software nos permite resolver
problemas con varias variables y varias restricciones, ms que suficiente para
resolver lo problemas desarrollados en la materia. Si el problema es de dos variables
tambin lo resuelve grficamente.
Ejemplo 1:
Mx. (Z) =
Sa
70 x1 + 40 x2
2 x1 + 5 x2 <= 2.000
2 x1 + 1 x2 <= 800
1 x1 + 1 x2 <= 500
x1 ;
x2 >=
0
- 28 -
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.
- 29 -
Tambin se puede obtener la ltima tabla del simplex (o sea la solucin ptima)
aunque con una disposicin un poco diferente de las columnas, siendo fcilmente
detectable si comparamos la tabla del simplex que con la que nos tira el sistema.
Entramos en results y hacemos clic en final simplex tableau nos tira el siguiente
resultado:
Ejemplo 2:
Mx. (Z) =
Sa
8 X1 + 5 X2
4 X1 + 2 X2
1 X1
-3 X1 + 1 X2
X1 ;
X2 >=
<= 1.000
>= 50
= 0
0
- 30 -
- 31 -
Ejemplo 3:
Mx. (Z) =
Sa
30 X1 + 20 X2
1 X1 +
3 X2
4 X1 +
2 X2
X1 ;
X2 >=
<= 1.000
>= 50
0
Ingreso al programa:
- 32 -
Carga de datos:
Solucin:
- 33 -
- 34 -
- 35 -
- 36 -
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.
- 37 -