Programação Linear

Download Report

Transcript Programação Linear

PROGRAMAÇÃO LINEAR
14 de setembro de 2014
SUMÁRIO
1. Definição
2. Aplicações
3. Problema Ilustrativo
3.1 Enunciado
3.2 Dados Físicos e Econômicos
3.3 Modelo Matemático
3.4 Balanço de Informação e Variáveis de Projeto
3.5 Critério e Função Objetivo
3.6 Restrições
3.7 Região Viável
3.8 Resolução. Algoritmo SIMPLEX
OBSERVAÇÃO PRELIMINAR
OTIMIZAÇÃO: 1 EXTRATOR
Modelo Matemático
Restrições
1. Q (xo - x) - W y = 0
2. y - k x = 0 (k = 4)
Avaliação Econômica
Função Objetivo
R = pAB W y
C = pB W
L = R – C = pAB W y - pB W
L = a - b x - c/x
OTIMIZAÇÃO: 2 EXTRATORES
Modelo Matemático
Restrições
1. Q(xo - x1) - W1 y1 = 0
2. y1 - k x1 = 0
3. Q(x1 -x2) - W2 y2 = 0
4. y2 - k x2 = 0
Avaliação Econômica
Função Objetivo
R = pAB (W1 y1 + W2 y2 )
C = pB (W1 + W2)
L = pAB (W1 y1 + W2 y2 ) - pB (W1 + W2)
L = a – b /x1– cx2 – d x1/x2
Observação: Restrições e Função Objetivo Não-Lineares
OTIMIZAÇÃO: TROCADOR DE CALOR
Modelo Matemático
Restrições
Avaliação Econômica
Função Objetivo
1. Q  W1Cp1 (T1  T2 )  0
2. Q  W3Cp3 (T4  T3 )  0
3. Q  UA  0
(T1  T4 )  (T2  T3 )
4.  
0
T  T4
ln 1
T2  T3
CT = Ccap + Cutil
 100 - T4
 ln
35
CT  4.469 
 65  T4


 A 
C cap  (0,10)(1.350)

 4,6 
0, 48
Cutil = (8.500)(5x10-5)W3






0,48

