Você está na página 1de 37

Método Simplex Revisado

Prof. Fernando Augusto Silva Marins


Departamento de Produção
Faculdade de Engenharia – Campus de Guaratinguetá
UNESP

www.feg.unesp.br/~fmarins
fmarins@feg.unesp.br

1
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Introdução

Método Simplex Tradicional - MST:


Em cada iteração são modificados todos os elementos das tabelas usadas na
aplicação do método.

Informações necessárias para a continuidade do Simplex:


•Coeficientes de custo relativo ( Cj );
•Coeficientes da variável não básica que entra nas restrições (coluna do
pivot);
•Quais são as variáveis básicas atuais e seus valores ( b j ).

Observação: as demais colunas da tabela do simplex não contém


informações relevantes para o pivoteamento: para modelos de PL de porte
razoável a aplicação do MST pode ser ineficiente e custosa do ponto de
vista computacional.
2
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Método Simplex Revisado
Códigos comerciais com implementações do Simplex usam um
refinamento conhecido como Método Simplex Revisado - MSR.

Características do MSR:

•Usa os mesmos princípios do MST;

•Não atualiza toda a tabela em cada iteração;

•As informações para concretizar cada iteração são obtidas


diretamente a partir dos dados originais.
3
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Vantagens do MSR sobre o MST

Quando o número de variáveis do modelo é bem maior que o número


de restrições (n >> m) o total de operações em cada iteração é
menor no MSR, pois trabalha-se com tabelas cuja dimensão é
determinada pelo número de restrições (m);

Há um controle maior de erros de arredondamento no MSR;

Para modelos onde há muitos coeficientes nulos nas restrições,


usando o MST estes coeficientes nulos desaparecem já nas
operações iniciais de pivoteamento;

O MSR é útil para a abordagem facilitada de outros tópicos de


Programação Linear.
4
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Forma Matricial do Método Simplex

Considere o modelo de PL na forma padrão:

Min Z = C’X s. a. : {AX = b (  0) , X 0}

Considere as partições: A = [B | N] , Xt = [XB | XN], C = [CB | CN]


onde,
B = colunas básicas, N = colunas não-básicas,
XB = variáveis básicas (VB), XN = variáveis não-básicas (VNB),
CB = coeficientes de VB na Funcão Objetivo (F.O.),
CN = coeficientes de variáveis não-básicas na F.O.

5
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Forma Matricial do Método Simplex
Pode-se reescrever o modelo na forma padrão:
Min Z = CB XB + CN XN s.a: B XB + N XN = b (1) ,
XB  0 (2), XN  0 (3)

De (1) tem-se: XB = B-1 b - B-1 N XN , e substituindo na F. O. :


Z = CB (B-1 b - B-1 N XN ) + CN XN = CB B-1 b + (CN - CB B-1 N) XN (4)
Denote e calcule por:
Z0 = CB B-1 b = CB b = valor da F.O. da S.B.V. dada por X0t = (XB 0);
C N = CN - CB B-1 N = vetor dos coeficientes de custo relativo das
VNB na solução X0t .

6
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Exemplo
Seja o modelo de PL :
Max Z = 3X1 + 4X3 -1  X1 + 2X2 + 2X3 + X4 = 8
s. a:  3X1 + 4X2 + X3 + X5 = 7
 X  0, i = 1, 2, 3, 4, 5.
 i

Onde:
A = (a1 a2 a3 a4 a5 ) , a1 =  1 , a2 =  2 , a3 =  2 , a4 =  1 , a5 = 0
 3  4  1  0  1

C = (3 0 4 0 0) = (c1 c2 c3 c4 c5 ), Xt = (X1 X2 X3 X4 X5),

 8  b1 
b=  
 7
=  
 b2 

7
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Tabelas do MST no Exemplo

VB X1 X2 X3 X4 X5 b
Tabela 1 x4 1 2 2 1 0 8
inicial x5 3 4 1 0 1 7
-z 3 0 4 0 0 1

x3 1/ 2 1 1 1 /2 0 4
Tabela 2 x5 5/2 3 0 -1 /2 1 3
-z 1 -4 0 -2 0 -15

Tabela 3 x3* 0 2/5 1 3/5 -1/5 17/5


ótima x1* 1 6/5 0 -1/5 2/5 6/5
-z* 0 -26/5 0 -9/5 -2/5 -81/5

