Sunteți pe pagina 1din 33

Tema 3: El Metodo Simplex.

Algoritmo de las
Dos Fases.
3.1 Motivaci on Graca del metodo Simplex.
3.2 El metodo Simplex.
3.3 El metodo Simplex en Formato Tabla.
3.4 Casos especiales en la aplicacion del algoritmo.
3.4.1 Degeneracion.
3.4.2

Optimos alternativos.
3.4.3 Problema no acotado.
3.4.4 Problema Imposible.
3.5 El Algoritmo de las dos Fases.
3.5.1 Problema imposible.
3.5.2 Problema posible.
1
3.1 Motivacin Grfica del Mtodo Simplex
Regin de soluciones posibles acotada
Existe al menos una solucin ptima, que es un vrtice
Regin de soluciones posibles no acotada
Problema no acotado z = +
c, direccin de mejora
Problema Acotado
Existe una solucin ptima nica
Problema acotado Infinitas soluciones ptimas (Segmento)
c, direccin de mejora
Problema acotado Infinitas soluciones ptimas (Semirrecta)
c, direccin de mejora
3.1 Motivacion Graca del Metodo Simplex
1. Si el PPL tiene una unica solucion optima, sera necesariamente un verti-
ce de S.
2. Si el PPL tiene mas de una solucion optima y S es acotado, al menos dos
de ellas son vertices adyacentes de S. Si S es no acotada, solo podemos
garantizar que al menos una de las soluciones optimas es un vertice.
3. Existe un n umero nito de vertices en S.
4. Si un vertice proporciona un valor objetivo mejor o igual que el resto de
vertices adyacentes entonces proporciona un valor objetivo mejor o igual
que cualquier otra solucion posible del problema, luego es una solucion
optima para el problema.
2
E + D + H
1
= 10
E + D + H
2
= 1
D + H
3
= 4
Si hacemos H
1
= H
2
= 0, nos queda:
E + D = 10
E + D = 1
D + H
3
= 4
cuya solucion es:
E = 9/2, D = 11/2, H
3
= 3/2
No puede ser solucion del PPL incumple la restriccion de no negatividad.
3
( E, D, H
1
, H
2
, H
3
)
0 0 10 1 4 (0,0) Solucion posible
0 10 0 -9 -6 (0,10) no es solucion posible
0 1 9 0 3 (0,1) Solucion posible
0 4 6 -3 0 (0,4) no es solucion posible
10 0 0 11 4 (10,0) Solucion posible
? 0 ? ? 0 Sistema Incompatible
-1 0 11 0 4 (-1,0) no es solucion posible
9/2 11/2 0 0 -3/2 (9/2,11/2) no es solucion posible
6 4 0 3 0 (6,4) Solucion posible
3 4 3 0 0 (3,4) Solucion posible
4
C

omo obtener los v

ertices
del
conjunto de soluciones de un PPL
Para un problema cuya forma estandar incluya un sistema de m ecua-
ciones linealmente independientes y n incognitas, los vertices del po-
liedro se obtienen resolviendo los sistemas de m ecuaciones con m
incognitas que resultan al igualar a cero subconjuntos de n m varia-
bles.
Solo seran soluciones posibles (vertices) aquellos puntos cuyas varia-
bles, tanto de holgura como originales sean no negativas.
5
3.2 El Metodo Simplex
Desarrollado por George Dantzig en 1947.
Primera aplicacion importante: J. Laderman resolvio un problema de elabo-
racion de una dieta en la que haba 9 restricciones de igualdad y 27 variables.
Necesito el trabajo de 120 das-hombre.
Dado un PPL expresado en forma estandar con m ecuaciones y n
incognitas, m n, podemos dividir las variables en dos grupos:
1. nm variables a las cuales les damos el valor 0, y que denomi-
naremos variables no basicas.
2. m variables cuyo valor se determinara resolviendo el sistema de
m ecuaciones y m incognitas resultante de igualar a cero el resto
de variables. Si dicho sistema tiene una unica solucion, diremos
que las m variables son variables basicas.
Soluci on del sistema solucion basica
Si ademas las variables 0 solucion posible basica
6
Formalizaci

on algebr

aica
PPL Min z = c
t
x
s.a.: Ax = b
x 0
n
B := {columnas de A de coecientes de las variables basicas}
N := A\ B := { columnas de A coecientes de las variables no basicas}
A = (B, N), x =

x
B
x
N

, c =

c
B
c
N