286.875
T4  15
Observação: Restrições e Função Objetivo Não-Lineares
OTIMIZAÇÃO: PROCESSO ILUSTRATIVO
Modelo
Restrições
01. f11 - f12 - f13 = 0
02. W15 - f23 = 0
03. f31 - f32 = 0
04. k – (3 + 0,04 Td) = 0
05. k – x13 / x12 = 0
06. (f11 Cp1 + f31 Cp3) (T1 - Td) + W15 Cp2l (T15 - Td) = 0
07. Vd -  (f11 /1 + W15/2 + f31/3) = 0
08. r - f13/f11 = 0
09. T2 – Td = 0
10. T3 – Td = 0
11. f13 - f14 = 0
12. f23 - f24 - W5 = 0
13. W6 - W7 = 0
14. W6 [3 + Cpv (T6 – T7)] - Qe = 0
15. Qe – [(f13Cp1 + f23Cp2l)(Te - T3) + W5 2] = 0
16. Qe - Ue Ae e = 0
17. e - (T6- Te) = 0
18. T4 – Te = 0
19. T5 – Te = 0
20. W8 - W9 = 0
21. W5 - W10 = 0
22. Qc - W8 Cp3 (T9 - T8) = 0
23. W5 [2 + Cp2g (T5 – T10)] - Qc = 0
24. Qc - Uc Ac c = 0
25. c - [(T5 - T9) - (T10 - T8)]/ln[(T5 - T9)/(T10 - T8)] = 0
26. W11 - W12 = 0
27. W10 - W13 = 0
28. Qr - W11 Cp3 (T12 - T11) = 0
29. Qr - W10 Cp2l (T10 - T13) = 0
30. Qr - Ur Ar r = 0
31. r - [(T10 - T12) - (T13 - T11)]/ln[(T10 - T12)/(T13 - T11)] = 0
32. W13 + W14 - W15 = 0
33. W13 (T15 - T13) + W14 (T15 - T14) = 0
34. f11 + f31 - W1 = 0
35. x11 - f11 / W1 = 0
36. f12 + f22 – W2 = 0
37. x12 - f12/ W2 = 0
38. f13 + f23 – W3 = 0
39. x13 - f13 / W3 = 0
40. f14 + f24 - W4 = 0
41. x14 - f14/ W4 = 0
PROCESSO ILUSTRATIVO
R = pAB f14 Fop $/a
Investimento:
Ib = Ibb (20/Pbb) Mb $
Id = Idb (Vd/Vdb) Md $
Ie = Ieb (Ae/Aeb) Me $
Ic = Icb (Ac/Acb) Mc $
Ir = Irb (Ar/Arb) Mr $
Avaliação Econômica
Função Objetivo
LE = 0,7 R – 0,8 C – 0,4 ISBL $/a
ISBL = fT fD fL (Ib + Id + Ie + Ic + Ir) $
Custos:
Cagua = pa (W8 + W11) $/h
Cvapor = pv W6 $/h
Csolvente = ps W14 $/h
Cbomba = 0,15 $/h
C = Fop (Cagua + Cvapor + Csolvente + Cbomba) $/a
Observação: Restrições e Função Objetivo Não-Lineares
1. DEFINIÇÃO
PROGRAMAÇÃO LINEAR
É uma área da Otimização que trata exclusivamente de
um tipo especial de problema:
Min f(x) = a1 x1 + a2 x2 + ...+ an xn
x
s.a.: g(x) = b1 x1 + b2 x2 + ...+ bn xn  0
O que se observa ???
A Função Objetivo e todas as Restrições são lineares
Problema de Programação Linear
2. APLICAÇÕES
Por ser muito peculiar parece não encontrar aplicações...
Pelo contrário: ele aparece no planejamento nas áreas de
transportes: rodoviário, ferroviário, fluvial, marítimo, aéreo.
comércio: distribuição de mercadorias por entrepostos;
estoques.
energia: produção e distribuição
militar: logística
produção industrial  nosso interesse
Outros...
3. PROBLEMA ILUSTRATIVO
Planejamento da Produção de uma Refinaria
(adaptado de Edgar & Himmelblau, “Optimization of Chemical Processes”, 1988)
3.1 ENUNCIADO
Uma refinaria pode receber dois tipos de óleo cru: O1 e O2.
A partir de cada um deles, ela pode produzir:
- gasolina (G)
- querosene (Q)
- óleo combustível (C)
- óleo residual (R)
Determinar
- quantos barris/dia a refinaria deve adquirir de cada óleo cru
(x1, x2)(b/d) [disponibilidade ilimitada]
- quanto a refinaria deve produzir, a partir de cada óleo, de
- gasolina (x31, x32)(b/d)
- querosene (x41, x42)(b/d)
- óleo combustível (x51, x52)(b/d)
- óleo residual (x61, x62)(b/d)
Fluxograma com Informações Necessárias
C1 = $/b
O1
p1 = ($/b)
x1 (b/d)
b3/b1
b4/b1
b5/b1
b6/b1
x31
x41
x51
x61
PRODUTOS
CRÚS
C2 = $/b
O2
x32
G x3(b/d) p3 = ($/b); x3max= (b/d)
x42
Q x4(b/d) p4 = ($/b); x4max= (b/d)
x52
C x5(b/d) p5 = ($/b); x5max= (b/d)
x62
R x6(b/d) p6=10 ($/b)
b3/b2
p2 = ($/b)
b4/b2
x2 (b/d)
b5/b2
b6/b2
3.2 DADOS FÍSICOS E ECONÔMICOS
Processamento do Óleo O1:
- preço do óleo
: p1 = 24 $/b
- custo de processamento: c1 = 0,50 $/b
- perfil de produção
: gasolina 80%, querosene 5%, óleo
combustível 10% e óleo residual 5%.
Processamento do Óleo O2:
- preço do óleo
: p2 = 15 $/b
- custo de processamento: c2 = 1,0 $/b
- perfil de produção
: gasolina 44%, querosene 10%, óleo
combustível 35% e óleo residual 10%.
Preços de venda
gasolina : p3 = 36 $/b
querosene : p4 = 24 $/b
óleo comb. : p5 = 21 $/b
óleo resid. : p6 = 10 $/b
Produção máxima de cada produto
x3max = 24.000 b/d (x3 = x31 + x32) (G)
x4max = 2.000 b/d (x4 = x41 + x42) (Q)
x5max = 6.000 b/d (x5 = x51 + x52) (C)
Dados resumidos no Fluxograma seguinte.
Fluxograma
C1 = 0,50 $/b
O1
p1 = 24 ($/b)
x1 (b/d)
0,80 b3/b1
0,05 b4/b1
0,10 b5/b1
0,05 b6/b1
x31
x41
x51
x61
PRODUTOS
CRÚS
C2 = 1 $/b
O2
p2 = 15 ($/b)
x2 (b/d)
x32
G x3(b/d) p3 = 36 ($/b); x3max= 24.000(b/d)
x42
Q x4(b/d) p4 = 24 ($/b); x4max= 2.000(b/d)
x52
C x5(b/d) p5 = 21 ($/b); x5max= 6.000(b/d)
x62
R x6(b/d) p6=10 ($/b)
0,44 b3/b2
0,10 b4/b2
0,36 b5/b2
0,10 b6/b2
No enfoque da Engenharia de Processos trata-se de um
problema de Análise de Processos.
Dimensionar uma dada estrutura
Trata-se de um problema de otimização
5.2 ELEMENTOS COMUNS EM PROBLEMAS DE OTIMIZAÇÃO
Todo problema de otimização exibe os seguintes elementos,
qualquer que seja a sua área de aplicação.
O conhecimento esses elementos e das suas características é de
fundamental importância para a solução do problema
5.2.1 Variáveis de Decisão
5.2.2 Critério
5.2.3 Função Objetivo
5.2.4 Restrições
5.2.5 Região Viável
3.3 MODELO
C1 = 0,50 $/b
O1
p1 = 24 ($/b)
x1 (b/d)
0,80 b3 / b1
0,05 b4 / b1
0,10 b5 / b1
0,05 b6 / b1
x31
x41
x51
x61
PRODUTOS
CRÚS
C2 = 1 $/b
O2
0,44 b3 / b2
p2 = 15 ($/b)
0,10 b4 / b2
x2 (b/d)
0,36 b5 / b2
x32
G x3(b/d)
p3 = 36 ($/b); x3max= 24.000(b/d)
x42
Q x4(b/d)
p4 = 24 ($/b); x4max= 2.000(b/d)
x52
C x5(b/d)
p5 = 21 ($/b); x5max= 6.000(b/d)
x62
R x6(b/d)
p6 = 10 ($/b)
0,10 b6 / b2
Modelo: Balanços Materiais
Gasolina
: 0,80 x1 + 0,44 x2 = x3
Querosene : 0,05 x1 + 0,10 x2 = x4
Óleo
: 0,10 x1 + 0,36 x2 = x5
Residual
: 0,05 x1 + 0,10 x2 = x6
3.4 BALANÇO DE INFORMAÇÃO E VARIÁVEIS DE PROJETO
C1 = 0,50 $/b
O1
p1 = 24 ($/b)
x1 (b/d)
0,80 b3/b1
0,05 b4/b1
0,10 b5/b1
0,05 b6/b1
x31
x41
x51
x61
CRÚS
C2 = 1 $/b
O2
0,44 b3/b2
p2 = 15 ($/b)
0,10 b4/b2
x2 (b/d)
0,36 b5/b2
x32
G x3(b/d)
x42
Q x4(b/d)
x52
C x5(b/d)
x62
R x6(b/d)
0,10 b6/b2
Modelo
Gasolina
: 0,80 x1 + 0,44 x2 = x3
Querosene : 0,05 x1 + 0,10 x2 = x4
Óleo
: 0,10 x1 + 0,36 x2 = x5
Residual
: 0,05 x1 + 0,10 x2 = x6
Balanço de Informação
G=V–N=6–4G=2
Ordenação das Equações
Gasolina
Querosene
Óleo
Residual
x1
*
x2
*
*
*
*
*
*
*
: 0,80 x1 + 0,44 x2 = x3
: 0,05 x1 + 0,10 x2 = x4
: 0,10 x1 + 0,36 x2 = x5
: 0,05 x1 + 0,10 x2 = x6
x3
*
x4
x5
x6
*
*
Variáveis de Projeto: x1 e x2
*
3.5 CRITÉRIO E FUNÇÃO OBJETIVO
C1 = 0,50 $/b
0,80 b3/b1
O1
p1 = 24 ($/b)
x1 (b/d)
0,05 b4/b1
0,10 b5/b1
0,05 b6/b1
x31
x41
x51
x61
CRÚS
C2 = 1 $/b
O2
0,44 b3/b2
p2 = 15 ($/b)
0,10 b4/b2
x2 (b/d)
0,36 b5/b2
0,10 b6/b2
Função Objetivo
L = R – CMP - CP
x32
G x3(b/d)
x42
Q x4(b/d)
x52
C x5(b/d)
x62
R x6(b/d)
p3 = 36 ($/b)
p4 = 24 ($/b)
p5 = 21 ($/b)
p6 = 10 ($/b)
Receita (R): 36 x3 + 24 x4 + 21 x5 + 10 x6
Custos de MatPrim (CMP) : 24 x1 + 15 x2
Custos Processamento (CP).: 0,50 x1 + x2
L = 36 x3 + 24 x4 + 21 x5 + 10 x6 - 24 x1 - 15 x2 - 0,50 x1 - x2
3.6 RESTRIÇÕES
Relembrando ...
5.2.3 Restrições
São os limites impostos pelas leis naturais às variáveis do processo.
Há dois tipos de restrições:
(a) restrições de igualdade : h(x) = 0
São as equações do próprio modelo matemático.
(b) restrições de desigualdade: g (x)  0
São os limites impostos às Variáveis de Projeto
A presença de restrições pode alterar a solução de um problema
C1 = 0,50 $/b
O1
p1 = 24 ($/b)
x1 (b/d)
0,80 b3/b1
0,05 b4/b1
0,10 b5/b1
0,05 b6/b1
x31
x41
x51
x61
PRODUTOS
CRÚS
C2 = 1 $/b
O2
0,44 b3/b2
p2 = 15 ($/b)
0,10 b4/b2
x2 (b/d)
0,36 b5/b2
x32
G x3(b/d)
p3 = 36($/b); x3max= 24.000(b/d)
x42
Q x4(b/d)
p4 = 24($/b); x4max= 2.000(b/d)
x52
C x5(b/d)
p5 = 21($/b); x5max= 6.000(b/d)
x62
R x6(b/d)
p6 = 10($/b)
0,10 b6/b2
Restrições de Igualdade
Gasolina
: 0,80 x1 + 0,44 x2 = x3
Querosene : 0,05 x1 + 0,10 x2 = x4
Óleo
: 0,10 x1 + 0,36 x2 = x5
Residual
: 0,05 x1 + 0,10 x2 = x6
Restrições de Desigualdade
Gasolina
: x3  24.000
Querosene : x4  2.000
Combustível : x5  6.000
Óleos crus : x1  0 e x2  0
Incorporando as Restrições à Função Objetivo
Exemplo: dimensionamento de um extrator
W kg B/h
Q = 10.000 kgA/h
xo= 0,02 kg AB/kg A
x kgB/kgA
rafinado
y kg AB/kg B
extrato
Modelo Matemático:
1. Q (xo - x) - W y = 0
2. y - k x = 0 (k = 4)
Balanço de Informação:
V = 5, N = 2, C = 2, M = 0
G = 1 (otimização)
Avaliação Econômica:
L=R-C
R = pAB W y
C = pB W
pAB = 0,4 $/kgAB : pB = 0,01 $/kgB
Função Objetivo: L = R - C = pAB W y - pB W
Incorporando as Restrições de Igualdade ordenadas
à Função Objetivo
(viável em problemas simples)
x
y,
2. y = k x
1. W = Q (xo - x)/y W
L
L = pAB W y - pB W
x
L
L = a - b x - c/x
De modo semelhante, no problema ilustrativo...
Incorporando as Restrições
Gasolina
Querosene
Óleo
Residual
: 0,80 x1 + 0,44 x2 = x3
: 0,05 x1 + 0,10 x2 = x4
: 0,10 x1 + 0,36 x2 = x5
: 0,05 x1 + 0,10 x2 = x6
ao Lucro
L = 36 x3 + 24 x4 + 21 x5 + 10 x6 - 24 x1 - 15 x2 - 0,50 x1 - x2
Resulta
L(x) = 8,1 x1 + 10,8 x2
Enunciado Formal do Problema
Max L(x) = 8,1 x1 + 10,8 x2
{x1, x2}
s.a.: 0,80 x1 + 0,44 x2  24.000
0,05 x1 + 0,10 x2  2.000
0,10 x1 + 0,36 x2  6.000
x1  0
x2  0
Examinando a Função Objetivo
L(x) = 8,1 x1 + 10,8 x2 (linear)
x2 = L / 10,8 – (8,1 / 10,8) x1
(família de retas)
20
648.000
324.000
x2
243.000
10
162.000
(1.000 b/d)
81.000
0
0
10
20
x1 (1.000 b/d)
30
40
3.7 REGIÃO VIÁVEL
É a região do espaço delimitada pelas restrições
0,80 x1 + 0,44 x2  24.000 (gasolina)
0,05 x1 + 0,10 x2  2.000 (querosene)
0,10 x1 + 0,36 x2  6.000 (óleo)
x1  0
x2  0
Forma geral:
a x1 + bx2  c
Re-escrevendo:
x2  - (a/b) x1 + (c/b)
São retas de inclinação negativa (a/b) com
interseção no eixo x1 = 0: x2 = (c/b)
interseção no eixo x2 = 0: x1 = (c/a)
Colocando as restrições
0,80 x1 + 0,44 x2  24.000 (gasolina)
0,05 x1 + 0,10 x2  2.000 (querosene)
0,10 x1 + 0,36 x2  6.000 (óleo)
x1  0
x2  0
Na forma
x2  - (a/b) x1 + (c/b)
resultam
x2  - 1,818 x1 + 54.545 (gasolina) (c/a) = 30.000)
x2  - 0,50 x1 + 20.000 (querosene) (c/a) = 40.000)
x2  - 0,28x1 + 16.667 (óleo)
(c/a) = 60.000)
Os pontos A, B, C, D e E são vértices da Região Viável
Desempenham um papel fundamental na resolução do problema.
20
c/b
B
óleo
x2
10
C
querosene
D
região viável
convexa !
(1.000 b/d)
0
A
gasolina
0
10
20
x1 (1.000 b/d)
E
30
c/a
40
x2  - (a/b) x1 + (c/b)
c/b
x2  - 1,818 x1 + 54.545 (gasolina) (c/a) = 30.000)
x2  - 0,50 x1 + 20.000 (querosene) (c/a) = 40.000)
x2  - 0,28x1 + 16.667 (óleo)
(c/a) = 60.000)
20
c/b
O menor c/b é vértice !
B
óleo
x2
10
C
querosene
D
região viável
convexa !
(1.000 b/d)
0
A
gasolina
0
10
20
x1 (1.000 b/d)
E
30
c/a
40
3.8 RESOLUÇÃO
Solução Ótima
É a solução viável com o Lucro máximo
Em duas dimensões, a identificação visual da Solução Ótima é
imediata.
20
B
243.000
324.000
C
162.000
x2
(1.000 b/d)
óleo
10
querosene
D
26.207
81.000
Solução (D):
(26.207, 6.897)
(L=286.764)
gasolina
0
A
E
0
10
20
x1
(1.000 b/d)
6.897
30
40
Com outros valores dos parâmetros físicos e econômicos, a
inclinação da Função Objetivo seria outra e a solução seria outra.
20
B
óleo
x2
10
C
Solução (C):
(14.000, 13.000)
(L = 637.000)
querosene
D
(1.000 b/d)
gasolina
0
A
E
0
10
20
x1 (1.000 b/d)
30
40
Pode-se provar que
A Solução Ótima se localiza sempre num dos Vértices da
Região Viável
20
B
óleo
x2
10
C
Solução (C):
(14.000, 13.000)
(L = 637.000)
querosene
D
(1.000 b/d)
gasolina
0
A
E
0
10
20
x1 (1.000 b/d)
30
40
Como localizar a solução em problemas complexos sem o
recurso visual?
Criando um procedimento numérico que
simule o exame dos vértices
No exemplo, apenas 5 pontos
20
B
243.000
C
324.000
óleo
x2
10
querosene
162.000
D
(1.000 b/d)
81.000
0
A
Solução:
(26.207, 6.897)
(L=286.764)
gasolina
E
0
0
10
Origem: solução trivial
20
x1
(1.000 b/d)
30
(como???)
40
Primeiro, há que se caracterizar numericamente os vértices
Se encontram na fronteira da região viável
São interseções de duas restrições
Correspondem à produção máxima de dois produtos
20
B
243.000
C
324.000
óleo
x2
10
querosene
162.000
D
(1.000 b/d)
81.000
0
A
Solução:
(26.207, 6.897)
(L=286.764)
gasolina
E
0
0
10
Origem: solução trivial
20
x1
(1.000 b/d)
30
40
Uma vez caracterizados os vértices, o procedimento numérico
de busca deve se restringir:
(a) à fronteira da Região Viável
(b) uma vez na fronteira, à interseção de duas restrições
Como restringir a busca à fronteira da região viável ?
Transformando as
restrições de desigualdade em
restrições de igualdade.
Relembrando...
Restrições de Desigualdade
2,0
0,4
0,6
1,5
0,8
1.0
A
x2 1,0
0,5
Solução irrestrita: A
Solução restrita : B
B
0,0
0,0
0,5
1,0
1,5
2,0
x1
f ( x )  1  ( x1  1) 2  ( x1  1)( x 2  1)  ( x 2  1) 2
g ( x ) = x 2 + x 2 - 0 , 25  0
1
1
2 g (x) = x  0
2
1
g3(x) = x2  0
São válidos apenas os pontos localizados
sobre a fronteira ou no interior da região.
Restrições de Igualdade (solução sobre a curva)
2,0
0,4
0,6
1,5
0,8
1.0
A
x 1,0
2
0,5
B
0,0
0,0
h(x) = 0
0,5
1,0
x
1,5
2,0
1
f ( x )  1  ( x 1  1) 2  ( x 1  1)( x 2  1)  ( x 2  1) 2
h ( x) = x 12 + x 22 - 0, 25 = 0
g2(x) = x1  0
g3(x) = x2  0
Solução Irrestrita: A
Solução Restrita : B
São válidos apenas os pontos localizados sobre a fronteira da região.
Ou seja
Transformando as restrições de desigualdade em restrições de
igualdade, o interior da região é eliminado da busca, que fica
restrita à sua fronteira (periferia).
20
B
243.000
C
324.000
óleo
x2
10
querosene
162.000
D
(1.000 b/d)
81.000
0
A
Solução:
(26.207, 6.897)
(L=286.764)
gasolina
E
0
0
10
x1
(1.000 b/d)
20
30
40
Esta transformação pode ser operada com o auxílio do conceito
Folga
É a diferença entre a produção de um produto e a sua
produção máxima
Serve para medir a “distância” para
produção máxima
A todo ponto (x1, x2) no interior da Região Viável corresponde uma
folga, fi pois a produção de cada produto é inferior à máxima.
Exemplo: ponto I (folgas na produção de gasolina, querosene e óleo).
Gasolina
: 0,80 x1 + 0,44 x2 = x3 = 12.400 (24.000)
Querosene : 0,05 x1 + 0,10 x2 = x4 = 1.500 (2.000)
: 0,10 x1 + 0,36 x2 = x5 = 4.600 (6.000)
F Óleo
20
B
óleo
C
G
x2
I
10
querosene
D
x1 = x2 = 10
(1.000 b/d)
0
A
f1 = 11.600 b/d
f2 =
500 b/d
f3 = 1.400 b/d
0
10
gasolina
20
x1 (1.000 b/d)
E
30
H
40
A todo ponto (x1, x2) localizado sobre um restrição corresponde uma
folga zero, pois a produção do produto correspondente é a máxima.
Exemplo: ponto J (produção máxima de óleo = 6.000 b/d: f3 = 0).
Gasolina
: 0,80 x1 + 0,44 x2 = x3= 14.116 (24.000)
Querosene : 0,05 x1 + 0,10 x2 = x4 = 1.809 (2.000)
Óleo
: 0,10 x1 + 0,36 x2 = x5 = 6.000 (6.000)
F
20
B
óleo
13,89
x2
J
C
x1 = 10
x2 = 13,89 querosene
10
D
f1 = 9.884 b/d
f2 =
110 b/d
f3 =
0 b/d
(1.000 b/d)
0
A
0
10
G
gasolina
20
x1 (1.000 b/d)
E
30
H
40
A todo ponto (x1, x2) localizado sobre um vértice correspondem
2 folgas zero pois a produção dos dois produtos é a máxima
Exemplo: ponto C (produção máxima de óleo e de querosene)
Gasolina
: 0,80 x1 + 0,44 x2 = x3= 16.600 (24.000)
Querosene : 0,05 x1 + 0,10 x2 = x4 = 2.000 (2.000)
: 0,10 x1 + 0,36 x2 = x5 = 6.000 (6.000)
FÓleo
20
B
x2
C
óleo
15,0
x1 = 12,5
x2 = 15,0
10
G
querosene
D
f1 = 7.400 b/d
f2 =
0 b/d
f3 =
0 b/d
(1.000 b/d)
0
A
0
gasolina
10 12,5
20
x1 (1.000 b/d)
E
30
H
40
Então, nos vértices, duas folgas são iguais a zero
20
B
243.000
C
324.000
óleo
x2
10
querosene
162.000
D
(1.000 b/d)
81.000
0
A
gasolina
E
0
0
10
Origem: solução trivial
A
x1 = 0
x2 = 0
f1 = 24.000
f2 = 2.000
f3 = 6.000
B
x1 = 0
x2 = 16.667
f1 = 16.667
f2 =
333
f3 = 0
C
x1 = 15.000
x2 = 12.500
f1 = 6.500
f2 = 0
f3 = 0
20
x1
30
40
(1.000 b/d)
D
x1 = 26.207
x2 = 6.897
f1 = 0
f2 = 0
f3 =
897
E
x1 = 30.000
x2 = 0
f1 = 0
f2 =
500
f3 = 3.000
Caracterizados os vértices em função das folgas, resta:
(a) incorporar as folgas ao problema
(b) examinar os pontos em que duas folgas são zero (vértice)
As folgas são incorporadas ao problema transformando
restrições de desigualdade em restrições de igualdade
Max L(x) = 8,1 x1 + 10,8 x2
{x1, x2}
s.a.: 0,80 x1 + 0,44 x2  24.000 (gasolina)
0,05 x1 + 0,10 x2  2.000 (querosene)
0,10 x1 + 0,36 x2  6.000 (óleo)
x1  0
x2  0
Incorporando as folgas fi ao problema
Max L(x) = 8,1 x1 + 10,8 x2
{x1, x2}
s.a.: 0,80 x1 + 0,44 x2 + f1
0,05 x1 + 0,10 x2 + f2
0,10 x1 + 0,36 x2 + f3
x1  0
x2  0
= 24.000 (gasolina)
= 2.000 (querosene)
= 6.000(óleo)
Comparando o Problema Original com o Problema Modificado
Problema original (2 variáveis)
3 restrições de desigualdade e 2 de não negatividade
Max L(x) = 8,1 x1 + 10,8 x2
{x1, x2}
s.a.: 0,80 x1 + 0,44 x2  24.000 (gasolina)
0,05 x1 + 0,10 x2  2.000 (querosene)
0,10 x1 + 0,36 x2  6.000 (óleo)
x1  0
x2  0
Busca na periferia e no interior da RV
Problema modificado (5 variáveis: 2 de projeto, 3 calculadas)
3 restrições de igualdade e 2 de não negatividade
Max L(x) = 8,1 x1 + 10,8 x2
{x1, x2}
s.a.:0,80 x1 + 0,44 x2 + f1 = 24.000 (gasolina)
0,05 x1 + 0,10 x2 + f2 = 2.000 (querosene)
0,10 x1 + 0,36 x2 + f3 = 6.000 (óleo)
x1  0
x2  0
Busca restrita à periferia da RV
As restrições de igualdade formam agora um sistema de
equações lineares.
0,80 x1 + 0,44 x2 +f1 = 24.000 (gasolina)
0,05 x1 + 0,10 x2 +f2 = 2.000 (querosene)
0,10 x1 + 0,36 x2 +f3 = 6.000 (óleo)
V = 5 : N = 3 : G = 2 !!!
Trata-se de um problema de otimização em que só interessam
soluções com duas folgas iguais a zero (vértices).
x1 e x2 podem ser consideradas folgas em relação à produção
máxima dos 3 produtos.
x1 = x2 = 0 correspondem a um vértice, que é a origem, onde as
folgas são: f1 = 24.000, f2 = 2.000, f3 = 6.000.
É a Solução Trivial do problema, em que nada se compra e nada
se produz  L = 0
20
B
243.000
C
324.000
óleo
x2
10
querosene
162.000
D
(1.000 b/d)
81.000
0
A
gasolina
E
0
0
10
Origem: solução trivial
A
x1 = 0
x2 = 0
f1 = 24.000
f2 = 2.000
f3 = 6.000
B
x1 = 0
x2 = 16.667
f1 = 16.667
f2 =
333
f3 = 0
C
x1 = 15.000
x2 = 12.500
f1 = 6.500
f2 = 0
f3 = 0
20
x1
30
40
(1.000 b/d)
D
x1 = 26.207
x2 = 6.897
f1 = 0
f2 = 0
f3 =
897
E
x1 = 30.000
x2 = 0
f1 = 0
f2 =
500
f3 = 3.000
Falta, agora, manipular as folgas simulando a visita aos vértices...
A
x1 = 0
x2 = 0
f1 = 24.000
f2 = 2.000
f3 = 6.000
B
x1 = 0
x2 = 16.667
f1 = 16.667
f2 =
333
f3 = 0
C
x1 = 15.000
x2 = 12.500
f1 = 6.500
f2 = 0
f3 = 0
D
x1 = 26.207
x2 = 6.897
f1 = 0
f2 = 0
f3 =
897
E
x1 = 30.000
x2 = 0
f1 = 0
f2 =
500
f3 = 3.000
Para isso, é necessário reescrever o sistema de equações em
função dos pares (x1,f3), (f2,f3), (f1,f2) e (x2, f1).
A
x1 = 0
x2 = 0
f1 = 24.000
f2 = 2.000
f3 = 6.000
B
x1 = 0
x2 = 16.667
f1 = 16.667
f2 =
333
f3 = 0
C
x1 = 15.000
x2 = 12.500
f1 = 6.500
f2 = 0
f3 = 0
D
x1 = 26.207
x2 = 6.897
f1 = 0
f2 = 0
f3 =
897
E
x1 = 30.000
x2 = 0
f1 = 0
f2 =
500
f3 = 3.000
Exemplo
Forma Original
0,80 x1 + 0,44 x2 + f1 = 24.000 (gasolina)
0,05 x1 + 0,10 x2 + f2 = 2.000 (querosene)
0,10 x1 + 0,36 x2 + f3 = 6.000 (óleo)
Uma das formas equivalentes
0,68 x1 – 1,22 f3 + f1
0,02 x1 - 0,78 f3 + f2
0,28 x1 + 2,78 f3 + x2
= 16.667 (gasolina)
=
333 (querosene)
= 16.667 (óleo)
Na primeira, com x1 = 0 e x2 = 0  vértice A (origem)
Na segunda, com x1 = 0 e f3 = 0  vértice B
Sob cada forma, atribuindo-se o valor zero e essas variáveis,
obtém-se a solução no vértice correspondente.
A
x1 = 0
x2 = 0
f1 = 24.000
f2 = 2.000
f3 = 6.000
B
x1 = 0
x2 = 16.667
f1 = 16.667
f2 =
333
f3 = 0
C
x1 = 15.000
x2 = 12.500
f1 = 6.500
f2 = 0
f3 = 0
D
x1 = 26.207
x2 = 6.897
f1 = 0
f2 = 0
f3 =
897
E
x1 = 30.000
x2 = 0
f1 = 0
f2 =
500
f3 = 3.000
20
x1 = 0
f2 = 333
f3 = 0
B
243.000
C
10
x2
324.000
óleo
querosene
162.000
D
(1.000 b/d)
81.000
0
A
Solução:
(26.207, 6.897)
(L=286.759)
gasolina
E
0
0
10
x1
20
30
40
(1.000 b/d)
A
x1 = 0
x2 = 0
f1 = 24.000
f2 = 2.000
f3 = 6.000
B
x1 = 0
x2 = 16.667
f1 = 16.667
f2 =
333
f3 = 0
C
x1 = 15.000
x2 = 12.500
f1 = 6.500
f2 = 0
f3 = 0
D
x1 = 26.207
x2 = 6.897
f1 = 0
f2 = 0
f3 =
897
E
x1 = 30.000
x2 = 0
f1 = 0
f2 =
500
f3 = 3.000
3.9 Algoritmo SIMPLEX
ALGORITMO SIMPLEX
Simula, numericamente, o exame de cada vértice em busca da
solução ótima.
O SIMPLEX parte da origem e visita os demais vértices
invertendo sucessivamente o papel de 2 variáveis: uma de
projeto e outra calculada.
Para cada inversão, calcula a Função Objetivo
A
x1 = 0
x2 = 0
f1 = 24.000
f2 = 2.000
f3 = 6.000
B
x1 = 0
x2 = 16.667
f1 = 16.667
f2 =
333
f3 = 0
C
x1 = 15.000
x2 = 12.500
f1 = 6.500
f2 = 0
f3 = 0
D
x1 = 26.207
x2 = 6.897
f1 = 0
f2 = 0
f3 =
897
E
x1 = 30.000
x2 = 0
f1 = 0
f2 =
500
f3 = 3.000
ALGORITMO SIMPLEX
Simula, numericamente, o exame de cada vértice em busca da
solução ótima.
O SIMPLEX parte da origem e visita os demais vértices
invertendo sucessivamente o papel de 2 variáveis: uma de
projeto e outra calculada.
O Algoritmo Inverte os papéis das variáveis, re-escrevendo
sistema de equações com uma outra base (variáveis de projeto).
A
x1 = 0
x2 = 0
f1 = 24.000
f2 = 2.000
f3 = 6.000
B
x1 = 0
x2 = 16.667
f1 = 16.667
f2 =
333
f3 = 0
C
x1 = 15.000
x2 = 12.500
f1 = 6.500
f2 = 0
f3 = 0
D
x1 = 26.207
x2 = 6.897
f1 = 0
f2 = 0
f3 =
897
E
x1 = 30.000
x2 = 0
f1 = 0
f2 =
500
f3 = 3.000
ALGORITMO SIMPLEX
Private Sub EXECUTAR_Click() '
LerTableau
Do
ColunaQueSai
If Convergir = True Then Exit Sub
LinhaQueEntra
Pivotear
Loop
End Sub
A inversão é executada aplicando o Algoritmo de Gauss-Jordan
à Matriz Aumentada (Tableau) do sistema
0,80 x1 + 0,44 x2 + f1 = 24.000 (gasolina)
0,05 x1 + 0,10 x2 + f2 = 2.000 (querosene)
0,10 x1 + 0,36 x2 + f3 = 6.000 (óleo)
L(x) = 8,1 x1 + 10,8 x2
x1
x2
f1
f2
f3
0,80
0,44
1
0
0
24.000
0,05
0,10
0
1
0
2.000
0,1
0,36
0
0
1
6.000
8,10
10,80
0
0
0
L
O Lucro é incluído na matriz para que os seus coeficientes sofram as
mesmas transformações e fique expresso automaticamente na nova
base.
Exemplo de resultado da aplicação do Algoritmo de GaussJordan trocando x2 por f3.
0,68 x1 + f1 – 1,22 f3 = 16.667
0,022 x1 + f2 – 0,278 f3 = 2.000
0,278 x1 + x2 – 2,78 f3 = 6.000
L(x) = 5,1 x1 – 30 f3 = 180.000
0,80 x1 + 0,44 x2 + f1 = 24.000
0,05 x1 + 0,10 x2 + f2 = 2.000
0,10 x1 + 0,36 x2 + f = 6.000
3
L(x) = 8,1 x1 + 10,8 x2
x1
x2
f1
f2
f3
0,80
0,44
1
0
0
24.000
0,05
0,10
0
1
0
2.000
0,1
0,36
0
0
1
6.000
8,10
10,80
0
0
0
L
x1
x2
f1
f2
f3
0,678
0
1
0
-1,222
16.667
0,022
0
0
1
- 0,278
333,33
0,278
1
0
0
2,778
16.667
5,10
0
0
0
-30
L - 180.000
O Algoritmo de Gauss-Jordan encontra-se explicado no arquivo
Sistemas de Equações
Encontrado no site logo abaixo deste de Programação Linear
Critério para a troca de papéis
De variável de projeto para variável calculada
Observe-se o Lucro:
L(x) = 8,1 x1 + 10,8 x2
Para x1 = x2 = 0  L = 0
Para x1 > 0 e/ou x2 > 0  L > 0
Seleciona-se a variável de projeto de maior coeficiente
positivo na expressão do Lucro (a que mais contribui, naquela
iteração, para o aumento do Lucro).
Então, x2 é a escolhida e passa a ser variável calculada: x2  x2
x1
x2
f1
f2
f3
0,80
0,05
0,44
0,10
1
0
0
1
0
0
24.000
2.000
0,1
0,36
0
0
1
6.000
8,10
10,80
0
0
0
L
x2  x2
Coluna pivot
De variável calculada para variável de projeto
Para cada linha, identifica-se o menor valor de c/b, sendo b o
valor do coeficiente constante (coluna da direita) e c o valor na
coluna da variável de projeto escolhida acima (no caso, x2).
O menor valor de c/b corresponde à interseção mais próxima
da origem e, consequentemente, pertencente à Região Viável
0,80 x1 + 0,44 x2  24.000 (gasolina)
0,05 x1 + 0,10 x2  2.000 (querosene)
0,10 x1 + 0,36 x2  6.000 (óleo)
c/b=24.000 / 0,44 = 54.545
c/b = 2.000 / 0,10 = 20.000
c/b = 6.000 / 0,36 = 6.000
Então, f3 passa a ser variável de projeto: f3  f3
Região Viável
0,80 x1 + 0,44 x2  24.000 (gasolina)
0,05 x1 + 0,10 x2  2.000 (querosene)
0,10 x1 + 0,36 x2  6.000 (óleo)
(c/a) = 30.000 : (c/b) = 54.545
(c/a) = 40.000 : (c/b) = 20.000
(c/a) = 60.000 : (c/b) = 16.667
Das 3 interseções com x1 = 0, B é o vértice porque é o de menor (c/b)
Das 3 interseções com x2 = 0, E é o vértice porque é o de menor (c/a)
20
menor (c/b)
Qualquer ponto no interior ou sobre a fronteira
da Região Viável é uma Solução Viável
B
óleo
x2
10
C
querosene
D
região convexa !
(1.000 b/d)
0
A
gasolina
0
10
20
x1 (1.000 b/d)
E
30
40
f3  f 3
Linha pivot
x1
x2
f1
f2
f3
0,80
0,05
0,44
0,10
1
0
0
1
0
0
24.000
2.000
0,1
0,36
0
0
1
6.000
8,10
10,80
0
0
0
L
x2  x2
Coluna pivot
A mudança de base é executada pela operação de pivoteamento
utilizada pelo Algoritmo de Gauss-Jordan para a solução de
sistemas de equações lineares.
f3  f 3
Linha pivot
x1
x2
f1
f2
f3
0,80
0,05
0,44
0,10
1
0
0
1
0
0
24.000
2.000
0,1
0,36
0
0
1
6.000
8,10
10,80
0
0
0
L
x2  x2
Coluna pivot
A linha do menor c/b é denominada “linha pivot”
A coluna da variável que passa a calculada é denominada
“coluna pivot”.
O elemento da interseção é denominado “pivot”
f3  f 3
x1
x2
f1
f2
f3
0,80
0,44
1
0
0
24.000
0,05
0,10
0
1
0
2.000
0,1
0,36
0
0
1
6.000
8,10
10,80
0
0
0
L
x2  x2 Primeiro passo: divide-se a linha pivot pelo pivot.
A eq. 3 era: f3 =6.000 – 0,10 x1 – 0,36 x12
A eq. 3 já fica: x2 = 16.667 – 0,28 x1 – 2,78 f3
x1
x2
f1
f2
f3
0,80
0,44
1
0
0
24.000
0,05
0,10
0
1
0
2.000
0,278
1
0
0
2,778
8,10
10,80
0
0
0
16.667
L
x1
x2
f1
f2
f3
0,80
0,44
1
0
0
24.000
0,05
0,10
0
1
0
2.000
0,278
1
0
0
2,778
16.667
8,10
10,80
0
0
0
L
Em seguida, o pivoteamento: aij = aij – aip a3pj
Ex.: a11= 0,80 – 0,278 x 0,44 = 0,678
x1
x2
f1
f2
f3
0,678
0,44
1
0
- 1,222
0,022
0,10
0
1
- 0,278
333,33
0,278
1
0
0
2,778
16.667
5,10
10,80
0
0
- 30
16.667
L - 180.000
Chega-se, assim, ao Ponto B
x1
x2
f1
f2
f3
0,678
0
1
0
-1,227
16.667
0,022
0
0
1
- 0,278
333,33
0,278
1
0
0
2,778
16.667
5,10
0
0
0
-30
L - 180.000
5,10 x1 – 30 x2 = L – 180.000
Com x1 = f3 = 0  L = 180.000
Ponto B
Com x1 = f3 = 0
L = 180.000
x1
x2
f1
f2
f3
0,678
0
1
0
-1,227
16.667
0,022
0
0
1
- 0,278
333,33
0,278
1
0
0
2,778
16.667
5,10
0
0
0
-30
L - 180.000
20
B
243.000
óleo
x2
10
C
324.000
querosene
162.000
D
(1.000 b/d)
81.000
0
A
gasolina
E
0
0
10 x
20
(1.000 b/d)
30
40
O pivoteamento corresponde à migração de um vértice a outro
sobre a restrição.
20
B
243.000
óleo
x2
10
C
324.000
querosene
162.000
D
(1.000 b/d)
81.000
0
A
gasolina
E
0
0
10 x
20
(1.000 b/d)
30
40
x1
x2
f1
f2
f3
c/b = 24.510 0,678
0
1
0
-1,227
16.667
0,022
0
0
1
- 0,278
333,33
0,278
1
0
0
2,778
16.667
5,10
0
0
0
-30
L - 180.000
f2  f2
c/b = 16.667
c/b = 59.525
x1  x1
Divide-se a linha do pivot pelo pivot. Pivoteamento: aij = aij – aip apj
x1
x2
f1
f2
f3
0
0
1
-30,5
7,25
6.500
1
0
0
45
-12,5
15.000
0
1
0
-12,5
6,25
12.500
0
0
0
- 229,5
3,75
L – 256.500
Com f2 = f3 = 0  L = 256.500
Ponto C
Com f2 = f3 = 0
L = 256.500
20
B
x1
x2
f1
f2
f3
0
0
1
-30,5
7,25
6.500
1
0
0
45
-12,5
15.000
0
1
0
-12,5
6,25
12.500
0
0
0
- 229,5
3,75
L – 256.500
243.000
óleo
x2
10
C
324.000
querosene
162.000
D
(1.000 b/d)
81.000
0
A
gasolina
E
0
0
10 x
20
(1.000 b/d)
30
40
x1
x2
f1
f2
f3
f1  f 1
0
0
1
-30,5
7,25
6.500
c/b = - 1.202
1
0
0
45
-12,5
15.000
c/b = 1.983
0
1
0
-12,5
6,25
12.500
0
0
0
- 229,5
3,75
L – 256.500
c/b = 867
f3  f3
Divide-se a linha do pivot pelo pivot. Pivoteamento: aij = aij – aip apj
x1
x2
f1
f2
f3
0
0
0,138
4,207
1
867
1
0
1,724
-7,586
0
26.207
0
1
- 0,862
13,793
0
6.897
0
0
- 4,655
-86,517
0
L – 286.759
Com f1 = f2 = 0  L = 286.759
Todos os coeficientes de L negativos
Nenhuma variável para entrar  FIM
x1
x2
f1
f2
f3
0
0
0,138
4,207
1
867
1
0
1,724
-7,586
0
26.207
0
1
- 0,862
13,793
0
6.897
0
0
- 4,655
-86,517
0
L – 286.759
SOLUÇÃO
Ponto D
Com f1 = f2 = 0
L = 286.759
20
B
x1
x2
f1
f2
f3
0
0
0,138
4,207
1
867
1
0
1,724
-7,586
0
26.207
0
1
- 0,862
13,793
0
6.897
0
0
- 4,655
-86,517
0
L – 286.759
243.000
óleo
x2
10
C
324.000
Solução:
x1= 26.207
x2 = 6.897
gasolina = 24.000 (f1 = 0)
querosene = 2.000 (f2 = 0)
óleo = 5.133 (f3 = 867)
querosene
L = 286.759
162.000
D
(1.000 b/d)
81.000
0
A
gasolina
E
0
0
10 x
20
(1.000 b/d)
30
40
Fluxograma com a Solução
PRODUTOS
C1 = 0,50 $/b
O1
p1 = 24 ($/b)
x1 = 26.207(b/d)
x32= 20.965 b/d
p3 = 36 ($/b); x3max= 24.000(b/d)
x41 = 1.310 b/d
p4 = 24 ($/b); x4max= 2.000(b/d)
0,10 b5/b1
x51 = 2.620 b/d
p5 = 21 ($/b); x5max= 6.000(b/d)
0,05 b6/b1
x61 = 1.310 b/d
p6=10 ($/b)
0,80 b3/b1
0,05 b4/b1
CRÚS
C2 = 1 $/b
O2
0,44 b3/b2
p2 = 15 ($/b)
0,10 b4/b2
x2 = 6.897(b/d)
0,36 b5/b2
0,10 b6/b2
x32 = 3.035 b/d
G x3 = 24.000 ( b/d)
x42= 690 b/d
Q X4 = 2.000 (b/d)
x52= 2.843 b/d
C x5= 5.103 (b/d) folga = 897 b/d
x62= 690 b/d
R x6= 2.000 (b/d)
L = 286.764 $/a
PROBLEMA COM RESTRIÇÕES DO TIPO

