Sei sulla pagina 1di 56

Mtodo SIMPLEX

Marcone Jamilson Freitas Souza


Departamento de Computao
Programa de Ps-Graduao em Cincia da Computao

Universidade Federal de Ouro Preto http://www.decom.ufop.br/prof/marcone E-mail: marcone@iceb.ufop.br

Resoluo grfica de PPLs


Passos para resolver graficamente um PPL:
a)

b)

c)

Determinar o gradiente da funo objetivo (Gradiente perpendicular reta definida pela funo objetivo) Caminhar no sentido e direo do gradiente da funo objetivo at tangenciar a regio vivel O ponto de tangncia representa a soluo tima x*

Fundamentao do Mtodo SIMPLEX


Seja resolver o seguinte PPL:

max

x1 x1 x1 x1

+ 2 x2 x2 x2 x2 2 2 3 0

+ ,

Fundamentao do Mtodo SIMPLEX


x2 x1 2 A = (0,0) B = (2,0) C = (2,1) D = (1,2) E = (0,2) F = (0,3) G = (2,2) H = (3,0)

max

x1 x1 x1 x1

+ 2 x2 2 x2 + , x2 x2 2 3 0

F x* = (1,2), z* = 5 E D
z= ma xz =x

x2 2

C
x1 + x2
+2

x2

x1

Teorema Fundamental da Programao Linear


O timo de um PPL, se existir, ocorre em pelo menos um vrtice do conjunto de solues viveis. Situaes que podem ocorrer com relao ao conjunto M de solues viveis:
1)

M = {} Neste caso no h soluo vivel => No h soluo tima

Teorema Fundamental da Programao Linear


2)

M no vazio
a)

M limitado

x*

x*

y*

nica soluo tima, a qual vrtice

Infinidade de solues timas, e pelo menos uma vrtice (no caso, duas so vrtices)

Teorema Fundamental da Programao Linear


2)

M no vazio
b)

M ilimitado

x*

x*

nica soluo tima, a qual vrtice

Infinidade de solues timas, sendo uma vrtice

Teorema Fundamental da Programao Linear


2)

M no vazio
b)

M ilimitado

x*

y*

Infinidade de solues timas, e pelo menos uma vrtice (no caso, duas so vrtices)

No h solues timas

Forma-padro de um PPL
PPL est na forma-padro quando posto na forma:

(min) ou (max) z = c j x j
j =1

a x
j =1 ij

= bi i = 1,..., m

x j 0 j = 1,..., n
sendo

bi 0 i = 1,..., m

Reduo de um PPL qualquer forma-padro


Restries do tipo

2 x1 + 3 x2 5
Restries do tipo

2 x1 + 3 x2 + x3 = 5
x3 0

x1 + 6 x2 7

x1 + 6 x2 x4 = 7
x4 0

Reduo de um PPL qualquer forma-padro


Existe bi < 0
Soluo: Basta multiplicar restrio i por -1

Existem variveis no-positivas:


Seja xk 0: Soluo: Criar varivel xk tal que xk = - xk Assim, modelo ter varivel xk 0

Reduo de um PPL qualquer forma-padro


Existem variveis livres, isto , variveis xk que podem assumir qualquer valor real (negativo, nulo ou positivo):

Soluo: Substituir xk por xk xk , com xk 0 e xk 0 xk > xk xk > 0 xk = xk xk = 0 xk < xk xk < 0

PPL de maximizao:
max f(x) = - min {-f(x)}

Caracterizao de vrtice
max x1 x1 x1 x1 + , x2 x2 x2 + 2 x2 2 2 3 0

max

x1 x1 x1 x1

+ 2 x2 x2 x2 x2

+ 0 x3 + x3

+ 0 x4 + x4 x4

+ 0 x5 = = = 2 2 3 0

+ ,

x3

+ ,

x5 x5