Min z
s.a.: z c
t
B
x
B
c
t
N
x
N
= 0
Bx
B
+ Nx
N
= b
x
B
0, x
N
0
7
B
1
(Bx
B
+ Nx
N
) = B
1
b

(B
1
B)x
B
+ (B
1
N)x
N
= B
1
b

x
B
+ (B
1
N)x
N
= B
1
b

b := B
1
b =

b
1
.
.
.

b
i
.
.
.

b
m

, y
j
:= B
1
a
j

b
i
:= valor de la variable basica asociada a la ecuacion i-esima
y
ij
:= coeciente de la variable no basica j-esima en la ecuacion i-esima
8
z = c
t
B
x
B
+ c
t
N
x
N

x
B
= B
1
b (B
1
N)x
N

z = c
t
B
(B
1
b (B
1
N)x
N
) + c
t
N
x
N

z = c
t
B
(B
1
b)

valor objetivo
(c
t
B
B
1
N c
N
)

costes reducidos
x
N
9
En cualquier iteracion del Simplex el problema esta expresado como:
Min z = c
t
B
(B
1
b) (c
t
B
B
1
N c
N
)x
N
x
B
+ B
1
Nx
N
= B
1
b
x
B
0
x
N
0
Y tiene asociada la siguiente Solucion Posible Basica:
x =

x
B
x
N

B
1
b
0

Cuyo valor objetivo es:


z = c
t
B
(B
1
b)
10
Costes Reducidos: coecientes de las variables en la expresion de
la funcion objetivo dada en una iteracion del Simplex.
Variable Basica: 0
Variable No Basica: z
j
c
j
:= c
t
B
B
1
a
j
c
j
Importancia:
Criterio de Optimalidad: una solucion es optima sii z
j
c
j
0 j.
Criterio para Elegir la Nueva Variable B

asica: aquella que


tiene el mayor coste reducido.
z
nuevo
:= z
actual
(z
j
c
j
)x
j
Si x
j
> 0 y z
j
c
j
> 0 z
nuevo
< z
actual
Si x
j
> 0 y z
j
c
j
< 0 z
nuevo
> z
actual
11
Algoritmo del Simplex
Consideremos el Problema de Programacion Lineal:
PL Min z = c
t
x
s.a.: x S
en donde, S = .
Inicializacion
Escrbase el Problema de Programacion Lineal en forma estandar. Sea
PL Min z = c
t
x
s.a.: Ax = b
x 0
n
el problema resultante. En donde, A es una matriz mn, b IR
m
,
c IR
n
, rango(A, b) = rango(A) = m (es decir, sistema compatible, tiene
solucion).
12
Obtener una Solucion Posible Basica Inicial (SPB)
Si en S todas las restricciones eran del tipo y el rhs 0,
al a nadir las variables de holgura se obtiene automaticamente
una SPB tomando las variables originales como no basicas y las
variables de holgura como basicas.
en otro caso aplicaremos el algoritmo de las dos fases.
Sea B la submatriz de A formada por las columnas asociadas a las
variables basicas y N el conjunto de ndices de las variables no
basicas.
x
B
:= B
1
b 0
m
x
N
:= 0
nm
13
Iteracion
Paso 1: Sea, x
B
= B
1
b, y x
N
= 0
nm
, la SPB actual. Hacer,

b = B
1
b, y z = c
t
B
x
B
. Ir al Paso 2.
Paso 2: Calcular los costes reducidos de las variables no basicas.
z
j
c
j
= c
t
B
B
1
a
j
c
j
, j N
siendo a
j
la columna asociada a la variable x
j
en A.
a) Si z
j
c
j
0, j N, Stop.
x

B
:= B
1
b y x

N
:= 0
nm
z

= c
t
B
B
1
b.
b) En otro caso, elegir x
k
como nueva variable basica entrante,
siendo k el ndice para el que se alcanza el maximo de los
costes reducidos,
z
k
c
k
= max
jN
{z
j
c
j
}.
Ir al Paso 3.
14
Paso 3: Obtener la columna asociada a la variable que se hace
basica en el sistema actual. Sea y
k
:= B
1
a
k
a) Si y
k
0
m
, Stop.
Podemos incrementar el valor de x
k
tanto como queramos sin
que se haga cero ninguna variable basica i.e., sin alcanzar
ning un otro vertice del poliedro adyacente al actual. El
problema es No Acotado y el valor optimo es z