Exemplo
Min C = x2 – 6 x1
s.a. : 4 x1 + x2  21
- x1 + x2  1
2 x1 + 3 x2  13 !!!
PROBLEMA
Min C = x2 – 6 x1
s.a.: 4 x1 + x2  21
- x1 + x2  1
2 x1 + 3 x2  13
REGIÃO VIÁVEL
6
B
5
4
ABC
A
3
Convexa
2
C
1
D
0
0
1
2
3
4
5
6
PROBLEMA
Min C = x2 – 6 x1
s.a.: 4 x1 + x2  21
- x1 + x2  1
2 x1 + 3 x2  13 (!!!)
Matriz Aumentada (Tableau)
Restrições  : folgas positivas
Restrições = : folgas zero
Restrições  : folgas negativas
x1
4
-1
x2
1
1
f1
1
0
f2
0
1
2
-6
3
1
0
0
0
0
f3
0
0
-1
0
C
21
1
13
C-0
A origem não pertence à Região Viável
Como iniciar o SIMPLEX?
6
B
5
4
A
3
2
C
1
0
0
1
2
3
4
5
6
Há que se selecionar um vértice para servir de ponto de partida
para o SIMPLEX.
PROCEDIMENTO
Método das Duas fases
Fase 1: Cria-se e resolve-se um Problema Artificial.
6
B
5
A solução do Problema
Artificial é o vértice da Região
Viável que servirá de ponto de
partida para a solução do
Problema Original.
4
A
3
2
C
1
D
0
0
1
2
3
4
5
6
Fase 2: resolve-se o Problema Original a partir da solução do
Problema Artificial
PROBLEMA ARTIFICIAL
x1
4
-1
x2
1
1
f1
1
0
f2
0
1
f3
0
0
C
21
1
2
-6
3
1
0
0
0
0
-1
0
13
C-0
(a) para cada folga negativa fj, cria-se uma variável artificial xja
que é incorporada ao Tableau