x1 1 0 1 0 0 x2 2 0 1 0 1 0 x = 2 3 3 1 1 0 0 1 x4 x5 A b x

Caracterizao de vrtice
x2 x1 2 A = (0,0) B = (2,0) C = (2,1) D = (1,2) E = (0,2) F = (0,3) G = (2,2) H = (3,0)

max
C

x1 x1 x1 x1

+ 2 x2 x2 x2 x2

+ 0 x3 + x3

+ 0 x4 + x4 x4

x2 2

+ 0 x5 = = = 2 2 3 0

+ ,

x3

+ ,

x1 + x2 3

x5 x5
x1

Caracterizao de vrtice
Em um ponto no interior do conjunto (no pertencente a nenhuma aresta) no h variveis nulas Em uma aresta h, pelo menos, uma varivel nula Em um vrtice h, pelo menos, n-m variveis nulas n-m m
R B m

Caracterizao de vrtice
Para gerar um vrtice:
Escolher uma matriz no-singular B tal que: BxB + RxR = b Fazer xR = 0 Se ao resolver o sistema BxB = b, for obtido xB 0, ento x = (xB xR)t = (xB 0)t vrtice

Deste procedimento resulta uma Soluo Bsica Vivel (SBV), com o significado geomtrico de vrtice.

Definies
B = base x = (xB xR)t
xB = vetor das variveis bsicas xR = vetor das variveis no-bsicas

Soluo Bsica (SB): vetor x tal que BxB=b e xR = 0 Soluo Bsica Vivel (SBV): vetor x tal que BxB=b; xB 0 e xR = 0 Soluo Bsica Vivel Degenerada (SBVD): uma SBV em que existe varivel bsica nula

Princpio de funcionamento do Algoritmo SIMPLEX


SBV inicial Esta SBV pode ser melhorada?
Sim No

Pare: Esta SBV tima

Determine VNB que deve entrar na base

Determine VB que deve deixar a base

Encontre nova SBV

Princpio de funcionamento do Algoritmo SIMPLEX


max x1 x1 x1 x1 + , x2 x2 x2 + 2 x2 = z

max

x1 x1 x1 x1

+ 2 x2 x2 x2 x2

+ 0 x3 + x3

+ 0 x4 + x4 x4

+ 0 x5

= = = =

z 2 2 3 0

2 2 3 0

+ ,

x3

+ ,

x5 x5

x1 1 0 1 0 0 x2 2 0 1 0 1 0 x = 2 3 1 1 0 0 1 x4 3 x5

Princpio de funcionamento do Algoritmo SIMPLEX


VB x3 x4 x5 x1 1 0 1 1 x2 0 1 1 2 x3 1 0 0 0 x4 0 1 0 0 x5 0 0 1 0 2 2 3 z

PPL na forma cannica: Base a identidade e coeficientes das VBs na funo objetivo so todos nulos.

Princpio de funcionamento do Algoritmo SIMPLEX


VB x3 x4 x5 x1 1 0 1 1 x2 0 1 1 2 x3 1 0 0 0 x4 0 1 0 0 x5 0 0 1 0 2 2 3 z

VB = {x3 = 2, x4 = 2, x5 = 3} VNB = {x1 = 0, x2 = 0}

Soluo inicial: x(0) = (0 0 2 2 3)t ; z = 0

Princpio de funcionamento do Algoritmo SIMPLEX


VB (L1) (L2) (L3) (L4) x3 x4 x5 x1 1 0 1 1 x2 0 1 1 2 x3 1 0 0 0 x4 0 1 0 0 x5 0 0 1 0 2 2 3 z

Transformaes L3 -L2 + L3 elementares:

L4 -2L2 + L4

Princpio de funcionamento do Algoritmo SIMPLEX


VB (L1) (L2) (L3) (L4) x3 x2 x5 x1 1 0 1 1 x2 0 1 0 0 x3 1 0 0 0 x4 0 1 -1 -2 x5 0 0 1 0 2 2 1 z-4