= .
b) En otro caso. Ir al Paso 4.
Paso 4: Elegir la variable que deja de ser basica (Criterio de la
razon mnima).

b
r
y
rk
= mn
1im
{

b
i
y
ik
: y
ik
> 0}
B := B \ {a
r
}

{a
k
}, N := N \ {k}

{r}. Ir al Paso 1.
15
3.3 El Metodo Simplex en Formato Tabla
Dado el PPL,
Min z = c
t
x Min z
s.a.: s.a.: z c
t
x = 0
Ax = b Ax = b
x 0
n
x 0
n
Si lo escribimos en terminos de una SPB asociada a una base B:
Min z
s.a.: z c
t
B
x
B
c
t
N
x
N
= 0
Bx
B
+ Nx
N
= b
x
B
0
m
, x
N
0
nm
16
x
B
= B
1
b B
1
Nx
N
,
z+ 0x
B
+ (c
t
B
B
1
N c
t
N
)x
N
= c
t
B
B
1
b
x
B
+ B
1
Nx
N
= B
1
b
x
B
x
N
RHS
z 1 0
c
t
B
B
1
N c
t
N
(z
j
c
j
= c
t
B
B
1
a
j
c
j
)
c
t
B
B
1
b
Fila 0
z = c
t
B
B
1
b
x
B
0 I
m
B
1
N, (y
k
= B
1
a
k
) B
1
b, (

b
i
)
Fila 1-m
x
B
= B
1
b
17
Tabla antes de pivotar
x
B
1
. . . x
B
r
. . . x
B
m
. . . x
j
. . . x
k
. . . RHS
z 0 . . . 0 . . . 0 . . . z
j
c
j
. . . z
k
c
k
. . . c
B

b
x
B
1
1 . . . 0 . . . 0 . . . y
1j
. . . y
1k
. . .

b
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
x
B
r
0 . . . 1 . . . 0 . . . y
rj
. . . y
rk
. . .

b
r
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
x
B
m
0 . . . 0 . . . 1 . . . y
mj
. . . y
mk
. . .

b
m
Variable de entrada, z
k
c
k
= max
jN
{z
j
c
j
} x
k
Variable de salida,

b
r
y
rk
= mn
1im
{

b
i
y
ik
: y
ik
> 0} x
B
r
18
Tabla despues de pivotar
x
B
1
. . . x
B
r
. . . x
B
m
. . . x
j
. . . x
k
. . . RHS
z 0 . . .
c
k
z
k
y
rk
. . . 0 . . . (z
j
c
j
) -
y
rj
y
rk
(z
k
c
k
) . . . 0 . . . c
B

b (z
k
c
k
)

b
r
y
rk
x
B
1
1 . . .
y
1k
y
rk
. . . 0 . . . y
1j

y
rj
y
rk
y
1k
. . . 0 . . .

b
1

y
1k
y
rk

b
r
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
x
k
0 . . .
1
y
rk
. . . 0 . . .
y
rj
y
rk
. . . 1 . . .

b
r
y
rk
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
x
B
m
0 . . .
y
mk
y
rk
. . . 1 . . . y
mj

y
rj
y
rk
y
mk
. . . 0 . . .

b
m

y
mk
y
rk

b
r
Nueva Base B = B \ {a
r
}

{a
k
}
19
3.4 Casos especiales en la aplicacion del algoritmo.
Ejemplo:

Optimo

Unico
Min 3x
1
+ x
2
sa: x
1
+ 2x
2
+ x
3
= 4
x
1
+ x
2
+ x
4
= 1
x
i
0, i = 1, 2, 3, 4
Dada,
B = {a
1
, a
4
} =
_
_
1 0
1 1
_
_
B
1
b =
_
_
4
5
_
_
x
t
= (4, 0, 0, 5)
c
t
B
= (3, 0) z
j
c
j
= c
t
B
B
1
a
j
c
j
=
_

_
z
2
c
2
= (3, 0)
_
_
1 0
1 1
_
_
_
_
2
1
_
_
1 = 7
z
3
c
3
= (3, 0)
_
_
1 0
1 1
_
_
_
_
1
0
_
_
0 = 3
20
Ejemplo:

Optimos Alternativos
Min 2x
1
4x
2
sa: x
1
+ 2x
2
+ x
3
= 4
x
1
+ x
2
+ x
4
= 1
x
i
0, i = 1, 2, 3, 4
Dada,
B = {a
1
, a
4
} =
_
_
1 0
1 1
_
_
B
1
b =
_
_
4
5
_
_
x
t
= (4, 0, 0, 5)
c
t
B
= (2, 0) z
j
c
j
= c
t
B
B
1
a
j
c
j
=
_