x1
4
-1
x2
1
1
f1
1
0
f2
0
1
f3
0
0
x1a
0
0
C
21
1
2
-6
3
1
0
0
0
0
-1
0
1
0
13
C-0
x1
4
-1
2
-6
x2
1
1
3
1
f1
1
0
0
0
f2
0
1
0
0
f3
0
0
-1
0
x1a
0
0
1
0
C
21
1
13
C-0
(b) cria-se, também, uma Função Objetivo Artificial: Ca =  xja
Da linha 3: Ca = x1a = 13 – 2x1 – 3x2 + f3
x1
4
-1
2
-6
x2
1
1
3
1
f1
1
0
0
0
f2
0
1
0
0
f3
0
0
-1
0
x1a
0
0
1
0
C
21
1
13
C-0
Ca = x1a = 13 – 2 x1 – 3 x2 + f3
que também é inserida no Tableau

x1
4
-1
x2
1
1
f1
1
0
f2
0
1
f3
0
0
x1a
0
0
C
21
1
2
-6
-2
3
1
-3
0
0
0
0
0
0
-1
0
1
1
0
0
13
C-0
Ca -13
x1
4
-1
2
-6
-2
x2
1
1
3
1
-3
f1
1
0
0
0
0
f2
0
1
0
0
0
f3
0
0
-1
0
1
x1a
0
0
1
0
0
C
21
1
13
C-0
Ca - 13
Ca = x1a = 13 – 2x1 – 3x2 + f3
(d) aplica-se o SIMPLEX ao Tableau partindo de x1 = x2 = f3 = 0,
que é a base natural para o Problema Artificial, onde Ca = 13.
Minimizando Ca chegando a Ca = x1a = 0
Ao final da Fase 1 as variáveis e a Função Objetivo artificiais
terão desaparecido, ficando o Tableau original com um ponto de
partida para o SIMPLEX.
x1
4
-1
2
-6
-2
x2
1
1
3
1
-3
f1
1
0
0
0
0
f2
0
1
0
0
0
f3
0
0
-1
0
1
x1a
0
0
1
0
0
C
21
1
13
C-0
Ca -13
Assim, aplicando o SIMPLEX, resulta ...
x1
0
0
x2
0
1
f1
1
0
f2
2
0,4
f3
1
- 0,2
x1a
-1
0,2
C
10
3
1
0
0
0
0
0
0
0
0
- 0,6
-4
0
- 0,2
-1
1
0,2
1
2
-2
C-9
Ca - 0
x1
0
0
1
0
0
x2
0
1
0
0
0
f1
1
0
0
0
0
f2
2
0,4
- 0,6
-4
0
f3
1
- 0,2
- 0,2
-1
1
6
x1a
-1
0,2
0,2
1
2
C
10
3
2
9
Ca - 0
Solução Fase 1
B
5
f2 = f3 = x1a = 0
4
x1 = 2
x2 = 3
f1 = 10
Ca = 0
C=9
A
3
2
C
1
D
0
0
1
2
3
4
5
6
x1
0
0
1
0
0
x2
0
1
0
0
0
f1
1
0
0
0
0
f2
f3
2
1
0,4 - 0,2
- 0,6 - 0,2
-4
-1
0
1
x1a
-1
0,2
0,2
1
2
C
10
3
2
C-9
0
Removem-se x1a e Ca, regenerando o Tableau original
x1
0
x2
0
f1
1
0
1
0
1
0
0
0
0
0
f2
2
f3
1
C
10
0,4 - 0,2
3
- 0,6 - 0,2
2
-4
-1 C - 9
x1
0
0
1
x2
0
1
0
f1
1
0
0
f2
2
0,4
- 0,6
f3
1
- 0,2
- 0,2
C
10
3
2
0
0
0
-4
-1
C-9
Aplicando o SIMPLEX...
x1
x2
f1
f2
f3
C
0
0
0
1
0,5
- 0,2
1
0
0,5
- 0,4
5
1
1
0
0
0
0,3
2
0
0
0,1
1
5
C - 29
x1
0
0
1
0
x2
0
1
0
0
f1
0,5
- 0,2
0,3
2
f2
1
0
0
0
f3
C
0,5
5
- 0,4
1
0,1
5
1
C - 29
6
B
5
4
A
3
2
C
1
D
0
0
1
2
3
4
5
6
Solução
f1 = f3 = 0
x1 = 5
x2 = 1
f2 = 5
f3 = 0
C = 29
ANÁLISE DE SENSIBILIDADE
3.5 INCERTEZA E ANÁLISE DE SENSIBILIDADE
A análise de processos é executada em ambiente de muita incerteza.
Fontes de incerteza:
(a) modelos matemáticos: aproximações lineares, coeficientes
constantes...
(b) parâmetros físicos e econômicos: valores incertos
(aproximados e variáveis).
A avaliação dos efeitos da incerteza é efetuada através da
Análise de Sensibilidade
Fazem parte da Análise:
- as variáveis características do dimensionamento: dimensões.
- as variáveis características do desempenho do processo:
variáveis de saída (metas de projeto).
- os parâmetros cujos valores são considerados incertos
(variáveis conhecidas são aqui incorporadas ao conjunto dos
parâmetros  Controle !!!).
Fundamento da Análise de Sensibilidade
Exemplo: Trocador de Calor
T4* = 30 oC
A = 265,6 T
m2
2
*
1. Q  W1Cp1 (T1  T2 )  0
= 25
oC
W1* = 30.000 kg/h
T1* = 80 oC
W3 = 44.000 kg/h
2. Q  W3 Cp 3 (T4  T3 )  0
3. Q  UA  0
(T  T4 )  (T2  T3 )
4.   1
0
T1  T4
ln
T2  T3
T3* = 15 oC
: vetor dos parâmetros (físicos e econômicos) e das variáveis
especificadas cujos valores são incertos. Exemplo: Cp1, Cp3, U,
W1, T1, T3.
F: variável do processo cujo valor é incerto devido à incerteza nos
parâmetros . Exemplo: W3, A.
Fundamento da Análise de Sensibilidade
: vetor dos parâmetros (físicos e econômicos) e das variáveis
especificadas cujos valores são incertos. Exemplo: Cp1, Cp3, U,
W1, T1, T3.
F: variável do processo cujo valor é incerto devido à incerteza nos
parâmetros . Exemplo: W3, A.
S (F; i): Sensibilidade de F à incerteza no parâmetro i.
F
F( i )
S(F;  i ) 
 i