8
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Método Simplex Revisado
Todos os coeficientes das Tabelas 2 e 3 podem ser obtidos a partir dos dados
originais e da matriz B-1.
- Para a Tabela 2:  1 / 2 0
 2 0
B = colunas básicas = (a3 a5 ) = 1 1  B =  1 / 2 1
-1

- Colunas atualizadas da matriz A:

a j = B-1 a j para j = 1, 5.
 1/ 2 0  1
-1  1/ 2
a1 = B a1 =    =  
 -1/ 2 1  3  5 / 2

-1 1/ 2 0  2  1
a 2 = B a2 =    =  
 -1/ 2 1  4  3
9
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Método Simplex Revisado
Constantes atualizadas das restrições (ou seja os valores das variáveis
básicas):
 1 / 2 0  8
-1  4
b = B b =     =  
 -1 / 2 1  7  3

Coeficientes de custo relativo atualizados: com  sendo o Vetor de


Multiplicadores do Simplex = C B B-1

Cj = Cj - CB B a j = Cj -  a j
-1
Cj = C j - C B a j ou
 1 / 2
j=1 C1 = C1 - CB a 1 = 3 -  4 0   = 1
 5 / 2

j=2  1
C2 = C 2 - C B a 2 = 0 -  4 0   = - 4
 3

10
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
MSR - Problemas de Minimização
Considere uma Solução Básica Viável inicial (SBV) XB = B -1 b = b
Passo1: Montar a tabela com a SBV Inicial
Solução Variável Coluna do
B-1 -1
b = B b que entra
inicial pivot
Inversa da
Valores da A ser A ser
matriz das
variáveis preenchida preenchida
XB colunas
básicas no Passo 2 no Passo 3
básicas

Passo 2: Teste de otimalidade/escolha da variável não-básica que entra


•Calcular Cj = Cj - CB a j para toda VNB Xj
•Se todo C j  0  Parar. Solução Ótima
•Senão escolha xr com Cr < 0 para ser a VNB que entra
(preencher a tabela)
11
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
MSR - Problemas de Minimização
Passo 3: calcular a coluna atualizada do pivot/escolha da VB que sai

• Achar coluna atualizada do pivot a r = B -1a r (preencher a tabela)


b 
• Determinar bs = MIN i  PARA a ir > 0  xs = bs sai , pivot = a sr
 a ir 

• Se  a ir > 0  Parar. Solução Ilimitada

Passo 4: atualizar a SBV, a matriz B-1, e o vetor b = B-1 b pelo


pivoteamento. Voltar ao Passo 2.

12
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Exemplo completo de aplicação do Método
Simplex Revisado
 2X1 + X2 + X3  2
 X1 + 2X2 + 3X3  5
Max Z = 3X1 + X2 + 3X3 s. a: 

 2X1 + 2X2 + X3  6
 Xi  0, i = 1, 3.

Colocando este modelo na forma padrão de minimização e identificando


os dados originais que serão usados nas iterações do Método Simplex
Revisado:
a1 a2 a3 a4 a5 a6
XB X1 X2 X3 X4 X5 X6 b
S. B. V. X4 2 1 1 1 0 0 2 b1
Inicial X5 1 2 3 0 1 0 5 b2
X6 2 2 1 0 0 1 6 b3
-Z -3 -1 -3 0 0 0 0
C1 C2 C3 C4 C5 C6 -Z0
13
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Exemplo - MSR
Expressões úteis:
 = Vetor de multiplicadores do simplex = CB B -1
C N = CN - CB B -1 N = CN -  N
a j = B -1 a j , b = B -1 b
Passo 1: 1 0 0  2 1 1
 
CB = (0 0 0) B =  0 
1 0 N=  1 2 3 CN = (-3 -1 -3)
   
 0 0 1  2 2 1

Tabela 1
S.B.V. B-1 b Variável que entra Coluna Pivot
X4 1 0 0 2
X5 0 1 0 5 Passo 2 Passo 3
X6 0 0 1 6
14
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Exemplo
Passo 2 - Cálculos:  = CB B -1 = (0 0 0) I3 = (0 0 0)
 2 1 1
 
CN = (C1 C2 C3 ) = CN - N = (-3 - 1 - 3) - (0 0 0) 1 2 3  (-3 - 1 - 3)
 
 2 2 1