VB = {x3 = 2, x2 = 2, x5 = 1} VNB = {x1 = 0, x4 = 0}

Final da Iterao 1: x(1) = (0 2 2 0 1)t ; z = 4

Princpio de funcionamento do Algoritmo SIMPLEX


VB (L1) (L2) (L3) (L4) x3 x2 x5 x1 1 0 1 1 x2 0 1 0 0 x3 1 0 0 0 x4 0 1 -1 -2 x5 0 0 1 0 2 2 1 z-4

L1 -L3 + L1

L4 -L3 + L4

Princpio de funcionamento do Algoritmo SIMPLEX


VB (L1) (L2) (L3) (L4) x3 x2 x1 x1 0 0 1 0 x2 0 1 0 0 x3 1 0 0 0 x4 1 1 -1 -1 x5 -1 0 1 -1 1 2 1 z-5

VB = {x1 = 1, x2 = 2, x3 = 1} VNB = {x4 = 0, x5 = 0}

Final da Iterao 2: x(2) = (1 2 1 0 0)t ; z = 5

Interpretao geomtrica
x2 x1 2 A = (0,0) B = (2,0) C = (1,1) D = (1,2) E = (0,2) F = (0,3) G = (2,2) H = (3,0)

max
C

x1 x1 x1 x1

+ 2 x2 x2 x2 x2

+ 0 x3 + x3

+ 0 x4 + x4 x4

x2 2

+ 0 x5 = = = 2 2 3 0

+ ,

x3

+ ,

x1 + x2 3

x5 x5
x1

Situao em que a origem no pode ser soluo inicial: Exemplo 2


max x1 x1 x1 x1 + , x2 x2 x2 + 2 x2 = z

max

x1 x1 x1 x1

+ 2 x2 x2 x2 x2

+ 0 x3 + x3

+ 0 x4 + x4 x4

+ 0 x5

= = = =

z 2 2 3 0

2 2 3 0

+ ,

x3

x5 x5

x1 1 0 1 0 0 x 2 2 0 1 0 1 0 x = 2 3 1 1 0 0 1 x4 3 x5

Mtodo das Duas Fases


x2 x1 2 A = (0,0) B = (2,0) C = (1,1) D = (1,2) E = (0,2) F = (0,3) G = (2,2) H = (3,0)

max
C

x1 x1 x1 x1

+ 2 x2 x2 x2 x2

+ 0 x3 + x3

+ 0 x4 + x4 x4

x2 2

+ 0 x5 = = = 2 2 3 0

+ ,

x3

x1 + x2 3

x5 x5
x1

Mtodo das Duas Fases


Primeira fase (Criar problema auxiliar P):
Introduzir variveis de folga e variveis artificiais Variveis de folga: introduzidas quando h variveis do tipo ou Variveis artificiais: introduzidas quando h restries do tipo ou = Criar funo objetivo artificial:

z a = xia i
Variveis bsicas iniciais: variveis de folga associadas s restries e variveis artificiais Objetivo da primeira fase: minimizar a funo objetivo artificial Caminhar de SBV em SBV de P at alcanar SBV do problema original P (situao que ocorre quando todas as variveis artificiais so nulas).
i

Mtodo das Duas Fases


Segunda fase:
A partir de uma SBV do problema original P, gerar SBV cada vez melhores at se atingir a soluo tima.

Aplicando o mtodo das duas fases ao PPL dado, tem-se:


min 0 x1 + 0 x2 max x1 + 2 x2 + 0 x3 + 0 x4 + 0 x5 + 1x1a = z a + 0 x3 + 0 x4 + 0 x5 + 0 x1a = z

x1 x1 x1 + , x2 x2 x2

x3 + x4 x5 x5 + x1a x4 , , x1a

= 2 = 2 = 3 0

x3

Mtodo das Duas Fases