i *
Exemplo:
*i
A(i )
S( A;U) 
U U100
i
ANÁLISE DE SENSIBILIDADE
EM PROBLEMAS DE PROGRAMAÇÃO LINEAR
ANÁLISE DE SENSIBILIDADE
EM PROBLEMAS DE PROGRAMAÇÃO
LINEAR
C1 = 0,50 $/b
O1
p1 = 24 ($/b)
x1 (b/d)
0,80 b3/b1
0,05 b4/b1
0,10 b5/b1
0,05 b6/b1
x31
x41
x51
x61
PRODUTOS
CRÚS
C2 = 1 $/b
O2
0,44 b3/b2
p2 = 15 ($/b)
0,10 b4/b2
x2 (b/d)
0,36 b5/b2
x32
G x3(b/d)
p3 = 36($/b); x3max= 24.000(b/d)
x42
Q x4(b/d)
p4 = 24($/b); x4max= 2.000(b/d)
x52
C x5(b/d)
p5 = 21($/b); x5max= 6.000(b/d)
x62
R x6(b/d)
p6 = 10($/b)
0,10 b6/b2
Restrições de Igualdade
Gasolina
: 0,80 x1 + 0,44 x2 = x3
Querosene : 0,05 x1 + 0,10 x2 = x4
Óleo
: 0,10 x1 + 0,36 x2 = x5
Residual
: 0,05 x1 + 0,10 x2 = x6
Restrições de Desigualdade
Gasolina
: x3  24.000
Querosene : x4  2.000
Combustível: x5  6.000
Óleos crus : x1  0 e x2  0
Incorporando as Restrições
Gasolina
: 0,80 x1 + 0,44 x2 = x3
Querosene : 0,05 x1 + 0,10 x2 = x4
Óleo
: 0,10 x1 + 0,36 x2 = x5
Residual
: 0,05 x1 + 0,10 x2 = x6
ao Lucro
L = 36 x3 + 24 x4 + 21 x5 + 10 x6 - 24 x1 - 15 x2 - 0,50 x1 - x2
Resulta
L(x) = 8,1 x1 + 10,8 x2
Na Função Objetivo do Problema Ilustrativo
L
$/d
=
8,1
x1 + 10,80
$/b1 b1/ d
$/b2
x2
b2/d
24 $/b1 e 15 $/b2 são os preços pagos pela refinaria no mercado
externo
O que significam os valores 8,10 $/b1 e 10,80 $/b2 ?
É o quanto vale cada barril da cada Cru para a Refinaria levando
em conta os preços externos, os custos de produção e a
receita pela venda dos produtos: são os
Preços Internos ou "Shadow Prices“
das matérias primas
Esses coeficientes aparecem no Tableau Inicial do SIMPLEX
x1
x2
f1
f2
f3
0,80
0,44
1
0
0
24.000
0,05
0,10
0
1
0
2.000
0,1
0,36
0
0
1
6.000
8,10
10,80
0
0
0
L
Eles correspondem à Sensibilidade do Lucro em relação ao
consumo de cada Óleo:
1 b/d a mais comprado do Óleo 1 acarreta um aumento de 8,10 $
no Lucro.
1 b/d a mais comprado do Óleo 2 acarreta um aumento de 10,80
$ no Lucro.
De maneira análoga, no Tableau Final
x1
x2
f1
f2
f3
0
0
0,138
4,207
1
867
1
0
1,724
-7,586
0
26.207
0
1
- 0,862
13,793
0
6.897
0
0
- 4,655 - 86,517
0
L – 286.759
f 1o = 0 f 2o = 0
São os “shadow prices” dos produtos
1 b/d de folga (1 b/d a menos produzido) de gasolina acarreta
uma redução de 4,66 $ no Lucro, embora p1 = 36 $/b
1 b/d de folga (1 b/d a menos produzido) de querosene acarreta
uma redução de 86,5 $ do Lucro, embora p2 = 24 $/b.
DUALIDADE
Considere o Problema Ilustrativo
Max L(x) = 8,1 x1 + 10,8 x2
{x1, x2}
s.a.: 0,80 x1 + 0,44 x2  24.000
0,05 x1 + 0,10 x2  2.000
0,10 x1 + 0,36 x2  6.000
x1  0
x2  0
x1
x2
0,80
0,44
24.000
0,05 0,10
0,10 0,36
8,10 10,80
2.000
6.000
L
x1(b1/d)
x2 (b2/d)
0,80(b3/b1)
0,05(b4/b1)
0,44(b3/b2)
0,10(b4b2)
24.000(b3/d)
2.000(b4/d)
0,10(b5/b1)
8,10 ($/b1)
0,36(b5/b2)
10,80 ($/b2)
6.000(b5/d)
L ($/d)
Transpondo o Tableau Inicial
s3 ($/b3)
s4
s5
0,80(b3/b1) 0,05 (b4/b1) 0,10 (b5/b1)
8,10 ($/b1)
0,44 (b3/b2) 0,10 (b4/b2) 0,36 (b5/b2) 10,80 ($/b2)
24.000
2.000
6.000
(b3/d)
(b4/d)
(b5/d)
G ($/d)
Invertendo as desigualdades de  para 
Transformando o problema de Max para Min
Passamos a ter o Problema
Min G(x) = 24.000 s3 + 2.000 s4 + 6.000 s5
{s3, s4, s3}
s.a.: 0,80 s3 + 0,05 s4 + 0,10 s5  8,10
0,44 s3 + 0,10 s4 + 0,36 s5  10,80
s3  0 s4  0 s5  0
s3
($/b3)
s4
s5
0,80(b3/b1) 0,05 (b4/b1) 0,10 (b5/b1)
8,10 ($/b1)
0,44 (b3/b2) 0,10 (b4/b2) 0,36 (b5/b2) 10,80 ($/b2)
24.000
2.000
6.000
G ($/d)
(b3/d)
(b4/d)
(b5/d)
Este novo Problema pode ser resolvido pelo SIMPLEX incluindo
as folgas negativas (-1)
Tableau Final do novo Problema:
s3
1
0
s4
0
1
0
0
s5
f1
- 0,138 - 1,72
4,207 7,586
897
f2
0,862
- 13,8
4,66
87,52
26.207 6.897 G - 286.759
Comparando com o Tableau Final do Problema Ilustrativo
x1
x2
f3
f4
f5
0
0
0,138
4,207
1
897
1
0
1,724
-7,586
0
26.207
0
0
1
0
- 0,862
- 4,66
13,793
- 87,52
0
0
6.897
L – 286.759
Os índices das folgas foram trocados de propósito
Tableau Final do Problema Ilustrativo
x1
x2
f3
f4
f5
0
0
0,138
4,207
1
897
1
0
0
0
1
0
1,724
- 0,862
- 4,66
-7,586
13,793
- 87,52
0
0
0
26.207
6.897
L – 286.759
Na horizontal, dá os valores ótimos de x1, x2 e f5.
Na vertical, dá os valores ótimos dos "shadow prices" da gasolina
e do querozene. O "shadow price" do óleo é zero porque sua
folga é zero (não está no limite)
Tableau Final do novo Problema:
s3
1
0
s4
0
1
s5
- 0,13
4,20
0
0
897
f1
- 1,72
7,59
f2
0,86
- 13,8
4,66
87,52
26.207 6.897 G - 286.759
Na horizontal, dá os valores ótimos dos "shadow prices" da
gasolina e do querozene.
Na vertical, dá os valores ótimos de f5, x1 e x2.
Portando, um problema se encontra subjacente no outro.
Então, ao se resolver um deles,
Max L(x) = 8,1 x1 + 10,8 x2
{x1, x2}
s.a.: 0,80 x1 + 0,44 x2  24.000
0,05 x1 + 0,10 x2  2.000
0,10 x1 + 0,36 x2  6.000
x1  0
x2  0
o outro também está sendo resolvido.
Min G(x) = 24.000 s3 + 2.000 s4 + 6.0
{s3, s4, s3}
s.a.: 0,80 s3 + 0,05 s4 + 0,10 s5  8,10
0,44 s3 + 0,10 s4 + 0,36 s5  10,80
s3  0 s4  0 s5  0
São denominados problemas duais.
Um é denominado Problema Primal
O outro é denominado Problema Dual.
x1(b1/d)
x2 (b2/d)
0,80(b3/b1)
0,05(b4/b1)
0,44(b3/b2)
0,10(b4b2)
24.000(b3/d)
2.000(b4/d)
0,10(b5/b1)
8,10 ($/b1)
0,36(b5/b2)
10,80 ($/b2)
6.000(b5/d)
L ($/d)
Problema Primal
s3 ($/b3)
s4
s5
0,80(b3/b1) 0,05 (b4/b1) 0,10 (b5/b1)
8,10 ($/b1)
0,44 (b3/b2) 0,10 (b4/b2) 0,36 (b5/b2) 10,80 ($/b2)
24.000
2.000
6.000
(b3/d)
(b4/d)
(b5/d)
E o seu Dual
G ($/d)