_
z
2
c
2
= (2, 0)
_
_
1 0
1 1
_
_
_
_
2
1
_
_
(4) = 0
z
3
c
3
= (2, 0)
_
_
1 0
1 1
_
_
_
_
1
0
_
_
0 = 2

Optimos:
_
(4, 0, 0, 5),
_
2
3
,
5
3
, 0, 0
_
, z

= 8
21
Ejemplo: No Acotaci

on
Min x
1
3x
2
sa: x
1
2x
2
4
x
1
+ x
2
3
x
1
0, x
2
0
Dada,
B = (a
2
, a
3
), B
1
=
_
_
0 1
1 2
_
_
B
1
b =
_
_
3
10
_
_
x
t
= (0, 3, 10, 0)
z
j
c
j
==
_

_
z
1
c
1
= (3, 0)
_
_
0 1
1 2
_
_
_
_
1
1
_
_
(1) = 4> 0
z
4
c
4
= (3, 0)
_
_
0 1
1 2
_
_
_
_
0
1
_
_
0 = 3
22
x
1
podra entrar en la base
Sin embargo, como
y
1
= B
1
a
1
=
_
_
1
1
_
_
0
2
Ninguna variable cumple el criterio de salida
c
t
_
_
y
1
e
1
_
_
= (1, 3, 0, 0)
_
_
_
_
_
_
_
1
1
1
0
_
_
_
_
_
_
_
< 0 Criterio de No Acotacion
El problema es No acotado a lo largo de la semirrecta:
_

_
_
_
_
_
_
_
_
0
3
10
0
_
_
_
_
_
_
_
+
_
_
_
_
_
_
_
1
1
1
0
_
_
_
_
_
_
_
x
1
, x
1
0
_

_
, lm
x
1

z = 9 4x
1
=
23
3.5 El Algoritmo de las Dos Fases
Escrbase el PPL en forma estandar:
Min z = c
t
x
s.a.: x S

Min z = c
t
x
s.a.: Ax = b
x 0
n
En donde A es una matriz mn de rango completo por las.
Si A contiene una submatriz identidad mm y b 0
m
B = I
m
y N = A\ B
permiten denir una SPB inicial para aplicar el algoritmo del Simplex:
x
B
= B
1
b y x
N
= 0
nm
En otro caso, A se completa con tantas columnas (variables articiales) como
sea necesario para conseguir dicha situacion, y se aplica el algoritmo de las
2 fases.
24
Fase 1: Construir el problema auxiliar resultante de a nadir las varia-
bles articiales:
Min z = c
t
x Min z = 1
t
x
a
s.a.: Ax = b s.a.: Ax + x
a
= b
x 0 x, x
a
0
Resolver el problema auxiliar con el algoritmo del Simplex. Sea
(x

, x

a
) la solucion optima.
Si x

a
= 0 Ir a la Fase 2.
Si x

a
= 0 Problema original Imposible
25
Fase 2: Utilizar la SPB obtenida al nal de la Fase 1 para resolver el
problema inicial. Sean x
B
las variables basicas en dicha solucion.
Consideremos la tabla optima al nal de la Fase 1.
Si en x
B
no hay variables articiales: eliminando las columnas
asociadas a las variables articiales y actualizando conveniente-
mente la la asociada a la funcion objetivo obtenemos la tabla
inicial para resolver el problema original con el algoritmo Sim-
plex.
Si en x
B
hay variables articiales: tratamos de obtener una
SPB sin variables articiales.
26
Como?
1. Eliminar de la tabla las columnas asociadas a las variables arti-
ciales no basicas.
2. Actualizar la la asociada a la funcion objetivo considerando que
los coecientes en la funcion objetivo de las variables articiales
en el problema original son 0.
3. Eliminar secuencialmente variables articiales basicas pivotando
sobre elementos de la tabla y
ij
= 0, en donde:
i := la asociada a la variable basica articial
j := columna asociada a la variable no articial
Si y
ij
= 0, j = i la ecuacion i-esima es redundante. Eliminar la
ecuacion y la variable articial.
27
3x
1
+ x
2
= 3
4x
1
+ 3x
2
6
x
1
+ 2x
2
4
Fase1
ptimo

S-ar putea să vă placă și