Vous êtes sur la page 1sur 21

Método SIMPLEX

Disciplina: PRO706 - Pesquisa Operacional I


Prof: Lásara Rodrigues

Departamento de Engenharia de Produção, Administração e Economia


Escola de Minas
Universidade Federal de Ouro Preto

2010/1

6ª Parte

1
Forma-padrão de um PPL

• PPL está na forma-padrão quando é posto


na forma:
n
(min) ou (max) z c j x j
j
1
n

a x
j
1
ij j bi i 1,..., m
x j 0 j 1,..., n

sendo bi 0 i 1,..., m 2
Solução Exata para os Modelos
PL
 Como obter soluções viáveis básicas do sistema de
equação?

 Como evitar o teste de todos as soluções viáveis básicas


possíveis para garantir a otimização do sistema ?

Algoritmo – procedimento que termina em um número finito


de operações.

Simplex – Algoritmo que utiliza de um ferramental baseado


na Álgebra Linear para determinar, por um método
iterativo, a solução ótima do PPL. 3
Redução de um PPL qualquer à
forma-padrão
• Restrições do tipo 
2 x1 3x2 5 2 x1 3 x2 x3 5
x3 0
• Restrições do tipo 

x1 6 x2 7 x1 6 x2 x4 7
x4 0
4
Redução de um PPL qualquer à
forma-padrão
• Existe bi < 0
Solução: Basta multiplicar restrição i por -1

• Existem variáveis não-positivas


Seja xk 0:

Solução: Criar variável xk’ tal que xk’ = - xk

Assim, modelo terá variável xk’ 0


5
Redução de um PPL qualquer à
forma-padrão
• Existem variáveis livres, isto é, variáveis xk
que podem assumir qualquer valor real
(negativo, nulo ou positivo)
Solução: 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 maximização
max f(x) = - min {-f(x)}
6
Caracterização de vértice

max x1  2 x 2 max x1  2x2  0 x3  0 x4  0 x5


x1  2 x1  x3  2
x2  2 x2  x4  2
x1  x2  3 x1  x2  x5  3
x1 , x2  0 x1 , x2 , x3 , x4 , x5  0
x1 
  2

1 0 1 0 0
2  
x

0 1 0 1 0 
x 2 
 
  
3


1 1 0 0 1
 
x4  3

x5 
A b 7
x
Caracterização de vértice
x2
max x1  2 x2  0x3  0x4  0 x5
x1  x3  2
x2  x4  2
x1  x2  x5  3
F x1 , x2 , x3 , x4 , x5  0
x1 2 A = (0,0)
B = (2,0)
E D G x2 2 C = (2,1)
D = (1,2)
E = (0,2)
F = (0,3)
C G = (2,2)
x1

H = (3,0)
+
x2

3

A H x1
B
Caracterização de vértice
• Em um ponto no interior do conjunto (não
pertencente a nenhuma aresta) não há
variáveis nulas.
• Em uma aresta há, pelo menos, uma variável
nula.
• Em um vértice há, pelo menos, n-m variáveis
nulas. n-m m

R B m

9
n
Caracterização de vértice
• Para gerar um vértice:
• Escolher uma matriz não-singular B tal que:
BxB + RxR = b
• Fazer xR = 0
• Se ao resolver o sistema BxB = b, for obtido xB 
0, então x = (xB xR)t = (xB 0)t é vértice
• Deste procedimento resulta uma Solução Básica
Viável (SBV), com o significado geométrico de
vértice.
Definições
• B = base
• xB = vetor das variáveis básicas
• xR = vetor das variáveis não-básicas
• Solução Básica (SB) = vetor x tal que
BxB=b e xR = 0
• Solução Básica Viável (SBV) = vetor x tal que
BxB=b; xB 0 e xR = 0
• Solução Básica Viável Degenerada (SBVD) =
SBV em que existe variável básica nula
Algoritmo SIMPLEX

Esta SBV pode Não Pare: Esta SBV


SBV inicial
ser melhorada? é ótima

Sim

Determine VNB que


deve entrar na base

Determine VB que
deve deixar a base

Encontre
nova SBV 12
Princípio de funcionamento do
Algoritmo SIMPLEX
max x1  2 x 2  z max x1  2x2  0 x3  0 x4  0 x5  z
x1  2 x1  x3  2
x2  2 x2  x4  2
x1  x2  3 x1  x2  x5  3
x1 , x2  0 x1 , x2 , x3 , x4 , x5  0

x1 

1 0 1 0 0 x 2  
2
 

0 1 0 1 0 x3 2
    


1 1 0 0 1x 4  
3
 

x5 

A b 13
x
Princípio de funcionamento do
Algoritmo SIMPLEX
VB x1 x2 x3 x4 x5

x3 1 0 1 0 0 2

x4 0 1 0 1 0 2

x5 1 1 0 0 1 3

1 2 0 0 0 z

PPL na forma canônica: Base é a identidade e coeficientes


14
das VB’s na função objetivo são todos nulos.
Princípio de funcionamento do
Algoritmo SIMPLEX
VB x1 x2 x3 x4 x5

x3 1 0 1 0 0 2

x4 0 1 0 1 0 2

x5 1 1 0 0 1 3

1 2 0 0 0 z
VB = {x3 = 2, x4 = 2, x5 = 3} Solução inicial:
VNB = {x1 = 0, x2 = 0} x(0) = (0 0 2 2 3)t ; z = 0 15
Princípio de funcionamento do
Algoritmo SIMPLEX
VB x1 x2 x3 x4 x5
(L1) x3 1 0 1 0 0 2
(L2) x4 0 1 0 1 0 2
(L3) x5 1 1 0 0 1 3
(L4) 1 2 0 0 0 z

Transformações
elementares: L3  -L2 + L3 L4  -2L2 + L4 16
Princípio de funcionamento do
Algoritmo SIMPLEX
VB x1 x2 x3 x4 x5
(L1) x3 1 0 1 0 0 2
(L2) x2 0 1 0 1 0 2
(L3) x5 1 0 0 -1 1 1
(L4) 1 0 0 -2 0 z-4

VB = {x3 = 2, x2 = 2, x5 = 1} Final da Iteração 1:


VNB = {x1 = 0, x4 = 0} x(1) = (0 2 2 0 1)t ; z = 4
17
Princípio de funcionamento do
Algoritmo SIMPLEX
VB x1 x2 x3 x4 x5
(L1) x3 1 0 1 0 0 2
(L2) x2 0 1 0 1 0 2
(L3) x5 1 0 0 -1 1 1
(L4) 1 0 0 -2 0 z-4

L1  -L3 + L1 L4  -L3 + L4
18
Princípio de funcionamento
do Algoritmo SIMPLEX
VB x1 x2 x3 x4 x5
(L1) x3 0 0 1 1 -1 1
(L2) x2 0 1 0 1 0 2
(L3) x1 1 0 0 -1 1 1
(L4) 0 0 0 -1 -1 z-5

VB = {x1 = 1, x2 = 2, x3 = 1} Final da Iteração 2:


VNB = {x4 = 0, x5 = 0} x(2) = (1 2 1 0 0)t ; z = 5
19
Interpretação geométrica
x2
max x1  2 x2  0 x3  0 x4  0 x5
x1 2 x1  x3  2
x2  x4  2
x1  x2  x5  3
F x1 , x2 , x3 , x4 , x5  0

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

G = (2,2)
+

H = (3,0)
x2

3

A H x1 20
B
Exercícios

max 4 x1  8 x2  z
3 x1  2 x2  18
x1  x2  5
x1  4
x1 , x2  0

21