Candidatas a entrar: X1 ,X2 e X3. Escolhendo X1 para entrar (Preencher


a Tabela 1). 2 2    
   
Passo 3 - Coluna do pivot: a 1 = B -1 a 1 = I 3  1 =  1 (Preencher
   
Tabela 1)  2  2
 
Determinação do pivot: Min bi a  para a i1 > 0
 i1 

2 5 6 2
Min  , ,  = = 1  sai X 4 e o pivot = a 11 = 2
2 1 2 2
15
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Exemplo
Tabela 1
S.B.V. B-1 b Variável que entra Coluna Pivot
X4 1 0 0 2 2
X5 0 1 0 5 X1 1
X6 0 0 1 6 2

A seguir efetuar o pivoteamento em B-1 e b  Tabela 2


com nova SBV com X1 no lugar de X4.

16
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Exemplo

Aplicar os Passos 2 – 4 na Tabela 2

Tabela 2
S.B.V. B-1 b variável entra coluna pivot
X1 1/2 0 0 1
X5 -1/2 1 0 4 Passo 2 Passo 3
X6 -1 0 1 4

17
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Método Simplex Revisado
Passo 2 - 3

Cálculos:  = CB B -1 = (-3/2 0 0)
 1 1 1
 
CN = (C2 C3 C4 ) = (-1 - 3 0) - (-3 / 2 0 0) 2 3 0  (1/ 2 - 3 / 2 3 / 2)
 
 2 1 0

Candidata a entrar: X3 (Preencher a Tabela 2).


 1/ 2 0 0  1  1/ 2
     
Coluna Pivot: a 3 = B a3 =  -1/ 2 1 0  3 =  5 / 2
-1
(Preencher
Tabela 2)      
 1 0 1  
1  0 

18
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Exemplo

Tabela 2
S.B.V. B-1 b variável entra coluna pivot
X1 1/2 0 0 1 1/2
X5 -1/2 1 0 4 X3 5/2
X6 -1 0 1 4 0

Determinação do Pivot: Min bi  para a i3 > 0


 a i3 
 1 4  8

Min 
1
,
5  =  sai X 5 e o pivot = a 23 = 5/2
 2 5
2 
19
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Exemplo

Efetuando o pivoteamento em B-1 e b  Tabela 3 com nova SBV


com X3 no lugar de X5.
Tabela 3
S.B.V. B-1 b variável entra coluna pivot
X1 3/5 -1/5 0 1/5
X3 -1/5 2/5 0 8/5 Passo 2 Passo 3
X6 -1 0 1 4

20
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Método Simplex Revisado
Tabela 3
S.B.V. B-1 b variável entra coluna pivot
X1 3/5 -1/5 0 1/5
X3 -1/5 2/5 0 8/5 Passo 2 Passo 3
X6 -1 0 1 4

 2 1 0  1 1 0
   
CB = (-3 -3 0) B =  1 3 0 N=  2 0 1 CN = (-1 0 0)
   
 2 1 1  2 0 0

Cálculos:  = CB B = (-3 -3 0)
-1  3 / 5 1 / 5 0 = (-6/5 -3/5 0)
 
  1 / 5 2 / 5 0
 
 1 0 1

21
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Exemplo - MSR
 1 1 0
 
CN = (C2 C4 C5 ) = (-1 0 0) - (-6 / 5 - 3/ 5 0) 2 0 1  (7/ 5 6 / 5 3/ 5)
 
 2 0 0
CN  0  a SBV da Tabela 3 é ótima:

X *1 = 1 / 5, X *3 = 8 / 5, X *6 = 4 , X *2 = X *4 = X *5 = 0

 2
 
Z * = C B B -1 b =  b = (-6 / 5 - 3 / 5 0)  5  = - 27 / 5
 
 6
W * = - Z * = 27 / 5

22
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Método do Big M para inicialização do MSR

Nas restrições onde não há Variáveis Naturais (originais e de folga)


do modelo que possam ser variáveis básicas são incorporadas novas
Variáveis denominadas Artificiais.

Estas Variáveis Artificiais (  0) também são incorporadas à função


objetivo recebendo, para modelos de Minimização (Maximização),
coeficientes penalizantes dados por M (-M), onde M é um número
positivo suficientemente grande com relação aos demais coeficientes
envolvidos com o modelo original.

Desta maneira obtém-se uma solução básica viável inicial para o