VB (L1) (L2) (L3) (L4) (L5) x3 x4 x 1a x1 1 0 1 0 1 x2 0 1 1 0 2 x3 1 0 0 0 0 x4 0 1 0 0 0 x5 0 0 -1 0 0 x 1a 0 0 1 1 0 2 2 3 za z

Reduo forma cannica: L4 -L3 + L4

Mtodo das Duas Fases


VB (L1) (L2) (L3) (L4) (L5) x3 x4 x 1a x1 1 0 1 -1 1
L3 -L1 + L3

x2 0 1 1 -1 2

x3 1 0 0 0 0

x4 0 1 0 0 0

x5 0 0 -1 1 0

x 1a 0 0 1 0 0 2 2 3
za -3

L4 L1 + L4

L5 -L1 + L5

Mtodo das Duas Fases


VB (L1) (L2) (L3) (L4) (L5) x1 x4 x 1a x1 1 0 0 0 0
L2 -L3 + L2

x2 0 1 1 -1 2

x3 1 0 -1 1 -1

x4 0 1 0 0 0

x5 0 0 -1 1 0

x 1a 0 0 1 0 0 2 2 1
za -1

z-2

L4 L3 + L4

L5 -2L3 + L5

Mtodo das Duas Fases


VB (L1) (L2) (L3) (L4) (L5) x1 x4 x2 x1 1 0 0 0 0 x2 0 0 1 0 0 x3 1 1 -1 1 1 x4 0 1 0 0 0 x5 0 1 -1 0 2 x 1a 0 -1 1 1 -2 2 1 1
za

z-4

Fim da primeira fase: za = 0

x = (2, 1); z = 4

Mtodo das Duas Fases


VB (L1) (L2) (L3) (L4) x1 x4 x2 x1 1 0 0 0
L3 L2 + L3

x2 0 0 1 0

x3 1 1 -1 1

x4 0 1 0 0

x5 0 1 -1 2 2 1 1 z-4

L4 -2L2 + L4

Mtodo das Duas Fases


VB (L1) (L2) (L3) (L4) x1 x5 x2 x1 1 0 0 0 x2 0 0 1 0 x3 1 1 0 -1 x4 0 1 1 -2 x5 0 1 0 0 2 1 2 z-6

Soluo tima: x* = (2,2);

z* = 6

Mtodo das Duas Fases: Interpretao Geomtrica


x2 x1 2 A = (0,0) B = (2,0) C = (1,1) D = (1,2) E = (0,2) F = (0,3) G = (2,2) H = (3,0) x2 2

max
C
x1 + x2 3

x1 x1 x1 x1

+ 2 x2 x2 + , x2 x2

+ 0 x3 + x3

+ 0 x4 + x4 x4

+ 0 x5 = 2 = 2 , x5 x5
x1

x3

= 3 0

Outro exemplo de aplicao do Mtodo das Duas Fases: Exemplo 3


max x1 x1 x1 x1 + , x2 x2 x2 + 2 x2 = z

max

x1 x1 x1 x1

+ 2 x2 x2 x2 x2

+ 0 x3 x3

+ 0 x4 + x4 x4

+ 0 x5

= = = =

z 2 2 3 0

2 2 3 0

+ ,

x3

x5 x5

x1 1 0 1 0 0 x2 2 0 1 0 1 0 x = 2 3 1 1 0 0 1 x4 3 x5

Mtodo das Duas Fases: Exemplo 3


Introduzindo variveis artificiais no PPL dado, tem-se:
min 0 x1 + 0 x2 + 0 x3 + 0 x4 max x1 + 2 x2 + 0 x3 + 0 x4
a + 0 x5 + 1x1a + 1x2 = za a + 0 x5 + 0 x1a + 0 x2 = z

x1 x1 x1 + , x2 x2 x2

x3 + x4 x5 x5

x1a +
a x2

= 2 = 2 = 3 0

x3

x4

, x1a

a , x2

Mtodo das Duas Fases


