Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Metodo Simplex
Metodo Simplex
El metodo simplex
Los modelos lineales con dos o tres variables se pueden resolver graficamente. En
el Tema 1 hemos visto la solucion grafica de modelos lineales de dos variables.
Sin embargo, este metodo no puede ser utilizado en modelos que tengan mas de
tres variables. Para resolver modelos mas grandes se necesita un procedimiento
algebraico como el algoritmo simplex, publicado en 1949 por George B. Dantzig,
para dar soluciones numericas a problemas de programacion lineal.
El desarrollo de la teora de la programacion lineal se basa en la siguiente
forma de escribir el modelo.
Forma estandar. Un modelo lineal esta escrito en forma estandar si todas las
restricciones son del tipo = y todas las variables del modelo y las componentes
del vector b son no negativas. El modelo en forma matricial:
max(min) z = cT x
sujeto a
Ax = b
x0
Si el objetivo es maximizar, entonces se tiene la forma estandar de maximizacion y, si el objetivo es minimizar, la forma estandar de minimizacion.
20
n
X
cj xj
max (z) =
j=1
n
X
cj xj .
j=1
aij xj bi
n
X
aij xj bi .
j=1
j=1
aij xj bi
j=1
n
X
n
X
aij xj + y = bi ,
j=1
aij xj bi
j=1
n
X
aij xj y = bi .
j=1
OpenCourseWare, UPV/EHU
21
aij xj = bi
n
X
aij xj bi
j=1
n
X
aij xj bi .
j=1
2x1 + x2 2.
3. Variables.
Las variables deben satisfacer la restriccion de no negatividad. Para garantizar que se cumple dicha restriccion se tienen los siguientes cambios:
Si xj 0, entonces se puede hacer el siguiente cambio de variable
xj = xj , donde xj 0.
Si xj no tiene restriccion de signo, se puede escribir como diferencia
de 2 variables positivas de la siguiente forma:
xj = xj xj , donde xj , xj 0.
Si xj > xj , entonces xj > 0.
Si xj < xj , entonces xj < 0.
Si xj = xj , entonces xj = 0.
Ejemplo. Escribir el siguiente modelo lineal en forma estandar de maximizacion.
min z = x1 + 2x2 + x3
sujeto a
x1 + x2 x3 2
x1 2x2 + 5x3 1
x1 + x2 + x3 = 4
x1 0 , x2 0, x3 : no restringida
22
OpenCourseWare, UPV/EHU
23
24
2 8 3 11
6
, b = .
A=
1 1 2 10
4
OpenCourseWare, UPV/EHU
25
2 1
,
B=
1 1
se puede comprobar que es base.
xB =
x1
x4
N=
8 3 1
1 2 0
Entonces,
xB =
2 1
1 1
6
4
2 1
1 1
x2
y xN = x3 .
x5
x
2
x3
.
1 2 0
x5
8 3 1
(2.1)
Las infinitas soluciones del sistema se calculan dando todos los posibles
valores a las variables libres x2 , x3 y x5 .
Si damos valores x2 = 0, x3 = 0 y x5 = 0 en la ecuacion (2.1),
haciendo calculos se tiene la siguiente solucion basica:
1 1
6
2
= .
xB =
1
2
4
2
Esta solucion es factible porque no tiene componentes negativas.
1
2
7 1
1
x
1 = .
1 =
1
2
6 1 1
x4
0
26
B=
2 8
1 1
es base y, dando valor cero a todas las variables libres, se tiene la siguiente
solucion basica:
xB =
2 8
1 1
6
4
16
1
6
4
3
13
6
4
13
3
13
3 1
,
B=
2 0
xB =
3 1
2 0
6
4
1
2
32
6
4
2
0
Esta solucion es factible. Ademas, es degenerada porque una de las componentes basicas toma el valor 0.
2
OpenCourseWare, UPV/EHU
27
0 1.
q
X
i xi , 0 i 1,
q
X
i = 1.
i=1
i=1
28
Demostracion.
xB
.
x=
0
x1 =
y1
y 1
y x2 =
y2
y 2
xB
y2
y1
+ (1 )
=
0
y2
y1
se deduce
0 = y 1 + (1 )y 2 .
Por ser y 1 , y2 0, > 0 y 1 > 0, se tiene y 1 = y 2 = 0.
De lo anterior se deduce que las soluciones x, x1 y x2 son basicas y asociadas
a la misma base, por tanto, xB = x1 = x2 .
Concluimos que no existen 2 puntos distintos x1 y x2 del conjunto de soluciones que permitan escribir x como combinacion lineal convexa restringida y, en
consecuencia, x es un punto extremo.
OpenCourseWare, UPV/EHU
xi ai = b.
29
Para ver que x es solucion basica factible, es suficiente probar que los vectores
ai , i = 1, . . . , k, son linealmente independientes. En caso contrario, existiran
escalares 1 , . . . , k , no todos nulos, tales que
k
X
i ai = 0.
i=1
Sea
T = (1 , . . . , k , 0, . . . , 0),
si se definen
x1 = x +
y x2 = x ,
se puede elegir adecuadamente el valor de para que los puntos sean factibles.
Ademas, se verifica que x1 6= x2 y
1
1
x = x1 + x2 ,
2
2
de donde se deducira que x no es un punto extremo.
30
x =
k
X
i xi , i 0,
i=1
k
X
i = 1.
i=1
Entonces,
T
z =c x =c
k
X
i xi =
k
X
i cT xi .
i=1
i=1
z =
k
X
i=1
i c xi
k
X
i max(c xi ) = max (c xi )
i=1
k
X
i = max(cT xi ) z .
i=1
OpenCourseWare, UPV/EHU
31
x1 x2 = 3
x2
x1 + 4x2 = 4
B
A
O
x1
max
=4
+x4 = 3
x1 , x2 , x3 , x4 0
La matriz de coeficientes del sistema tiene cuatro columnas y, por tanto, el
maximo numero de bases que se pueden elegir es 6, eligiendo entre las 4 columnas
todos los posibles grupos de dos columnas linealmente independientes.
32
xB =
1 1
1
3
1
3
4
3
1
3
4
3
16
3
7
3
xB =
1 1
1 0
4
3
0 1
1 1
4
3
3
7
xB =
1 0
1 1
4
3
1 0
1 1
4
3
4
7
xB =
4 1
1 0
4
3
0 1
1
4
3
3
16
OpenCourseWare, UPV/EHU
33
xB =
4 0
1 1
1
4
1
4
0
1
4
3
1
4
xB =
1 0
0 1
4
3
1 0
0 1
4
3
4
3
34
forma estandar
max z = cT x
sujeto a
Ax = b
x0
Suponer que la matriz A tiene m filas linealmente independientes y n columnas, con n > m. Se elige una base B formada por m columnas de la matriz A
y el resto de columnas forman la matriz N. Para simplificar la notacion suponer
que las columnas elegidas para la base son las m primeras columnas de la matriz A. Denotamos por cB y xB las componentes basicas de los vectores c y x
respectivamente. Y denotamos por cN y xN las componentes no basicas de los
correspondientes vectores. Entonces el modelo lineal se puede escribir de la siguiente manera:
x
B
xN
sujeto a
x
B
(B | N) = b
xN
xB , xN 0
OpenCourseWare, UPV/EHU
35
donde
x
B1
xB2
xB =
..
.
xBm
xB1
m
xB2 X
T
=
cBi xBi .
z = cB xB = (cB1 , cB2 , . . . , cBm )
..
. i=1
xBm
El vector de coordenadas de aj es
y
1j
y2j
yj =
..
.
ymj
36
x
1
x2
max z = (3, 4 | 5, 6)
x3
x4
sujeto a
x1
x2
6
2 1 1 8
4
1 1 2 1
x3
x4
x1 , x2 , x3 , x4 0
Solucion basica.
xB = B1 b =
OpenCourseWare, UPV/EHU
2 1
1 1
6
4
2
2
37
z = cTB xB = (3, 4)
2
2
= 14.
8
1
= y14
2
1
+ y24
1
1
2 1
1 1
y4 =
y14
y24
2 1
1 1
8
1
7
6
y14
y24
z4 c4 = cTB y4 c4 = (3, 4)
7
6
= 3 6 = 9.
2
38
Teorema 2.4.1 (Mejora de una solucion factible basica) Sea el modelo lineal en
forma estandar
max z = cT x
sujeto a
Ax = b
x0
Sea B una base elegida en la matriz A y sean xB = B1 b la solucion factible
basica asociada y z = cTB xB el valor de la funcion objetivo. Si existe un vector aj
de la matriz A que no este en la base y tal que zj cj < 0 y, para ese vector aj ,
alguna de sus coordenadas yij , i = 1, . . . , m, es positiva, entonces existe otra
z = cB xB z = cTB xB .
Demostracion. Para facilitar la notacion podemos suponer que los vectores
de la base B son los m primeros vectores de la matriz A, es decir,
B = (a1 , . . . , ar , . . . , am ).
Si xB es una solucion factible basica, entonces verifica las restricciones del modelo.
xB1 a1 + xB2 a2 + + xBm am = b =
m
X
xBi ai .
(2.2)
i=1
Los sumandos del sistema que no aparecen en la ecuacion anterior son cero porque
las variables asociadas no son basicas.
Los vectores am+1 , . . . , aj , . . . , an no estan en la base y se pueden escribir en
combinacion lineal de los vectores de B,
aj =
m
X
yij ai , j = m + 1, . . . , n.
(2.3)
i=1
m
X
i=1
i6=r
OpenCourseWare, UPV/EHU
yij ai + yrj ar ,
(2.4)
39
X yij
1
ar =
aj
ai .
yrj
yrj
i=1
i6=r
Sustituyendo el vector ar ,
m
X
i=1
i6=r
X yij
1
xBi ai + xBr [ aj
ai ] = b.
yrj
yrj
i=1
i6=r
(xBi
xBr
yij
xBr )ai +
aj = b.
yrj
yrj
yij
xBi xBr
yrj
xB =
xBr
yrj
i 6= r
(2.5)
i=r
yij
0, i = 1, . . . , m, i 6= r,
yrj
40
2. xBr
xBr
0.
yrj
yij
0.
yrj
yij
= xBi 0.
yrj
xBi xBr
xBi
xBr
yij
0
.
yrj
yij
yrj
yij
yrj
i=1
OpenCourseWare, UPV/EHU
i=1
i6=r
41
z=
m
X
i=1
i6=r
xBr
yij
) + cj
= ().
yrj
yrj
Dado que si i = r
cBr (xBr xBr
yrj
) = 0,
yrj
m
X
i=1
yij
xBr
) + cj
.
yrj
yrj
Haciendo calculos
z=
m
X
i=1
m
xBr
xBr
xBr X
cBi yij + cj
=z
(zj cj ).
cBi xBi
yrj i=1
yrj
yrj
z= z
xBr
(zj cj ).
yrj
(2.7)
Por tanto,
z z
xBr
(zj cj ) 0
yrj
xBr
(zj cj ) 0.
yrj
(2.8)
2
42
de la base; as se obtiene una nueva base B que proporciona una solucion factible
y tal z es mayor o igual que z. Las reglas de seleccion de los vectores son las
siguientes:
1. Regla para elegir el vector que entra en la base. Entra el vector ak tal que
zk ck = min{zj cj /zj cj < 0}
j
Esta regla garantiza que cuando se calcula una nueva solucion el nuevo valor
xBi
/yik > 0
yik
yrk
xB =
xBr
i=r
yrk
OpenCourseWare, UPV/EHU
(2.9)
43
z= z
xBr
(zk ck )
yrk
(2.10)
=8
x5 = 2
x1 , x2 , x3 , x4 , x5 0
Comenzamos eligiendo una base, por ejemplo la formada por las columnas
primera y cuarta de la matriz de coeficientes. Calculamos la solucion basica
1
1 1
8
0
1
8
2
=
= .
xB = B1 b =
1 0
2
1 1
2
6
44
Calculo de z2 c2 .
1
0
1
1
2
=
,
a2 = , y2 = B1 a2 =
2
1 1
2
1
2
5 = 3 > 0.
z2 c2 = cTB y2 c2 = (4, 0)
1
Calculo de z3 c3 .
1
0
1
1
1
, y3 = B1 a3 =
=
,
a3 =
1
1 1
1
2
1
1 = 5 < 0 Puede mejorar.
z3 c3 = (4, 0)
2
Calculo de z5 c5 .
0
0
1
0
1
, y5 = B1 a5 =
=
,
a5 =
1
1 1
1
1
1
0 = 4 < 0 Puede mejorar.
z5 c5 = (4, 0)
1
= min{z3 c3 = 5 , z5 c5 = 4} = 5.
Entra en la base el vector a3 .
Seleccion del vector de salida. Para determinar el vector que debe salir de la
base, tenemos en cuenta el vector de coordenadas y3 y el vector solucion xB :
y13
1
xB1
2
=
,
= .
y3 =
xB =
y23
2
xB2
6
OpenCourseWare, UPV/EHU
45
xBi
/ yi3 > 0
yi3
= min
xB2
6
=
y23
2
= 3.
xB2 =
6
xB2
= = 3.
y23
2
z= z
6
xB2
(z3 c3 ) = 8 (5) = 23.
y23
2
46
(2.11)
xBi ai ak + ak = b.
(2.12)
i=1
OpenCourseWare, UPV/EHU
47
xBi ai
i=1
Haciendo calculos
m
X
m
X
yik ai + ak = b.
i=1
i=1
x y1k
B1
xB2 y2k
..
xBm ymk
x=
(2.13)
.
0
..
..
0
Teniendo en cuenta que xBi 0, yik 0 para i = 1, . . . , m y que > 0
xBi yik 0 , i = 1, . . . , m.
y, por tanto, la solucion es factible. El valor de la funcion objetivo en esa solucion
z=
m
X
i=1
m
X
i=1
cBi xBi
m
X
cBi yik + ck =
i=1
= z zk + ck = z (zk ck ).
48
x2 +x3
2x1 3x2
=5
+x4 = 10
x1 , x2 , x3 , x4 0
Elegimos la base B = (a3 a4 ) y calculamos la solucion basica
5
.
xB = B1 b =
10
Esta solucion es factible y el valor de la funcion objetivo es
5
= 0.
z = cTB xB = (0, 0)
10
Aplicamos el teorema de mejora.
Calculo de z1 c1 .
1
1 0
1
1
= ,
a1 = , y1 = B1 a1 =
2
0 1
2
2
1
z1 c1 = cTB y1 c1 = (0, 0) (3) = 3.
2
OpenCourseWare, UPV/EHU
49
Calculo de z2 c2 .
1
1
0
1
1
, y2 = B1 a2 =
=
,
a2 =
3
0 1
3
3
1
2 = 2.
z2 c2 = cTB y2 c2 = (0, 0)
3
Aplicando la regla de seleccion,
x2
max
x1
2x1 3x2 = 10
x1 x2 = 5
50
z= z
xBr
(zk ck ) = z 0 = z.
yrk
OpenCourseWare, UPV/EHU
51
i=1
1. x es solucion.
Dado que xi , i = 1, . . . , p, es solucion, se verifica Axi = b. Entonces,
p
X
Ax = A
i=1
i xi
p
X
i Axi = b
p
X
i = b.
i=1
i=1
p
X
i xi 0.
i=1
c x=c
p
X
i=1
i xi =
p
X
i=1
i c xi = z
p
X
i = z .
i=1
52
En las condiciones del Teorema 2.4.4 y del Teorema 2.4.5, se obtienen soluciones o ptimas multiples con variables acotadas pero, pueden existir soluciones
o ptimas multiples para valores no acotados de las variables y que den a la funcion
objetivo un valor acotado. El siguiente teorema da las condiciones en las que se
obtienen ese tipo de soluciones al aplicar el teorema de mejora.
Teorema 2.4.6 Sea el problema lineal en forma estandar
max z = cT x
sujeto a
Ax = b
x0
Sea B una base elegida en la matriz A y sean xB = B1 b la solucion factible
basica asociada y z = cTB xB el valor de la funcion objetivo. Si para todo vector
aj de la matriz A se verifica que zj cj 0, entonces la solucion xB es o ptima.
Si existe un vector ak que no este en la base tal que zk ck = 0 y todas sus
coordenadas yik , i = 1, . . . , m, son menores o iguales que cero, entonces existen
soluciones o ptimas multiples con valores no acotados para las variables.
Demostracion. Las soluciones se calculan como en el Teorema 2.4.3 y son
del tipo (2.13).
De la misma forma que en el mencionado teorema el valor de la funcion objetivo es
z= z (zk ck ).
OpenCourseWare, UPV/EHU
53
54
La ventaja de elegir como primera base la canonica es que los calculos asociados a esta primera base coinciden con los parametros del problema.
Ejemplo. Sea el modelo lineal
=2
+x4 = 3
x1 , x2 , x3 , x4 0
Elegimos B = (a3 a4 ) = I.
Calculo de la solucion.
xB = B1 b = I
2
3
2
3
La solucion es factible.
Calculo del valor de la funcion objetivo.
z = cTB xB = (0, 0)
OpenCourseWare, UPV/EHU
2
3
= 0.
55
3
1 0
3
3
= ,
a1 = y1 = B1 a1 =
1
0 1
1
1
z1 c1 = cTB y1 c1 = (0, 0)
a2 =
1
1
y2 = B1 a2 =
0 1
z2 c2 = cTB y2 c2 = (0, 0)
a3 =
y3 = B1 a3 =
2 = 2.
1 0
1
1
1 0
1
1
3 = 3.
,
0 1
0
0
1
z3 c3 = cTB y3 c3 = (0, 0) 0 = 0.
0
0
1 0
0
0
= ,
a4 = y4 = B1 a4 =
1
0 1
1
1
0
z4 c4 = cTB y4 c4 = (0, 0) 0 = 0.
1
0
56
como primera base la canonica formada por vectores de holgura. Para resolver este inconveniente y poder elegir como primera base la canonica utilizaremos variables auxiliares, a las que se les da el nombre de variables
artificiales. Lo vemos en el siguiente ejemplo.
Ejemplo. Sea el modelo lineal
max z = 3x1 + x2
sujeto a
x1 + x2 3
x1 + 2x2 2
x1 , x2 0
Para obtener la forma estandar sumamos y restamos a la primera y segunda
restricciones, respectivamente, las variables de holgura x3 y x4 .
max z = 3x1 + x2 + 0x3 + 0x4
sujeto a
x1 + x2
+x3
x1 + 2x2
=3
x4 = 2
x1 , x2 , x3 , x4 0
No podemos elegir en la matriz de coeficientes del sistema la identidad. Para
poder hacerlo sumaremos tantas variables artificiales como sean necesarias.
En este caso si sumamos a la segunda restriccion la variable artificial w1
0, las restricciones son
x1 + x2
x1 + 2x2
+x3
=3
x4 + w1 = 2
1
0
3
3
= .
xB = B1 b =
0 1
2
2
OpenCourseWare, UPV/EHU
57
Variables auxiliares
x1
...
xn
xn+1
...
xj
...
z1 c1
...
zn cn
zn+1 cn+1
...
zj cj
...
cB1
..
.
aB1
..
.
y11
...
..
.
y1n
y1,n+1
...
..
.
y1,j
...
xB1
..
.
cBi
..
.
aBi
..
.
yi1
...
..
.
yin
yi,n+1
...
..
.
yi,j
...
xBi
..
.
cBm
aBm
ym1
...
ymn
ym,n+1
...
ym,j
. . . xBm
58
x1
x2
x3
x4
0 a3
0 a4
2
Si, como en el ejemplo, solo se utilizan variables de holgura para obtener la
primera base, la tabla del metodo simplex se puede escribir en funcion de B de la
siguiente manera:
cB
x1 x2 . . . xn
cTB B1 A cT
cTB B1
cTB xB
B1 A
B1
xB
En la primera tabla B1 = I. Pero, sea cual sea la base para la que se esten
haciendo los calculos, en esas mismas columnas (las correspondientes a la matriz identidad de la primera tabla) siempre se encuentra la matriz B1 de la base
correspondiente a la tabla. Si, como en el ejemplo anterior, la primera base esta
formada por variables de holgura, B1 se encuentra donde se expresa en la tabla
anterior. En el caso de utilizar variables artificiales, hay que identificar las columnas que proporcionan B1 .
OpenCourseWare, UPV/EHU
59
3x2 + 5x3
+w1
= 30
+x5
= 10
+w2 = 5
x1 , x2 , x3 , x4 , x5 , w1 , w2 0
x2
x3
4M + 5 12M 6 4M 7
M aw1
x4
x5 w1 w2
0 35M
30
10
a5
5
2
10
M aw2
60
unica.
Parar.
* Si existe un vector ak de la matriz A que no esta en la base tal
que zk ck = 0 y, para ese vector, alguna coordenada yik , i =
1, . . . , m, es mayor que cero, entonces se puede calcular una nueva
solucion factible basica o ptima. Ir al Paso 5.
* Si existe un vector ak en la matriz A que no esta en la base tal
que zk ck = 0 y, para ese vector, yik 0, i = 1, . . . , m,
OpenCourseWare, UPV/EHU
61
Paso 4.
Si existe un vector aj tal que zj cj < 0 y su vector de coordenadas yj
no tiene componentes positivas, entonces la solucion es no acotada.
Parar.
Si existe un vector aj tal que zj cj < 0 y para ese vector alguna
coordenada yij es mayor que cero, ir al paso 5.
Paso 5. Seleccion de la nueva base.
Entra en la base el vector ak que cumple
zk ck = min{zj cj /zj cj 0}.
j
xBi
/yik > 0 .
yik
62
sujeto a
x1 + x2 + x3 + x4 +x5
2x1 + x2 + 4x3 + x4
x1 + 2x2 2x3 + 3x4
=3
+x6
=4
+x7 = 10
x1 , x2 , x3 , x4 , x5 , x6 , x7 0
OpenCourseWare, UPV/EHU
63
x1
x2
x3
x4
x5
x6
x7
m0 = 3
m1 =
1
2
1
2
a5
a6
a7
2 2
1 10
m3 =
0 12
m0 = 4
1
2
12
0 1
a5
1
2
a1
1
2
1
2
1
2
m2 = 1
a7
3
2
5
2
12
m3 = 5
0 16
a4
1 2
a1
a7
0 1
Observamos que zj cj 0 para todos los vectores aj de la matriz A. Han terminado las iteraciones del algoritmo simplex. El problema tiene solucion o ptima
unica.
x1 = 1, x2 = 0, x3 = 0, x4 = 2, x5 = 0, x6 = 0, x7 = 3 y z = 16.
A continuacion se detallan los calculos de cada iteracion.
Primera iteracion.
En la primera tabla existen valores indicadores negativos y, por tanto, la solucion
puede mejorar.
Vector ak que entra en la base. zk ck = min{zj cj /zj cj 0},
j
min{6, 4, 5, 5} = 6 = z1 c1 a1 entra.
64
xBr
xBi
Vector ar que sale.
= min
/yik > 0 ,
i
yr1
yi1
xB1
3 4 10
= min{3, 2, 10} = 2 =
, ,
a6 sale.
min
1 2 1
y21
El pivote es y21 = 2.
Los calculos necesarios para obtener la segunda tabla, es decir, la asociada
a la nueva base B = (a5 a1 a7 ) son los siguientes:
Nueva fila 2: fila 2 dividida por el pivote.
1
1
1
1
(2, 1, 4, 1, 0, 1, 0, 4) = (1, , 2, , 0, , 0, 2).
2
2
2
2
Nueva fila 1: fila 1 fila pivote m1 . En este caso es m1 =
1
y11
= .
y21
2
1
(1 , 1 , 1 , 1 , 1 , 0 , 0 , 3) (2 , 1 , 4 , 1 , 0 , 1 , 0 , 4) =
2
= (0 ,
1
1
1
, 1 , , 1 , , 0 , 1).
2
2
2
y31
1
= .
y21
2
1
(1 , 2 , 2 , 3 , 0 , 0 , 1 , 10) (2 , 1 , 4 , 1 , 0 , 1 , 0 , 4) =
2
= (0 ,
5
1
3
, 4 , , 0 , , 1 , 8).
2
2
2
OpenCourseWare, UPV/EHU
65
Segunda iteracion.
En la segunda tabla existen valores indicadores negativos y, por tanto, la solucion
puede mejorar. Los calculos se hacen como en la iteracion anterior.
Vector que entra:
min{1, 2} = 2 = z4 c4 entra a4 .
Vector que sale:
1
1
5
16
xB1
min{1 : , 2 : , 8 : } = min{2, 4, } = 2 =
sale a5 .
2
2
2
5
y14
1
El pivote es y14 = .
2
Nueva fila 1:
1
1
1
2(0 , , 1 , , 1 , , 0 , 1) = (0 , 1 , 2 , 1 , 2 , 1 , 0 , 2).
2
2
2
Nueva fila 2. Multiplicador: m2 =
(1 ,
1
1
1
1
1
1
, 2 , , 0 , , 0 , 2) 1(0 , , 1 , , 1 , , 0 , 1) =
2
2
2
2
2
2
= (1 , 0 , 3 , 0 , 1 , 1 , 0 , 1).
y24
= 1,
y14
y34
= 5,
y14
5
1
1
1
1
3
, 4 , , 0 , , 1 , 8) 5(0 , , 1 , , 1 , , 0 , 1) =
2
2
2
2
2
2
= (0 , 1 , 1 , 0 , 5 , 2 , 1 , 3).
z4 c4
= 4,
y14
1
1
1
, 1 , , 1 , , 0 , 1) =
2
2
2
= (0 , 1 , 3 , 0 , 4 , 1 , 0 , 16).
(0 , 1 , 7 , 2 , 0 , 3 , 0 , 12) + 4(0 ,
66
3x2 + 5x3
+w1
= 30
+x5
= 10
+w2 = 5
x1 , x2 , x3 , x4 , x5 , w1 , w2 0
x1
x2
x3
4M + 5 12M 6 4M 7
x4
x5
w1
w2
35M m0 =
6 1
30 m1 = 5
10 m2 = 32
M aw1
10
0 a5
5
2
M aw2
0 16M 1
0 6M + 3 5M + 15
16 1
8M + 11
12M6
2
M aw1
0 a5
11
2
3
2
35
2
6 a2
1
2
5
2
OpenCourseWare, UPV/EHU
67
+w1
+x2
=4
+x4
3x1 +4x2
=5
x5
+w2 = 10
x1 , x2 , x3 , x4 , x5 , w1 , w2 0
En la solucion grafica podemos ver que el problema tiene soluciones o ptimas
multiples.
x2
x1 + x2 = 5
min
x1 + 2x2 = 4
111
000
000 000
111
111
A
000
111
B
x1
3x1 + 4x2 = 10
68
M
0
M
x1
x2
x3
x4
x5
w1
w2
4M + 3
6M + 6
14M
aw1
a4
aw2
0 2M + 3
3M 3
m0 =
m2 =
6M+6
2
1
2
10 m3 = 2
0 2M 12 m0 =
2M+3
2
a2
1
2
21
1
2
m1 = 41
a4
1
2
1
2
12
m2 =
aw2
32
3
2
3
2
15
1
4
m0 = 15
a2
3
4
0 14
1
4
5
2
m1 =
3
2
a4
1
4
1
4
41
5
2
m2 =
1
2
a3
0 12
1
2
M 3
12
3
2
21
1
2
0
1
2
m0 = 0
a2
23
a4
21
1
2
1
2
21
m2 = 1
a1
m3 = 2
OpenCourseWare, UPV/EHU
69
x1
x2
x3
x4
0 a5
2 3
0 a4
0 1
3 a1
x5
w1
w2
0 M 3
12
3 1
2 1
+w1
x4
=4
+w2 = 6
x1 , x2 , x3 , x4 , w1 , w2 0
Las tres iteraciones del metodo simplex necesarias para obtener la solucion
son las siguientes
70
x1
x2
x3
x4
w1
w2
6M 1
4M + 3
10M
aw1
aw2
7
2
M +
21 M
1
4
3
2M
1
4
M +
3
2
aw1
1
2
12
a1
1
2
14
1
4
3
2
7
2
7
2
M +2
12
12
1
2
1
2
a2
a1
1
2
4 12
0 M + 21
12
1
2
a4
a1
1 12
1
2
1
2
2x1 + 2x2 = 4
x1
OpenCourseWare, UPV/EHU
71
Ejemplo 1.
max z = 2x1 + 3x2 5x3
sujeto a
2x1 + 2x2 + 2x3 = 14
2x1 + 5x2 x3 10
x1 , x2 , x3 0
72
+w1
2x1 5x2 + x3 x4
= 14
+w2 = 10
x1 , x2 , x3 , x4 , w1 , w2 0
x1
x2
x3
x4
w1
0 24
1 aw1
14
1 aw2
10
1 52
1
2
21
1
2
1 aw1
0
a1
w2
a2
1
7
1
7
1
7
71
4
7
a1
6
7
71
5
14
1
7
45
7
5
14
Se ha obtenido el o ptimo para la primera fase, dado que para todos los
vectores de la matriz A se tiene zj cj 0. El valor de la funcion objetivo
es cero y, por tanto, el problema inicial tiene solucion.
OpenCourseWare, UPV/EHU
73
z3 c3 = (3 , 2)
+5= ,
6
7
7
1
1
z4 c4 = (3 , 2) 7 0 = ,
7
17
4
102
z = (3 , 2) 7 0 =
.
45
7
7
x2
x3
x4
50
7
1
7
102
7
a2
1
7
1
7
4
7
a1
6
7
71
45
7
45 4
102
, x2 =
y z =
.
7
7
7
74
Puede ocurrir que sean necesarias algunas iteraciones del algoritmo simplex
en la segunda fase hasta conseguir las condiciones de optimalidad.
Ejemplo 2. Resolver el ejemplo de la pagina 69.
Primera fase. Para aplicar el algoritmo escribimos las restricciones en forma
estandar utilizando las variables artificiales necesarias para elegir como primera
base la canonica. La funcion objetivo de la primera fase es
min z = w1 + w2 .
El modelo en forma estandar
max z = 0x1 + 0x2 + 0x3 + 0x4 w1 w2
sujeto a
2x1 + 2x2 x3
4x1 + 2x2
+w1
=4
x4
+w2 = 6
x1 , x2 , x3 , x4 , w1 , w2 0
x1
x2
x3
x4
w1
0 10
1 12
3
2
1
2
12
aw1
2 1
aw2
0 1
w2
aw1
a1
1
2
0 14
1
4
3
2
a2
1 1
1
2
12
a1
1
2
12
21
1
2
1
2
1
2
OpenCourseWare, UPV/EHU
75
x1
x2
x3
7
2
a2
1 a1
1
2
12
12
0 a4
1 a1
12
x4
2
1
2
2
1
1 1
En la u ltima tabla se tiene z3 c3 < 0 con todas las componentes del vector
y3 negativas y, por tanto, el problema es no acotado.
2
76
cB
cTB B1
cTB xB
B1
xB
=3
+x6
=4
+x7 = 10
x1 , x2 , x3 , x4 , x5 , x6 , x7 0
1 0 0
B = 0 1 0 ,
0 0 1
1 1 1 1
N = 2 1 4 1 ,
1 2 2 3
cTB = (0 , 0 , 0),
1 0 0
xB = B1 b = 0 1 0
0 0 1
OpenCourseWare, UPV/EHU
=
4 4 .
10
10
77
La tabla inicial es
x5
x6
x7
0 a5
0 a6
0 a7
1 10
1 1
1 1
1 2 2 3
z1 c1 = min{6, 4, 5, 5} = 6 entra a1 .
1 0 0
y1 = B1 a1 = 0 1 0
0 0 1
2 = 2 .
1
1
78
La nueva tabla es
x5
x6
x7
0 12
0 a5
1 12
6 a1
1
2
0 12
1
1
2 2
0 a7
1 0
1 1 (4, 5, 5, 0) =
3 0
= (1, 7, 2, 3).
z4 c4 = min{1, 2} = 2 entra a4 .
La columna pivote es
1 21 0
1
y4 = B1 a4 = 0
0 1 =
2
3
0 12 1
Pivote: 21 .
OpenCourseWare, UPV/EHU
x5
x6
x7
5 a4
-1
6 a1
-1
0 a7
-5
0 16
1
2
1
2
5
2
2.10. Observaciones
79
1
1 1 0
2 2 0 0
= (1, 3, 4, 1).
2.10 Observaciones
1. Errores de redondeo: Si en las iteraciones del algoritmo simplex los calculos se hacen a mano, no es necesario utilizar aproximaciones. Pero, dado
que los ordenadores utilizan aproximaciones para representar las fracciones,
puede suceder que la solucion factible basica o ptima obtenida no satisfaga
las restricciones del modelo o, siendo de la region de factibilidad, no sea
o ptima. El error se puede evaluar de la siguiente manera. Si BxB 6= b, se
puede concluir que hay errores de redondeo. Si el error es significativo, se
puede corregir calculando directamente B1 para corregir los errores acumulados y seguir con las iteraciones.
2. Variables artificiales en la solucion o ptima. La existencia de variables
artificiales con valor cero en la base o ptima indica la existencia de ecuaciones redundantes o bien que la solucion es degenerada, tal como se puede
observar en los dos siguientes ejemplos.
Ejemplo 1. Ecuaciones redundantes.
max z = x1 + 2x2 x3
sujeto a
2x1 x2 + x3 = 12
x1 + 2x2 + x3 = 10
x1 + x2 + 2x3 = 22
x1 , x2 , x3 0
80
Se anaden las variables artificiales w1 , w2 y w3 , se penaliza la funcion objetivo y se hacen tres iteraciones del algoritmo simplex necesarias hasta lograr
las condiciones de optimalidad.
x1
x2
x3
w1
w2
w3
2M 1
2M 2
4M + 1
44M
aw1
12
aw2
10
aw3
22
6M
6M 4
4M 1
0 4M 10
aw1
a3
aw3
2M
2M 1
10
2
10 13
a1
1
3
13
2
3
a3
1
3
2
3
32
3
aw3
4 2M + 43
5
3
98
3
2M +
a1
2
3
1
3
34
3
a2
1
3
2
3
32
3
aw3
OpenCourseWare, UPV/EHU
2.10. Observaciones
81
max z = x1 + x2 + 3x3
sujeto a
x1 + 5x2 + x3 7
x1 x2 + x3 = 5
1
x1 2x2 + x3 = 5
2
x1 , x2 , x3 0
Se anade la variable de holgura x4 y las variables artificiales w1 y w2 , se
penaliza la funcion objetivo y se hace una iteracion.
x1
x2
x3
x4
32 M 1 3M 1 2M 3
w1
w2
10M
a4
aw1
aw2
1
2
+2
M 4
2M + 3
15
1
M
2
a4
a3
aw2
12
82
x2 x3 x4
w1
w2
0 7 + M 4 + M 15
0 a4 3
3 a3
3
2
1 a2
1
2
0
2
Se puede ver un ejemplo en Linear programming and network flows. M. S. Bazaraa et al.
OpenCourseWare, UPV/EHU