modelo ampliado que contém todas as variáveis artificiais.
23
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Método do Big M para inicialização do MSR
Aplica-se o MSR anteriormente ao modelo ampliado, buscando
a substituição das Variáveis Artificiais (VA) básicas por Variáveis
Naturais (Decisão e de Folga) do modelo original.
As VA que se tornam não-básicas podem ser desconsideradas
nas iterações subseqüentes do MSR.
A aplicação do MSR ao modelo ampliado pode levar a duas
situações:
(A) Existe VA como variável básica na solução ótima do modelo
ampliado  neste caso a conclusão é que o modelo original é
inviável.
(B) Não existe VA como variável básica na solução ótima do modelo
ampliado  neste caso o modelo original é viável e uma solução
ótima com Variáveis Naturais do modelo original foi obtida.
24
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Exemplo de aplicação do MSR com Big M
 X1 - 2X 2 + X 3  11 (1)

Min Z = -3 X1 + X2 + X3 s. a: - 4X1 + X 2 + 2X 3  3 (2)

 2X1 - X 3 = - 1 (3)
X i  0, i = 1, 3. (4)

Modelo original na forma padrão:


Sendo X4 e X5 as variáveis de folga para as restrições (1) e (2),
respectivamente; Y1 , e Y2 as variáveis artificiais para as restrições (2) e
(3), respectivamente.
Min Z = -3X1 + X2 + X3 + MY1 + MY2
 X1 - 2X 2 + X 3 + X 4 = 11 (1)
- 4X + X + 2X - X 5 + Y1 =3 (2)
 1 2 3

Sujeito a: - 2X1 + X3 + Y2 =1 (3)


X i  0, i = 1, 5. Yj  0, j = 1, 2. (4)
 25
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Aplicação do MSR com Big M
Identificação dos dados originais

a1 a2 a3 a4 a5 a6 a7
 1 2 1 1 0 0 0
A=  
 4 1 2 0 1 1 0
 
 2 0 1 0 0 0 1

C1 C2 C3 C4 C5 C6 C7
C =  3 1 1 0 0 M M

 11 b1
b=  
 3  b2
 
 1  b3

26
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Aplicação do MSR com Big M
Tabela 1
XB B-1 b variável entra coluna pivot
X4 1 0 0 11
Y1 0 1 0 3 Passo 2 Passo 3
Y2 0 0 1 1

Dados referentes a solução básica viável da Tabela 1:


CB = (0 M M), B =  1 0 0  1 -2 1 0 
 
 0 1 0 , N =  -4 1 2 -1 , CN =  -3 1 1 0
   
 0 0 1  -2 0 1 0

Cálculos:  = (O M M) I3 = (0 M M)
 1 2 1 0 
 
CN =  C1 C2 C3 C5 =  -3 1 1 0 -  0 M M 4 1 2 1 =  M -M -M M
 
 2 0 1 0  27
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Aplicação do MSR com Big M

Tabela 1
XB B-1 b variável entra coluna pivot
X4 1 0 0 11
Y1 0 1 0 3 X3 Passo 3
Y2 0 0 1 1

Variáveis X2 e X3 são candidatas a entrar. Escolhendo X3 para entrar


(preencher a Tabela 1).
 1  1
   
Coluna do pivot: a 3 = B -1 a 3 = I3  2 =  2 (preencher Tabela 1)
   
 1  1

28
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Aplicação do MSR com Big M

Tabela 1
XB B-1 b variável entra coluna pivot
X4 1 0 0 11 1
Y1 0 1 0 3 X3 2
Y2 0 0 1 1 1

Determinação do pivot:
 
Min  bi  , a i3 > 0 111 , 3 2 , 11 = 11  Sai Y e o pivot = a
2 33 = 1.
 a i3 

Nova SBV: Pivotear em a33 , B-1 , b na Tabela 1  Tabela 2.

29
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Aplicação do MSR com Big M
Tabela 2
XB B-1 b variável entra coluna pivot
X4 1 0 -1 10
Y1 0 1 -2 1 Passo 2 Passo 3
X3 0 0 1 1

Dados referentes a SBV da Tabela 2:


CB = (0 M 1), B =  1 0 1 1

-2 0 0

 0 1 2 , N =  -4 1 -1 0 , CN = -3 1 0 M
   
 0 0 1  -2 0 0 1

 1 0 1
 