VB (L1) (L2) (L3) (L4) (L5) x 1a x4 x 2a x1 1 0 1 0 1 x2 0 1 1 0 2 x3 -1 0 0 0 0 x4 0 1 0 0 0 x5 0 0 -1 0 0 x 1a 1 0 0 1 0 x 2a 0 0 1 1 0 2 2 3 za z

Transf. para forma cannica:

L4 -L1 L3 + L4

Mtodo das Duas Fases


VB (L1) (L2) (L3) (L4) (L5) x 1a x4 x 2a x1 1 0 1 -2 1
L3 -L1 + L3

x2 0 1 1 -1 2

x3 -1 0 0 1 0

x4 0 1 0 0 0

x5 0 0 -1 1 0

x 1a 1 0 0 0 0

x 2a 0 0 1 0 0 2 2 3
za -5

L4 2L1 + L4

L5 -L1 + L5

Mtodo das Duas Fases


VB (L1) (L2) (L3) (L4) (L5) x1 x4 x 2a x1 1 0 0 0 0
L2 -L3 + L2

x2 0 1 1 -1 2

x3 -1 0 1 -1 1

x4 0 1 0 0 0

x5 0 0 -1 1 0

x 1a 1 0 -1 2 -1

x 2a 0 0 1 0 0 2 2 1
za -1

z-2

L4 L3 + L4

L5 -2L3 + L5

Mtodo das Duas Fases


VB (L1) (L2) (L3) (L4) (L5) x1 x4 x2 x1 1 0 0 0 0 x2 0 0 1 0 0 x3 -1 -1 1 0 -1 x4 0 1 0 0 0 x5 0 1 -1 0 2 x 1a 1 1 -1 1 1 x 2a 0 -1 1 1 -2 2 1 1
za

z-4

Fim da primeira fase: za = 0

x = (2, 1); z = 4

Mtodo das Duas Fases


VB (L1) (L2) (L3) (L4) x1 x4 x2 x1 1 0 0 0
L3 L2 + L3

x2 0 0 1 0

x3 -1 -1 1 -1

x4 0 1 0 0

x5 0 1 -1 2 2 1 1 z-4

L4 -2L2 + L4

Mtodo das Duas Fases


VB (L1) (L2) (L3) (L4) x1 x5 x2 x1 1 0 0 0 x2 0 0 1 0 x3 -1 -1 0 1 x4 0 1 1 -2 x5 0 1 0 0 2 1 2 z-6

x3 pode entrar na base melhorando o valor de z indefinidamente. Assim, no h soluo tima.

Mtodo das Duas Fases:


Interpretao Geomtrica do Exemplo 3
x2 x1 2 A = (0,0) B = (2,0) C = (1,1) D = (1,2) E = (0,2) F = (0,3) G = (2,2) H = (3,0)

max
C

x1 x1 x1 x1

+ 2 x2 x2 x2 x2

+ 0 x3 x3

+ 0 x4 + x4 x4

x2 2

+ 0 x5 = = = 2 2 3 0

+ ,

x3

x1 + x2 3

x5 x5
x1

Mtodo das Duas Fases: Exemplo 4


min x1 x1 x1 x1 + , x2 x2 x2 + x2 = z

min

x1 x1 x1 x1

x2 x2 x2 x2

+ 0 x3 x3

+ 0 x4 + x4 x4

+ 0 x5

= = = =

z 2 2 3 0

2 2 3 0

+ ,

x3

x5 x5

x1 1 0 1 0 0 x2 2 0 1 0 1 0 x = 2 3 1 1 0 0 1 x4 3 x5

Mtodo das Duas Fases: Exemplo 4


Introduzindo variveis artificiais no PPL dado, tem-se:
min 0 x1 + 0 x2 + 0 x3 + 0 x4 + 0 x5 + 1x1a min x1 + x2 + 0 x3 + 0 x4 + 0 x5 + 0 x1a
a + 1x2 = za a + 0 x2 = z