Cálculos:  = (O M 1)  0 1  2 = (0 M -M)
 
0 0 1 
 1 2 0 0
 
CN =  C1 C2 C5 C7  = -3 1 0 M - 0 M -M 4 1 1 0 = -1 -M M M
 
 2 0 0 1 30
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Aplicação do MSR com Big M

Tabela 2
XB B-1 b variável entra coluna pivot
X4 1 0 -1 10
Y1 0 1 -2 1 X2
X3 0 0 1 1

Variáveis X1 e X2 são candidatas a entrar. Escolhendo X2 para


entrar (preencher a Tabela 2).
 1 0 -1  -2  -2
     
Coluna do pivot: a 2 = B -1 a 2 =  0 1 -2  1  =  1  (preencher Tabela 2)
    
0 0 1 0  0

31
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Aplicação do MSR com Big M
Tabela 2
XB B-1 b variável entra coluna pivot
X4 1 0 -1 10 -2
Y1 0 1 -2 1 X2 1
X3 0 0 1 1 0
Determinação do pivot:

Min
 bi 
 , a i2 > 0
 ai 2 
 Min  
1 = 1  sai Y1 e o pivot = a 22 = 1.
1 1

Nova SBV: Pivotear em a22 , B-1 , b na Tabela 2  Tabela 3.


32
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Aplicação do MSR com Big M

Tabela 3
XB B-1 b variável entra coluna pivot
X4 1 2 -5 12
X2 0 1 -2 1 Passo 2 Passo 3
X3 0 0 1 1

Dados referentes a solução básica viável da Tabela 3:


CB = (0 1 1), B =  1 2 1  1 0 0 0
 
0 1 2 , N =  -4 -1 1 0 , CN = -3 0 M M
   
0 0 1  -2 0 0 1
 1 2 5
 
Cálculos:  = (0 1 1)  0 1 2 = (0 1 -2)
 
0 0 1 
 1 0 0 0
 
CN =  C1 C5 C6 C7  = -3 0 M M - 0 1 -2 4 1 1 0 = -1 -1 M M
 
 2 0 0 1 33
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Aplicação do MSR com Big M

Tabela 3
XB B-1 b variável entra coluna pivot
X4 1 2 -5 12
X2 0 1 -2 1 X1
X3 0 0 1 1

Variável X1 é candidata única a entrar. (Preencher a Tabela 3).

 1 2 -5  1   3
    
Coluna do pivot: a1 = B -1 a 1 =  0 1 -2  -4 =  0  (preencher Tabela 3)
    
 0 0 1   -2  -2

34
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Aplicação do MSR com Big M
Tabela 3
XB B-1 b variável entra coluna pivot
X4 1 2 -5 12 3
X2 0 1 -2 1 X1 0
X3 0 0 1 1 -2

Determinação do pivot:
 bi 
Min  , a i1 > 0
 a i1 
 Min 12  3= 4  sai X 4 e o pivot = a11 = 3.

a
Nova SBV: Pivotear em 11 , B -1
, b na Tabela 3  Tabela 4.
35
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Aplicação do MSR com Big M

Tabela 4
XB B-1 b variável entra coluna pivot
X1 1/3 2/3 -5/3 4
X2 0 1 -2 1
X3 2/3 4/3 -7/3 9

Dados referentes a SBV da Tabela 4:

 1 2 1  1 -0 0 0
   
CB = (-3 1 1), B =   4 1 2 , N =  0 -1 1 0 , CN = 0 0 M M
   
 2 0 1  0 0 0 1

Cálculos:  = (-3 1 1)  1 / 3 2 / 3 5 / 3
  = (-1/3 1/3 2/3)
 0 1  2 
 
 2 / 3 4 / 3 7 / 3 36
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá
Aplicação do MSR com Big M

 1 0 0 0
 
CN =  C4 C5 C6 C7  = 0 0 M M - -1 / 3 1 / 3 2 / 3 0 1 1 0 = 1 / 3 1 / 3 M M
 
 0 0 0 1

Como não há VNB candidatas a entrar.  A solução da Tabela 4 é


ótima.
X*1 = 4, X*2 = 1, X*3 = 9, X*4 = X*5 = 0.

 4
 
Z* = CB b = -3 1 1  1 = - 2
 
 9

37
Pesquisa Operacional Aplicada à Produção - UNESP / Campus de Guaratinguetá

Você também pode gostar