x1 x1 x1 + , x2 x2 x2

x3 + x4 x5 x5

x1a +
a x2

= 2 = 2 = 3 0

x3

x4

, x1a

a , x2

Mtodo das Duas Fases


VB (L1) (L2) (L3) (L4) (L5) x 1a x4 x 2a x1 1 0 1 0 1 x2 0 1 1 0 1 x3 -1 0 0 0 0 x4 0 1 0 0 0 x5 0 0 -1 0 0 x 1a 1 0 0 1 0 x 2a 0 0 1 1 0 2 2 3 za z

Transf. para forma cannica:

L4 -L1 L3 + L4

Mtodo das Duas Fases


VB (L1) (L2) (L3) (L4) (L5) x 1a x4 x 2a x1 1 0 1 -2 1
L3 -L1 + L3

x2 0 1 1 -1 1

x3 -1 0 0 1 0

x4 0 1 0 0 0

x5 0 0 -1 1 0

x 1a 1 0 0 0 0

x 2a 0 0 1 0 0 2 2 3
za -5

L4 2L1 + L4

L5 -L1 + L5

Mtodo das Duas Fases


VB (L1) (L2) (L3) (L4) (L5) x1 x4 x 2a x1 1 0 0 0 0
L2 -L3 + L2

x2 0 1 1 -1 1

x3 -1 0 1 -1 1

x4 0 1 0 0 0

x5 0 0 -1 1 0

x 1a 1 0 -1 2 -1

x 2a 0 0 1 0 0 2 2 1
za -1

z-2

L4 L3 + L4

L5 -L3 + L5

Mtodo das Duas Fases


VB (L1) (L2) (L3) (L4) (L5) x1 x4 x2 x1 1 0 0 0 0 x2 0 0 1 0 0 x3 -1 -1 1 0 0 x4 0 1 0 0 0 x5 0 1 -1 0 1 x 1a 1 1 -1 1 1 x 2a 0 -1 1 1 -1 2 1 1
za

z-3

Fim da primeira fase: za = 0

x = (2, 1); z = 3

Mtodo das Duas Fases


VB (L1) (L2) (L3) (L4) x1 x4 x2 x1 1 0 0 0
L1 L3 + L1

x2 0 0 1 0

x3 -1 -1 1 0

x4 0 1 0 0

x5 0 1 -1 1 2 1 1 z-3

Soluo tima: z = 3; x1 = 2; x2 = 1; x3 VNB nula

L2 L3 + L2

Mtodo das Duas Fases


VB (L1) (L2) (L3) (L4) x1 x4 x3 x1 1 0 0 0 x2 1 1 1 0 x3 0 0 1 0 x4 0 1 0 0 x5 -1 0 -1 1 3 2 1 z-3

Outra soluo tima: z = 3; x1 = 3; x2 = 0

Mtodo das Duas Fases


VB (L1) (L2) (L3) (L4) x1 x4 x3 x1 1 0 0 0 x2 1 1 1 0 x3 0 0 1 0 x4 0 1 0 0 x5 -1 0 -1 1 3 2 1 z-3

Assim, todos os pontos da aresta que liga os pontos (2, 1) e (3, 0) so timos. Isto , todos os pontos da forma: x* = (x1 , x2) = (2, 1) + (1 - ) (3, 0), sendo [0,1]

Mtodo das Duas Fases:


Interpretao Geomtrica do Exemplo 4
x2 x1 2 A = (0,0) B = (2,0) C = (1,1) D = (1,2) E = (0,2) F = (0,3) G = (2,2) H = (3,0)

min x
C

x1 x1 x1 x1

x2 x2 x2 x2

+ 0 x3 x3

+ 0 x4 + x4 x4

x2 2

+ 0 x5 = = = 2 2 3 0

+ ,

x3

x1 + x2 3

x5 x5
x1

Potrebbero piacerti anche