Escolar Documentos
Profissional Documentos
Cultura Documentos
Engenharia de Produo
DEPROT / UFRGS
Profs. Flavio Fogliatto, Ph.D.
Ravindran, A., Phillips, D.T. & Solberg, J.J. (1987). Operations Research,
Principles and Practice, 2nd Ed.. New York: John Wiley.
Trefethen, F.N. (1954). A History of Operations Research, in Operations
Research for Management, J.F. McCloskey & F.N. Trefethen (Eds.). Baltimore:
Johns Hopkins Press.
1
Ementa
INTRODUO
1. Programao Matemtica
2. Reviso de lgebra Linear
3. Uso de pacotes computacionais na soluo de problemas
PROGRAMAO LINEAR
1. Introduo Programao Linear
2. O algoritmo Simplex
2
Ementa
MODELOS DE REDES
1. O problema do transporte
2. O problema da designao
3. O problema do transbordo
4. Modelos de Redes
TPICOS AVANADOS
1. Programao Inteira
3
Referncias Bibliogrficas
Figura 1.1.
A metodologia de
Pesquisa Operacional
(Winston, 1994).
Bronson, R. & Naadimuthu, G. (1997). Operations Research, 2nd Ed.. New York:
McGraw-Hill.
Winston, W.L. (1994). Operations Research, Applications and Algorithm, 3rd Ed..
Belmont (CA): Duxburry Press.
4
INTRODUO PROGRAMAO LINEAR
Bancos
Instituies Financeiras
Empresas de Transportes, etc.
2. PROGRAMAO LINEAR
5
EXEMPLO: O caso Politoy
Modelo
A B C
Mo-de-obra (horas por unidade) 7 3 6
Materiais (g / unidade produzida) 4 4 5
Lucro ($ / unidade) 4 2 3
6
EXEMPLO: O caso Politoy
7
Ao desenvolver um modelo para a Politoy, investigaremos
caractersticas comuns a todos os problemas de PL
VARIVEIS DE DECISO
8
FUNO OBJETIVO
9
FUNO OBJETIVO
Assim:
Max z = 3x1 + 2x2
10
RESTRIES
11
RESTRIES
Restrio 1:
2x1 + x2 100
sujeito a:
x1 + x2 = 30
7x1 - x3 - x4 = 20
7x1 + 7x3 - x5 - x6 = 70
7x1 + 7x3 + 7x5 = 120
Todas as variveis so no-negativas.
12
Restrio 2 (determinada de maneira similar):
Restrio 3:
x1 40
M M
am1x1 + am2x2 + ... + amnxn = bm
x1 0, x2 0, , xn 0
b1 0, b2 0, , bm 0
Bazaraa, M.S., Jarvis, J.J. & Sherali, H.D. (1990). Linear Programming and
Network Flows, 2nd Ed.. New York: John Wiley.
13
RESTRIES DE SINAL
14
PRTICA 1:
Um fazendeiro deseja determinar quantos acres de milho e trigo ele
deve plantar esse ano.
Um acre de trigo rende 25 sacas e requer 10 horas de trabalho/semana.
A saca vale $4 no mercado.
Um acre de milho rende 10 sacas e requer 4 horas de trabalho/semana.
A saca vale $3 no mercado. O governo garante a compra de pelo
menos 30 sacas de milho/ano.
O fazendeiro dispe de 7 acres de terra e pode trabalhar 40
horas/semana.
x1 0, , x5 0
1 2 2 1 0 8
A = b =
( 25 )
3 4 1 0 1 ( 21)
7
x1
x
2 c = (5 2 3 1 1)
x = x3 (15 )
( 51)
x4
x5
15
Soluo - Prtica 1
Variveis de Deciso:
Deciso
x1 = no de acres de milho a serem plantados
x2 = no de acres de trigo a serem plantados
16
ESPAO DE SOLUES E SOLUO
TIMA
17
Representao grfica
Representao da restrio 2x1 + 3x2 = 6:
x2
2
2x1 + 3x2 6
x1
(0,0) 2 3 4
1. Uma soluo vivel para o problema acima dada por um vetor no-negativo
x que satisfaa as restries Ax = b.
2. O espao de solues viveis do problema acima composto pelo conjunto S
de todas as suas solues viveis. Em termos matemticos,
S = {x Ax = b, x 0}
3. Uma soluo tima dada por um vetor xo correspondente a uma soluo
vivel que resulta num valor de funo objetivo zo = cxo maior do que os valores
de z obtidos para as demais solues viveis do problema. Em tremos
matemticos, xo timo se e somente se xo S e cxo cx para todo x S (nesta
definio, o smbolo denota pertinncia).
18
Representao grfica do problema Politoy
x2 O espao de solues encontra-se
hachurado.
100
(2) - (4) denotam as restries.
(2) Ponto timo: (20,60)
80 As restries de sinal restringem o problema
ao primeiro quadrante do espao bi-dimens.
(4)
60 Soluo tima:
(1) Desenhe o vetor z.
(2) Desenhe linhas ortogonais ao vetor z.
40 Essas so as linhas de isocusto.
(3) Calcule o valor de z no ponto timo.
x1
20 40 60 80 100
Prof. Fogliatto Pesquisa Operacional 19
19
Restries crticas (binding) e no-crticas
20
Outro exemplo:
exemplo
Solucione graficamente o problema e identifique o tipo de conjunto
de solues resultante.
21
Variveis de deciso:
x1 = num. de comerciais veiculados durante a novela.
x2 = num. de comerciais veiculados durante os jogos
Funo objetivo:
Min z = 50x1 + 100x2
A soluo grfica ...
Restries:
Pblico feminino: 7x1 + 2x2 28
Pblico masculino: 2x1 + 12x2 24
x1, x2 0
22
x2
Ponto timo no inteiro:
10 Testar pontos (4,1), (3,2),
(4,2), checando restries e z.
Usar programao inteira.
8
6
Ponto timo: (3.6, 1.4)
z
2 4 6 8 10 x1
23
CASOS ESPECIAIS:
24
CASOS ESPECIAIS:
25
CASOS ESPECIAIS:
26
Resolva graficamente o problema
formulado na Prtica 1
27
Outro exerccio
Um fabricante deseja maximizar a receita. A tabela mostra
as composies das ligas, seus preos e as limitaes na
disponibilidade de matria-prima:
Itens / Atividades Liga tipo A Liga tipo B Disponibilidade
Cobre 2 1 16
Zinco 1 2 11
Chumbo 1 3 15
Preo de Venda $30 $50
Soluo do exerccio:
28
Problemas Tpicos de
Formulao
Escolha da dieta
Scheduling de pessoal
Deciso Financeira
Problema da Mistura
Programao da Produo
29
FORMULAO 1: Escolha de dieta
Quatro tipos de alimentos esto disponveis na elaborao da merenda
de um grupo de crianas: biscoito de chocolate, sorvete, refrigerante
e torta de queijo. A composio desses alimentos e seus preos so:
Alimento Calorias Chocolate Aucar Gordura Preo
(poro) (g) (g) (g) (poro)
30
Variveis de deciso:
x1 = pores de biscoitos;
x2 = pores de sorvete;
x3 = pores de refrigerante;
x4 = pores de torta de queijo;
Funo objetivo:
Min z = 50 x1 + 20 x2 + 30 x3 + 80 x4
31
Restries:
(3) 2 x1 + 2 x2 + 4 x3 + 4 x4 10
(4) 2 x1 + 4 x2 + x3 + 5 x4 8
Variveis 0.
m n
Minimizar c x
i =1 j =1
ij ij
sujeito a:
x
j =1
ij Si , para i = 1,, m (capacidade)
m
, para j = 1,, n (demanda)
x
i =1
ij Dj
xij 0
Observe que uma soluo tima para o problema pode indicar uma mesma planta
fornecendo para vrios pontos de demanda, ou um ponto de demanda recebendo
os produtos demandados de diversas plantas.
32
FORMULAO 2: Otimizao da Fora de Trabalho
3. ALGORITMO SIMPLEX
33
Variveis de deciso:
Funo objetivo:
Min z = x1 + x2 + x3 + x4 + x5 + x6 + x7
Restries:
x1 17 Qual o problema
x2 13 com essa
x3 15 formulao?
x4 19
x5 14
x6 16
x7 11
xi 0
Prof. Fogliatto Pesquisa Operacional 34
34
PROBLEMAS
pela origem e pelo referido ponto, digamos p. Se a busca pelo timo iniciar, por
exemplo, no ponto de origem do espao bidimensional, a funo objetivo tender
a apresentar melhoria sempre que o ngulo formado pelos vetores c e p for
inferior a 90. Quando esse no for o caso, o avano ir na direo contrria do
vetor c (que indica a direo de melhoria da funo objetivo) e qualquer
movimento naquela direo ser desinteressante.
Por analogia, considere o conjunto de todos os pontos extremos do espao de
solues viveis e os vetores que partem da origem at estes pontos. A partir de
um ponto inicial qualquer no espao de solues viveis (por exemplo, o ponto
correspondente origem do espao bi-dimensional), possvel determinar a
direo de maior melhoria investigando os ngulos formados entre o vetor c e os
demais vetores, formados a partir da unio da origem aos pontos extremos do
simplex; o menor ngulo cp corresponde melhor direo para movimento.
O mesmo mecanismo de busca pode ser descrito em termos algbricos. Para
tanto, algumas definies prvias so necessrias. A primeira delas diz respeito a
variveis bsicas e no-bsicas. Um exemplo deve auxiliar a introduzir esses
conceitos.
Considere o seguinte exemplo:
Max x1 + 3x2
s.a x1 + 2x2 4
x2 1
x1 , x2 0
35
FORMULAO CORRETA
Variveis de deciso:
Funo objetivo:
Min z = x1 + x2 + x3 + x4 + x5 + x6 + x7
Aps introduzir as variveis de folga f1 e f2, o problema passa a ser escrito como:
Max x1 + 3x2
s.a x1 + 2x2 + f1 = 4
x2 + f2 = 1
x1 , x2 0
Geometricamente, o problema pode ser representado da seguinte forma:
36
17 funcionrios devem estar trabalhando na segunda.
x1 + x4 + x5 + x6 + x7 17
37
Restries:
x1 + x4 + x5 + x6 + x7 17
x1 + x2 + x5 + x6 + x7 13
x1 + x2 + x3 + x6 + x7 15
x1 + x2 + x3 + x4 + x7 19
x1 + x2 + x3 + x4 + x5 14
x2 + x3 + x4 + x5 + x6 16
x3 + x4 + x5 + x6 + x7 11
xi 0
38
FORMULAO: Deciso Financeira
O conceito de valor lquido presente:
x1 x2 f1 f 2 x1 x2 f1 f 2
c = [1, 3, 0, 0]
t
x t = [x1 , x2 , f1 , f 2 ]
1 2 1 0
A=
0 1 0 1 f1 0
b=
f 2 0
a1 a2 a3 a4
39
EXEMPLO:
Investim. 1 = requer um investimento de $10,000 no tempo 0
e de $14,000 em 2 anos e tem um retorno de $24,000 em 1 ano.
B NB B NB
A = [ f1 f 2 x1 x2 ] c = [ f1 ,
t
f2 x1 , x2 ]
f B NB
b = 1
f2 x t = [ f1 , f 2 x1 , x2 ]
40
EXEMPLO DE FORMULAO:
FORMULAO:
Formulao 3
Uma empresa est considerando 5 oportunidades de investimento,
com caractersticas dadas a seguir:
Inv. 1 Inv. 2 Inv. 3 Inv. 4 Inv. 5
Gasto t =0 $11 $53 $5 $5 $29
Gasto t =1 $3 $6 $5 $1 $34
VLP $13 $16 $16 $14 $39
ct = [c B c N ] A = [B N ] b t = [b1 , b2 , K , bn ] x t = [x B x N ]
O algoritmo simplex pode ser derivado atravs da seguinte equao, que compe
o sistema de restries de um problema de PL:
Ax = b
A soluo do sistema de equaes acima pode ser obtida resolvendo o sistema
para x. Para tanto, basta multiplicar os dois lados da igualdade por A-1 (lembre
que A A-1 = I, onde I designa uma matriz identidade; ver reviso de lgebra
Linear a partir do slide 90):
A-1 Ax = A-1b
Ix = A-1b
x = A-1b
Reescrevendo a primeira equao utilizando matrizes e vetores particionados em
variveis bsicas e no-bsicas resulta em:
[B N] x
=b
B
N
x
41
Varivel de deciso:
Funo objetivo:
Bx B + Nx N = b
e ento:
Bx B = b Nx N
x B = B 1b B 1Nx N
42
Restries:
N = [a1 a2 L aP ]
x tN = [x1 x2 L x P ]
Nx N = a j x j
jR
43
PRTICA 2:
A empresa X deseja determinar quanto dinheiro investir e quanto
dinheiro tomar emprestado no prximo ano. Cada real investido pela
empresa reduz o VLP em 10 centavos e cada real tomado em
emprstimo aumenta o VLP em 50 centavos (vale mais a pena tomar
emprestado do que investir).
X pode investir no mximo $1000000. O dbito pode somar at 40% do
que for investido.
X dispe de $800000 em caixa.
Todo o investimento deve ser pago com o dinheiro em caixa ou com
dinheiro emprestado.
Formule o problema tal que o VLP de X seja maximizado.
Resolva o problema graficamente.
3 6 8
N=
1 2 7
a1 a 2 a 3
x tN = [x1 x2 x3 ]
O produto NxN, utilizando a matriz e vetor acima, resulta em:
x1
3 6 8 3x1 + 6 x2 + 8 x3
Nx =
t
x2 =
1 2 7 x 1x1 + 2 x2 + 7 x3
N
44
FORMULAO: Problema da Mistura
Situaes onde vrias matrias-primas devem ser misturadas em
propores ideais so modelveis via programao linear.
Alguns exemplos:
(1) Mistura de vrios tipos de leos para produzir diferentes
tipos de gasolina.
(2) Mistura de compostos qumicos para gerar outros
compostos.
(3) Mistura de ingredientes para produo de raes.
(4) Mistura de diferentes tipos de papis para produzir um papel
reciclado.
Nx N = a j x j
jR
No exemplo, j = 1, 2, 3. Ento:
a x
jR
j j = a1 x1 + a 2 x2 + a 3 x3 =
3 6 8 3x1 + 6 x2 + 8 x3
1 x1 + 2 x2 + 7 x3 = 1x + 2 x + 7 x
1 2 3
ctN x N
c
jR
j xj
45
EXEMPLO (Formulao 4): O caso Texaco
x B = B 1b B 1Nx N
x B = B 1b B
jR
1
a jxj (1)
B 1b = b
B 1a j = y j
Reescrevendo a equao (1) em termos das substituies, tem-se:
xB = b y
jR
j xj
46
EXEMPLO (Formulao 4): O caso Texaco
z = ct x
x
z = [c B c N ] B = c tB x B + c tN x N
xN
O vetor xB acima pode ser reescrito conforme apresentado na equao (1). Aps
substituio, obtm-se:
z = c tB B 1b B 1a j x j + c tN x N
jR
Efetuando-se a primeira multiplicao no somatrio acima, obtm-se:
z = c tB B 1b c
jR
t
B B 1a j x j + c tN x N
47
Variveis de deciso:
Funo objetivo:
O ltimo termo na expresso acima deve ser explicitado em funo das variveis
no-bsicas; ou seja,
z = c tB B 1b c
jR
t
B B 1a j x j + c x
jR
j j
z 0 = c tB B 1b
x B = B 1b B 1Nx N
desaparece. Logo,
z 0 = c tB B 1b = c tB x B
48
Funo objetivo:
Assim, a expresso:
z = c tB B 1b cjR
t
B B 1a j x j + c x
jR
j j
z = z0 c
jR
t
B B 1a j x j + c x
jR
j j
z = z0 (c
jR
t
B )
B 1a j c j x j
Como B-1aj = yj, tem-se:
z = z0 (c
jR
t
B )
y j cj xj
z j = c tB y j
49
Funo objetivo:
Restries:
(1-3) Gas 1-3 produzida diariamente deve ser igual a demanda (no
queremos estocar gasolina).
Demanda diria gas 1: 3000 + demanda gas 1 gerada por publicidade
= 3000 + 10a1
Demanda gas 2: 2000 + 10a2
Demanda gas 3: 1000 + 10a3
Assim:
x11 + x21 + x31 - 10a1 = 3000
x12 + x22 + x32 - 10a2 = 2000
x13 + x23 + x33 - 10a3 = 1000
Prof. Fogliatto Pesquisa Operacional 50
z = z0 (z
jR
j c j )x j
1o resultado:
z0 representa o valor atual (ou presente) da funo objetivo. Num problema de
maximizao, o valor de z pode ser melhorado se zj cj < 0, para qualquer j R.
Num problema de minimizao, o valor de z pode ser melhorado sempre que zj
cj > 0, para qualquer j R.
50
Restries:
(8) Mistura de leos p/produzir gas 1 deve ter uma octanagem mdia
de pelo menos 10 graus.
Oc tan. total gas. 1 12 x11 + 6x 21 + 8x 31
= 10
o
N barris na mistura x11 + x 21 + x 31
Para linealizar essa inequao, multiplica-se os dois lados pelo denominador:
51
(9) Mistura de leos p/produzir gas 2 deve ter uma octanagem mdia
de pelo menos 8 graus.
4x12 - 2x22 0
6x13 + 2x33 0
Por qu?
Suponha que uma primeira base selecionada para dar incio ao algoritmo.
Independente das variveis selecionadas para compor a primeira base, para
determinar o seu valor e verificar a viabilidade da base selecionada, deve-se
resolver o seguinte sistema de equaes:
Bx B = b x B = B 1b
Uma escolha razovel para a primeira base dada por (f1, f2), o ponto de origem
no espao bidimensional (x1, x2). Particionando a matriz A do exemplo entre
variveis bsicas e no-bsicas e rearranjando, tal que variveis bsicas passam a
ser as primeiras colunas de A, obtm-se:
a3 a4 a1 a2
1 0 1 2
A = [B N ] =
0 1 0 1
f1 f 2 x1 x2
Escolhendo as variveis de folga como primeira base para o problema, a matriz B
assume a conformao de uma matriz identidade. Como para resolver o sistema
xB = B-1b ser necessrio obter a matriz inversa B-1, a base selecionada bastante
conveniente, j que se B = I, B-1 = B. Assim,
52
(11) Mistura de leos p/produzir gas 1 deve ter um teor de enxofre
menor ou igual a 1%.
-0.015x12 + 0.01x32 0
1 0 1 0
B= B 1 =
0 1 0 1
x t = [x B x N ] = [ f1 , f 2 x1 , x2 ]
4
b=
c t = [c B c N ] = [0, 0 1, 3] 1
53
FORMULAES MULTIPERODO (Formulao 5)
O problema do estoque - O caso da empresa Regata
Para j = 1:
1 0 1
( z1 c1 ) = ctB B 1a1 c1 = [0, 0] 1 = 1
0 1 0
Para j = 2:
1 0 2
( z 2 c2 ) = c tB B 1a 2 c2 = [0, 0] 3 = 3
0 1 1
Introduzindo qualquer das duas variveis no-bsicas na base, observaria-se uma
melhoria no valor z da funo objetivo. Todavia, x2 deve entrar na base, j que
apresenta o maior valor absoluto de zj - cj.
Uma das variveis atualmente na base deve sair, para dar lugar a x2. Para
determinar qual varivel sai da base, utiliza-se a equao (1); isto :
x B = B 1b B jR
1
a jxj
A varivel entrante x2 (j = 2). Assim, a equao (1) pode ser reescrita para
conter as variveis bsicas e a varivel entrante x2:
x B = B 1b B 1a j x j
54
FORMULAES MULTIPERODO (Formulao 5)
O problema do estoque - O caso da empresa Regata
1 0 4 1 0 2
xB = x2
0 1 1 0 1 1
As variveis que compem a base atual so (f1, f2). Explicitando o vetor xB e
executando as multiplicaes entre matrizes e vetores na expresso acima,
obtm-se:
f1 4 2
f = 1 1 x2
2
Todas as variveis do problema exemplo esto condicionadas a assumirem
valores no-negativos. Analisando a equao acima, fcil observar que x2 no
pode assumir valores maiores que 1 ou a varivel bsica f2 assumiria valores
negativos. Assim, o valor mximo de x2 1 e, neste caso, f2 assume o valor 0,
saindo da base. Logo, x2 entra na base e f2 sai da base para dar lugar a x2, j que
no permitido mais do que 2 variveis na base. Alm disso, sabe-se que x2
entra na base com valor 1 e que f1 permanece na base, mas com valor 2 (e no 4,
como na base inicial).
55
Variveis de deciso:
Assim:
Custo total = custo produo normal + custo produo hora-extra +
custo estocagem
= 400 (x1 + x2 + x3 + x4) + 450(y1 + y2 + y3 + y4) +
20 (i1 + i2 + i3 + i4)
2o resultado:
A varivel bsica xk que sai da base dando lugar a xj determinada pela seguinte
expresso:
b
xk = Min i , onde yij > 0.
i y
ij
Os vetores e yj foram definidos na pgina 48. Os elementos que compem
esses vetoresbso identificados por e y, sendo utilizados no resultado acima.
A operacionalizao da expresso nob2o resultado bastante simples. Considere
o exemplo anterior, com os vetores e y2 devidamente identificados:
f1 4 2
f = 1 1 x2
2
b y2
56
Funo objetivo:
{ }
A razo bi yij obtida dividindo os vetores:
f1 4 2 2
f = 1 1 = 1
2
Deseja-se determinar a menor razo; no caso, este valor 1, correspondendo a f2.
Logo, f2 deve sair da base dando lugar a x2, a varivel entrante. A mnima razo
tambm aponta para o valor de entrada de x2 na base: x2 = 1.
No momento em que determina-se uma nova base para o problema de PL,
completa-se uma iterao (ou pivot) do algoritmo simplex. Na sequncia,
atualiza-se a base e repete-se o procedimento apresentado acima. A nova base
para o problema exemplo dada abaixo, junto com os vetores necessrios para
realizar mais uma iterao do simplex:
1 2
B = [ f1 , x2 ] = ctB = [0, 3] N = [x1 , f 2 ]
0 1
1 2 1 2 4 2
B 1 = x B = B 1b = =
0 1 0 1 1 1
A base inversa B-1 foi obtida atravs do mtodo de Gauss-Jordan, no slide 96.
57
Restries:
i1 = 10 + x1 + y1 - 40 i2 = i1 + x2 + y2 - 60
i3 = i2 + x3 + y3 - 75 i4 = i3 + x4 + y4 - 25
1 2 1
( z1 c1 ) = c tB B 1a1 c1 = [0, 3] 1 = 1
0 1 0
58
PRTICA 3: Modelos Financeiros com mltiplos perodos.
Uma empresa precisa definir sua estratgia financeira para os prximos
trs anos. No tempo t = 0, $100000 esto disponveis para
investimento. Planos A, B, C, D e E esto disponveis. Investir $1 em
cada um desses planos gera o fluxo de caixa abaixo:
0 1 2 3
A -1 0.5 1 0
B 0 -1 0.5 1
C -1 1.2 0 0
D -1 0 0 1.9
E 0 0 -1 1.5
Para j = 4:
1 2 0
( z 4 c4 ) = ctB B 1a 4 c4 = [0, 3] 0 = 3
0 1 1
A nica varivel candidata a entrar na base x1. Para verificar qual varivel deve
sair da base, utiliza-se a equao 1:
x B = B 1b B 1a1 x1
1 2 4 1 2 1 2 1
xB =
1x = 1 0 x1 x1 = 2
0 1 1 0 1 0
A varivel de folga f1 deve sair da base. A varivel x1 entra na base com valor 2.
A nova base formada por (x1, x2). O mesmo resultado pode ser obtido
utilizando-se a expresso no 2o Resultado. Analisando-se a Figura 3.2, identifica-
se o movimento do ponto B para o ponto C no grfico.
Atualizando-se a base, obtm-se as seguintes matrizes e vetores:
1 2
B = [x1 , x2 ] = c tB = [1, 3] N = [ f1 , f 2 ]
0 1
1 2 1 2 4 2
B 1 = x B = B 1b = =
0 1 0 1 1 1
59
Utilizao do Whats Best na
soluo de problemas de PL
Whats Best um programa da famlia Lindo para
otimizao linear, no-linear e inteira.
Vantagens:
implementado na planilha Excel; vrias funes
algbricas do Excel so aceitas na formulao do
problema:
ABS, ACOS, AND, ASIN, ATAN, ATAN2, AVERAGE,
COS, EXP, FALSE, IF, INT, LN, LOG, MAX, MIN, MOD,
NOT, NPV, OR, PI, SIN, SQRT, SUM, SUMPRODUCT,
TAN, TRUE, TRUNC, NORMINV, TRIAINV, EXPOINV,
UNIFINV, MULTINV.
Prof. Fogliatto Pesquisa Operacional 60
1 2 1
( z3 c3 ) = c tB B 1a 3 c3 = [1, 3] 0 = 1
0 1 0
Para j = 4:
1 2 1
( z 4 c4 ) = ctB B 1a 4 c4 = [1, 3] 0 = 1
0 1 0
60
Outras vantagens do Whats Best
Programa permite alterar coeficientes da
formulao facilmente: formulao fica explicita
na planilha.
Facilidade de uso:
uso princpio de programao o
mesmo do Excel.
Gratuito para download da rede:
www.lindo.com
Opo: Whats Best
z zj cj c tB B 1b
xB y j = B 1a j B 1b
61
Como utilizar o programa
Abra o Excel. O Whats Best deve carregar-se
como uma Macro daquela planilha.
Abra o arquivo XYZPort, que contm o exemplo.
Este o arquivo.
( z j c j ) = c tB B 1a j c j
se reduzir a:
(z j c j ) = c j
Para compor o primeiro tableau do simplex, quando variveis de folga constituem
a primeira base, basta escrever o negativo dos coeficientes de custo das variveis
no-bsicas na primeira linha do tableau. As variveis bsicas recebem valor 0,
por definio. Como zj - cj representa a potencial
62
Os comandos do programa esto na
barra de ferramentas e no menu
x1 x2 f1 f2 RHS
z -1 -3 0 0 z0
z 0 = c tB B 1b
Como cB um vetor de zeros, z0 = 0 sempre que as variveis de folga formarem a
primeira base. Atualizando o tableau, tem-se:
x1 x2 f1 f2 RHS
z -1 -3 0 0 0
63
O Problema do Mix de Produo
A XYZ Corporation monta dois modelos de
computador.
O modelo Padro gera um lucro por unidade
produzida de $300, enquanto o modelo
Luxo gera um lucro por unidade de $500.
Os dois modelos utilizam trs componentes
para sua montagem: o chassis Padro (60),
o chassis de Luxo (50) e o drive de disquete
(120). Disponveis em estoque
Prof. Fogliatto Pesquisa Operacional 64
y j = B 1a j
Para cada varivel do problema, determina-se uma coluna yj. Sempre que as
variveis de folga formarem a primeira base, B = I e B-1 = B = I. Assim, a
expresso acima reduz-se a:
y j = Ia j = a j
x1 x2 f1 f2 RHS
z -1 -3 0 0 0
f1 1 2 1 0
f2 0 1 0 1
64
Necessidades de componentes em cada
modelo
O modelo Padro utiliza um chassis Padro
e um drive de disquete.
O modelo Luxo utiliza um chassis Luxo e
dois drives de disquete.
Problema:
Problema qual combinao de modelos
Padro e Luxo maximiza os lucros da XYZ,
considerando os componentes atualmente
em estoque?
Prof. Fogliatto Pesquisa Operacional 65
b = Ib = b
Desta forma, para completar o tableau, basta escrever os valores do lado direito
das restries do problema para o lado direito do tableau. Isto :
Max x1 + 3x2
s.a x1 + 2x2 + f1 = 4
x2 + f2 = 1
x1 , x2 0
x1 x2 f1 f2 RHS
z -1 -3 0 0 0
f1 1 2 1 0 4
f2 0 1 0 1 1
65
n Determinar as variveis de deciso
(adjustable cells)
Variveis de deciso:
Padro = quantidd de computadores padro a
serem produzidos.
Luxo = quantidd de computadores luxo a serem
produzidos.
66
n Determinar as variveis de deciso
(adjustable cells)
b
xk = Min i , onde yij > 0.
i y
ij
67
Identifique as clulas como variveis
de deciso (adjustable cells)
Tela resultante
n Selecione as
clulas onde foram o Na opo WB! do
escritos os zeros. menu, selecione
adjustable.
Prof. Fogliatto Pesquisa Operacional 68
x1 x2 f1 f2 RHS
z -1 -3 0 0 0
f1 1 2 1 0 4
f2 0 1 0 1 1
xj
x1 x2 f1 f2 RHS
z -1 -3 0 0 0
xk f1 1 2 1 0 4 4/2 = 2
f2 0 1 0 1 1 1/1 = 1
68
p Caso as variveis de deciso
sejam no-negativas, clique OK.
OK
s Clique em
Add.
Add WBFree identifica
variveis irrestritas
x1 x2 f1 f2 RHS
z -1 -3 0 0 0
f1 1 2 1 0 4
f2 0 1 0 1 1
x1 x2 f1 f2 RHS
tableau
(0) z -1 -3 0 0 0
(1) f1 1 2 1 0 4
(2) f2 0 1 0 1 1
69
Variveis de deciso
so identificadas em
azul pelo WB.
WB
n Selecione as variveis
de deciso.
Explicitando a operao:
x1 x2 f1 f2 RHS
z -1 -3 0 0 0
f1 1 2 1 0 4 (1)' = (1) - 2 x (2)
f2 0 1 0 1 1
x1 x2 f1 f2 RHS
z -1 -3 0 0 0
f1 1 0 1 -2 2
x2 0 1 0 1 1
x1 x2 f1 f2 RHS
(0) z -1 -3 0 0 0
(1) f1 1 0 1 -2 2
(2) x2 0 1 0 1 1
70
o Escreva a funo objetivo (best)
Funo objetivo:
Lucro Total =
(Lucro por unidade do Modelo Padro)
(Qtdd de Modelos Padro produzidos)
+
(Lucro por unidade do Modelo Luxo)
(Qtdd de Modelos Luxo produzidos)
Explicitando a operao:
x1 x2 f1 f2 RHS
z -1 -3 0 0 0 (0)' = (0) + 3 x (2)
f1 1 0 1 -2 2
x2 0 1 0 1 1
x1 x2 f1 f2 RHS
z -1 0 0 3 3
f1 1 0 1 -2 2
x2 0 1 0 1 1
Observe que a coluna x2 assumiu a configurao anterior da coluna f2. Isso foi
obtido atravs de operaes elementares com a linha que contm o elemento
pivot. As operaes elementares sempre devem utilizar a linha pivot, ocorrendo
da forma exemplificada acima e generalizada a seguir (na expresso abaixo, w
um nmero real qualquer, positivo ou negativo):
(linha nova) = (linha antiga) + [w (linha pivot)]
71
Coeficientes de custo da
funo objetivo.
Frmula da funo
objetivo.
2a Iterao:
xj
x1 x2 f1 f2 RHS
xk z -1 0 0 3 3
f1 1 0 1 -2 2 2/1 = 2
x2 0 1 0 1 1
mnima razo
elemento de pivot
x1 x2 f1 f2 RHS
z -1 0 0 3 3
f1 1 0 1 -2 2 Nenhuma operao necessria
x2 0 1 0 1 1
x1 x2 f1 f2 RHS
z -1 0 0 3 3
f1 1 0 1 -2 2
x2 0 1 0 1 1 Nenhuma operao necessria
72
o Identifique a clula que contm a
frmula como funo objetivo (best)
n Clique na clula onde a
frmula da funo objetivo foi
escrita.
Finalizando a iterao:
x1 x2 f1 f2 RHS
z -1 0 0 3 3 (0)' = (0) + (1)
f1 1 0 1 -2 2
x2 0 1 0 1 1
x1 x2 f1 f2 RHS
z 0 0 1 1 5
f1 1 0 1 -2 2
x2 0 1 0 1 1
73
o Identifique se o problema de
Minimizao ou Maximizao (default
Minimizao).
x1 x2 f1 f2 RHS
z 0 0 -2 0 -8
x1 1 0 1/3 -2/3 2/3
x2 0 1 1/3 1/3 5/3
74
n Selecione a clula
contendo a frmula da
funo objetivo.
o Clique no cone .
x1 x2 f1 f2 RHS
z 4 0 0 -3 -9
f1 -1 0 1 2 10
x2 -1 1 0 1 3
75
p Especifique as restries
(constraints)
Restries informam que total de componentes
utilizados deve ser quantidade disponvel em
estoque.
Restrio p/ componente chassis padro:
(Qtdd de Modelos Padro produzidos) (No de chassis padro
por modelo) +
(Qtdd de Modelos Luxo produzidos) (No de chassis padro por
modelo)
Qtdd de chassis padro em estoque
Padro 1 + Luxo 0 60
Prof. Fogliatto Pesquisa Operacional 76
76
Demais restries (constraints)
77
Organizao das restries na
planilha do WB
Frmula da 1a restrio.
Coeficientes tecnolgicos
das restries.
Clulas c/ as frmulas
Prof. Fogliatto Pesquisa Operacional das restries. 78
Observe que somente uma varivel de folga pode ser utilizada na composio da
base inicial (variveis de excesso no resultam em bases iniciais viveis, no
podendo ser utilizadas). Assim, para que seja possvel uma base inicial formada
exclusivamente por variveis de folga, utiliza-se uma varivel de folga artificial,
acrescida primeira restrio do problema. O resultado vem apresentado abaixo:
78
Restries devem ser identificadas no
WB
79
Identifique
restries
Tela resultante
o Na opo WB! do
n Selecione a menu, selecione
clula onde ser constraints.
escrito o sentido
da 1a restrio.
desconsideradas do tableau.
O mtodo do M-Grande ser ilustrado atravs do exemplo acima.
x1 x2 e1 f1 a1 RHS
z -1 2 0 0 -M 0
a1 1 1 -1 0 1 1
f1 0 1 0 1 0 4
x1 x2 e1 f1 a1 RHS
(0) z -1 2 0 0 -M 0 (0)' = (0) + M x (1)
(1) a1 1 1 -1 0 1 1
(2) f1 0 1 0 1 0 4
x1 x2 e1 f1 a1 RHS
(0) z -1 + M 2+M -M 0 0 M
(1) a1 1 1 -1 0 1 1
(2) f1 0 1 0 1 0 4
80
Confirme clicando OK.
OK
elemento de pivot
x1 x2 e1 f1 a1 RHS
(0) z -1 + M 2+M -M 0 0 M
(1) a1 1 1 -1 0 1 1 Nenhuma operao
(2) f1 0 1 0 1 0 4
81
Identificao do tipo da
restrio e clulas
consideradas.
x1 x2 e1 f1 a1 RHS
(0) z -1 + M 2+M -M 0 0 M (0)' = (0) + (-M-2) x (1)
(1) a1 1 1 -1 0 1 1
(2) f1 0 1 0 1 0 4
x1 x2 e1 f1 a1 RHS
(0) z -3 0 2 0 -M-2 -2
(1) a1 1 1 -1 0 1 1
(2) f1 0 1 0 1 0 4
x1 x2 e1 f1 a1 RHS
(0) z -3 0 2 0 -M-2 -2
(1) a1 1 1 -1 0 1 1
(2) f1 0 1 0 1 0 4 (2)' = (2) - (1)
x1 x2 e1 f1 a1 RHS
(0) z -3 0 2 0 -M-2 -2
(1) a1 1 1 -1 0 1 1
(2) f1 -1 0 1 1 -1 3
82
n Selecione a clula onde
o tipo da restrio deve ser
escrito.
o Clique no cone
apropriado.
x1 x2 e1 f1 RHS
(0) z -3 0 2 0 -2
(1) a1 1 1 -1 0 1
(2) f1 -1 0 1 1 3
xk
elemento de pivot
83
Clique em para rodar a otimizao
Aps iterao:
x1 x2 e1 f1 RHS
(0) z -3 0 2 0 -2 (0)' = (0) - 2 x (2)
(1) a1 1 1 -1 0 1 (1)' = (1) + (2)
(2) f1 -1 0 1 1 3 Nenhuma operao
x1 x2 e1 f1 RHS
(0) z -1 0 0 -2 -8
(1) a1 0 1 0 1 4
(2) f1 -1 0 1 1 3
Este o tableau timo. Observe que nas iteraes finais do mtodo, aps
remoo da varivel artificial da base, a coluna correspondente varivel
artificial deixou de ser utilizada no tableau do simplex.
84
Situao especial:
Variveis de deciso devem ser inteiras
Tela resultante
n Selecione as
clulas onde foram o Na opo WB! do
escritos os zeros. menu, selecione
integer.
Prof. Fogliatto Pesquisa Operacional 85
85
o Escolha um nome para as variveis
inteiras (qualquer nome serve).
q Clique em OK p/ confirmar.
86
Outros programas de otimizao
Solver do Excel
Vantagem: suporta todas as funes matemticas do
Excel.
Desvantagem: esconde a formulao.
Lindo
Vantagem: executa anlise de sensibilidade e pode ser
baixado gratuitamente da rede.
Desvantagem: formulao deve ser escrita como texto.
Tutorial do Lindo disponvel na apostila
Prof. Fogliatto Pesquisa Operacional 87
Examine o layout e a lgica do modelo. Teste vrias projees do tipo What If?.
Por exemplo, tente ajustar a Quantidade a ser Produzida em ambas as clulas
(C5 e D5) de modo a maximizar o Lucro (G6) sem que o Total de Componentes
(E15:E17) exceda o nmero de componentes em estoque (G15:G17).
87
I. REVISO DE LGEBRA LINEAR
88
I.1 Matrizes e Vetores
89
I.1 Matrizes e Vetores
O produto escalar:
v1
v.u = M [u1 L un ]
vn
no definido.
Esta frmula aparece na clula G6 como =C5*C8+D5*D8. Para fazer com que a
frmula em G6 seja tratada como funo objetivo pelo WB, mova o cursor para
aquela clula escolha Best no menu WB!. A seguir, seleciona Maximize e
clique OK.
90
OPERAES COM MATRIZES
91
MATRIZES E SISTEMAS DE EQUAES
LINEARES
a11x1 + a12x2 + . + a1nxn = b1
a21x1 + a22x2 + . + a2nxn = b2
M M
Aps estas trs operaes, o WB est pronto para resolver o problema XYZ. No
menu do WB!, selecione a opo Report e marque os relatrios Status Report e
Solution Report. Assim, aps resolver o problema, o WB ir apresentar um
relatrio de soluo, com todas as informaes sobre a otimizao. Para resolver
o problema, escolha a opo Solve do menu do WB!. A janela de status do solver
aparecer. Logo a seguir, a planilha reaparecer, com o maior valor possvel de
lucro indicado na clula indicada anteriormente. A soluo dada pelo WB fornece
o melhor lucro possvel, considerando os recursos e restries do problema. A
soluo tambm informa o nmero de quantidades de cada modelo a serem
produzidas e o quanto de cada componente foi utilizado. O relatrio de soluo
do problema encontra-se disponvel numa worksheet auxiliar denominada WB!
Solution.
92
SISTEMAS DE EQUAES LINEARES
Representao Matricial
(m x n) (n x 1) (m x 1)
Ax = b
93
INVERSO DE UMA MATRIZ
Definies:
p 1 0 0 L 0
0 1 0 L 0
A= = matriz identidade (I )
M O M m
0
0 0 L 1
94
MTODO DE GAUSS-JORDAN DE
INVERSO DE MATRIZES
Idia Central:
Procedimento:
95
2 5
EXEMPLO 1: A =
1 3
2 5 1 0 (1) = 1
2 (1)
1 3 0 1
1 5 1 0
2 2
1 3 0 1 ( 2) = ( 2) (1)
1 5 1 0
2 2
0 1
2
1
2 1 (2) = (2) (2)
1 5
2
1
0 2 (1) = (1) 5 2 ( 2 )
0 1 1 2
1 0 3 5
0 1 1 2
96
1 2
EXEMPLO 2: B=
2 4
1 2 1 0
2 4 0 1 ( 2) = 1
2 (2)
1 2 1 0
1 2 0 1
2 ( 2 ) = ( 2 ) (1)
1 2 1 0
0 0 1 1
2
97
Prtica 4
Resolva o seguinte sistema de equaes lineares usando a
matriz inversa de A:
x1 + x3 = 4
4x1 + x2 2x3 = 0
3x1 + x2 x3 = 2
A soluo do sistema ser dada por x = A-1.b
98
Considere o seguinte problema:
Um fabricante de mveis deseja determinar o mix ideal de produo,
levando em conta preos-de-venda dos produtos e quantidade
disponvel de insumos.
99
A formulao matemtica deste
problema
No escrivaninhas produzidas
No mesas produzidas
No cadeiras produzidas
Parte 2
Objetivo: apresentar alguns comandos adicionais do software LINDO.
100
Para resolver o problema pelo Simplex,
temos que adicionar variveis de folga
101
Conceitos-chave no mtodo Simplex
Anotaes:
102
Solucionando problemas de otimizao
linear no tableau do simplex
O tableau inicial tem a seguinte estrutura:
103
Montagem do tableau passo
a passo
A montagem do tableau sempre pressupe
variveis de folga formando a base inicial
O no de variveis na base igual ao no de
restries no problema
Se no houver variveis de folga em quantidade
suficiente para formar a base inicial, utilizaremos
variveis de folga artificiais (vistas mais adiante)
Lindo avisar o usurio de que a soluo atual pode no ser a tima. Neste
caso, a soluo tima pode aparecer nos prximos pivots.
104
Montagem do tableau passo a passo
Lista das variveis no
cabealho das colunas
Para um problema com n variveis, o
tableau ter n + 2 colunas
Cada varivel ser posicionada em uma
coluna do tableau:
Inicie pelas variveis estruturais (x1, x2, ...)
Depois lista folgas, excessos e artificiais na
ordem em que aparecerem nas restries
105
Primeira coluna do tableau
A primeira coluna a coluna z:
Ali so listadas as variveis bsicas do tableau
Exemplo:
Base inicial
formada por
f1, f2 e f3
4. PROGRAMAO INTEIRA
Existemtrs tipos de problemas de Programao Inteira (PI):
A) Puros - todas as variveis de deciso so inteiras.
B) Mistos - algumas variveis de deciso so inteiras.
C) Booleanos - variveis de deciso s apresentam valores inteiros no intervalo
[0, 1].
106
ltima coluna do tableau
a coluna RHS (right hand side):
Ali aparecem o valor atual da funo objetivo
(no cruzamento entre coluna RHS e linha z) e o
valor das variveis que esto na base
No primeiro tableau (se as var. de folga forem a
base inicial), o valor atual da funo objetivo
zero e o valor das variveis na base
correspondem ao lado direito das restries
107
ltima coluna do tableau
Exemplo
Valor de
f1, f2 e f3 na base
108
Linhas do tableau
O tableau do simplex constitudo de m + 1
linhas (m = no de restries do problema):
A primeira linha denominada linha z:
Analisando a linha z se verifica se o tableau timo
ou se h melhorias possveis na funo obj.
x1 4 x1 3
arco
nodo
109
Linha z
No tabelau inicial, a linha z dada pelos
coeficientes de cada varivel na funo
objetivo, com o sinal invertido:
Variveis de folga e de escesso tm coeficientes
zero, pois nunca esto na f.o. original
Embaixo das variveis bsicas, na linha z do
tableau, s pode-se ter o valor 0!
110
Exemplo de montagem da linha z
Max z = 60x1 + 30x2 + 20x3
x1 4 x1 3
x2 2 x2 1
111
Demais linhas do tableau
Copia-se literalmente o sistema de
restries do problema:
112
Prtica 5
Considere o problema abaixo:
Soluo da Prtica 5:
SP1: z* = 165/4, x1 = 15/4, x2 = 9/4
x1 4 x1 3
x2 2 x2 1
x1 5 x1 4
113
ALGORITMO SIMPLEX NO
TABLEAU
Ex.:
114
ALGORITMO SIMPLEX NO
TABLEAU
Ex.:
115
ALGORITMO SIMPLEX NO TABLEAU
Passo 2
c) A regra ltimo a entrar, primeiro a sair, que indica qual SP deve ser
trabalhado dentre vrios candidatos fora o analista a trabalhar um mesmo da
ramo da rvore de solues at o final. Existem outras regras possveis(ver
Schrage, 1997, entre outros).
d) Quando um SP apresenta soluo tima com duas ou mais variveis de
deciso fracionrias, trabalhe com aquela que representar maior ganho na funo
objetivo (ou seja, aquela que possuir maior coeficiente de custo associado).
Schrage, L. (1997). Optimization Modeling with LINDO, 5th Ed., Pacific Grove
(CA): Duxbury Press.
116
ALGORITMO SIMPLEX NO TABLEAU
Passo 3
117
ALGORITMO SIMPLEX NO TABLEAU
Passo 3 Exemplo (Minimizao)
varivel entrante
Elemento de pivot
Razes:
4/2=2 Menor razo!
8/1=8 Varivel x1 sai da base para que x2 possa entrar
No 2 na coluna do x2 o elemento de pivot!
O atraso do trabalho medido pelo nmero de dias aps a data de entrega em que
o trabalho completado. Trabalhos finalizados na data de entrega ou antes, tm
atraso zero.
Determine a ordem de processamento dos trabalhos que minimize o atraso total.
118
ALGORITMO SIMPLEX NO TABLEAU
Passo 3 Exemplo (Maximizao)
varivel entrante
Elemento de pivot
Razes:
4 / -2 = No vale!
8/2=4 nica razo (menor por definio!)
Varivel f2 sai da base para que f1 possa entrar
No 2 na coluna do f1 o elemento de pivot!
Prof. Fogliatto Pesquisa Operacional 119
Considere o ltimo trabalho a ser processado. Qualquer que seja a sequncia, ela
ter x14 = 1, x24 = 1, x34 = 1 ou x44 = 1. Assim, cria-se uma rvore com quatro
nodos e calcula-se o limite inferior no atraso total associado a cada nodo. O
clculo do atraso para o quarto trabalho :
x44 = 1, ou seja, o trabalho 4 seria completado com atraso total de 23 - 16 dias.
Os 23 dias foram obtidos somando (6 + 4 + 5 + 8); ver tabela na pgina anterior.
Aplica-se o mesmo racioccio para os demais trabalhos processados na posio 4.
Os resultados vm mostrado na rvore na pgina seguinte. O limite inferior no
atraso total D 7. Ou seja, posicionando-se o trabalho 4 na quarta posio,
obtem-se o menor atraso total.
119
ALGORITMO SIMPLEX NO TABLEAU
Passo 3 Nota importante
Melhor sequenciamento
x14 = 1 x44 = 1
x24 = 1 x34 = 1
120
ALGORITMO SIMPLEX NO TABLEAU
Passo 4
Escolhe-se o nodo com menor valor de atraso D (no caso, o nodo 4) para
continuar o mtodo. Qualquer sequncia associada ao nodo 4 deve ter x13 = 1, x23
= 1 ou x33 = 1. O clculo do limite inferior LI de atraso similar quele visto
anteriormente:
x33 = 1, ou seja, o trabalho 3 seria completado com atraso total de 15 - 12 dias.
Os 15 dias foram obtidos somando (6 + 4 + 5). O atraso total ser de pelo menos
3 + 7 dias (D 10).
Escolhe-se o nodo 7 (menor valor de D) para desdobrar. Qualquer sequncia
associada a este nodo deve ter x12 = 1 ou x22 = 1. Os atrasos totais so:
Nodo 9 - sequncia 1-2-3-4. Atraso total: 7(tr. 4) + 3(tr. 3) + (6+4-4)(tr. 2) +
0(tr. 1) = 16 dias.
Nodo 8 - sequncia 2-1-3-4. Atraso total: 7(tr. 4) + 3(tr. 3) + (4+6-8)(tr. 1) +
0(tr. 2) = 12 dias.
Qualquer soluo com D > 12 pode ser eliminada de considerao (nodos 1, 2, 5,
6, 9). Desdobra-se o nodo 3. Qualquer sequncia deve ter x13 = 1, x23 = 1 ou x43
= 1. O clculo do limite inferior de atraso :
121
ALGORITMO SIMPLEX NO TABLEAU
Passo 4 Exemplo
varivel entrante
Elemento de pivot
122
ALGORITMO SIMPLEX NO TABLEAU ALGORITMO SIMPLEX NO TABLEAU
Passo 4 Exemplo Passo 4 Exemplo
Inicie pelo elemento de pivot: ele deve virar 1
A linha de trabalho ser usada nas operaes que transformaro os Como o problema de minimizao e no h mais valores negativos
demais nos da coluna da varivel entrante em zero na linha z do tableau abaixo das variveis, esta a base tima do
Prof. Fogliatto Pesquisa Operacional 123 Prof. Fogliatto problema!
Pesquisa Operacional 124
Prof. Fogliatto Pesquisa Operacional 125 Prof. Fogliatto Pesquisa Operacional 126
ALGORITMO SIMPLEX NO TABLEAU ALGORITMO SIMPLEX NO TABLEAU
Alguns comentrios Alguns comentrios
Prof. Fogliatto Pesquisa Operacional 127 Prof. Fogliatto Pesquisa Operacional 128
B1 2 4 6
z
Prof. Fogliatto Pesquisa Operacional 129 Prof. Fogliatto Pesquisa Operacional 130
Tableau Exemplo c/ soluo tendendo ao
infinito
Soluo tima
Min z = - x1 - 3x2 6
s.a: x1 - 2x2 4
-x1 + x2 3
x1, x2 0 4
B2
z B1 2 4 6
Prof. Fogliatto Pesquisa Operacional 131 Prof. Fogliatto Pesquisa Operacional 132
Min z = x1 - 2x2 4
s.a: x1 + x2 - e1 = 1
x2 + f1 = 4
x1, x2, e1, f1 0 2
B2
Adicionando artificial
Min z = x1 - 2x2 + Ma1 B1
2 4 6
s.a: x1 + x2 - e1 + a1 = 1
x2 + f1 = 4 z
x1, x2, e1, f1, a1 0
Prof. Fogliatto Pesquisa Operacional 133 Prof. Fogliatto Pesquisa Operacional 134
Tableau Prtica 6A
Soluo tima nica
Prof. Fogliatto Pesquisa Operacional 135 Prof. Fogliatto Pesquisa Operacional 136
Prtica 6B Prtica 6C
Soluo Solues timas alternativas
Prof. Fogliatto Pesquisa Operacional 137 Prof. Fogliatto Pesquisa Operacional 138
Prtica 6D Prtica 6E
Base Inicial no-disponvel Base Inicial no-disponvel
Prof. Fogliatto Pesquisa Operacional 139 Prof. Fogliatto Pesquisa Operacional 140
Prof. Fogliatto Pesquisa Operacional 141 Prof. Fogliatto Pesquisa Operacional 142
Escrevendo o dual de um problema de progr. linear EXEMPLO
P
Max z = c1x1 + c2x2 + + cnxn Max z = 60x1 + 30x2 + 20x3
r
s.a: a11x1 + a12x2 + + a1nxn b1 s.a: 8x1 + 6x2 + 1x3 48
i
a21x1 + a22x2 + + a2nxn b2 4x1 + 2x2 + 1.5x3 20
m
M M M M
2x1 + 1.5x2 + 0.5x3 8
a
am1x1 + am2x2 + + amnxn bm x1, x2, x3 0
l
Prof. Fogliatto Pesquisa Operacional 143 Prof. Fogliatto Pesquisa Operacional 144
Prof. Fogliatto Pesquisa Operacional 145 Prof. Fogliatto Pesquisa Operacional 146
INTERPRETAO ECONMICA DO O DUAL DESTE PROBLEMA :
PROBLEMA DUAL
Min w = 48y1 + 20y2 + 8y3
O exemplo visto anteriormente: Escrivaninha
s.a: 8y1 + 4y2 + 2y3 60
6y1 + 2y2 + 1.5y3 30 Mesa
Max z = 60x1 + 30x2 + 20x3
1y1 + 1.5y2 + 0.5y3 20
s.a: 8x1 + 6x2 + 1x3 48 Cadeira
y1, y2, y3 0
4x1 + 2x2 + 1.5x3 20
2x1 + 1.5x2 + 0.5x3 8
x1, x2, x3 0
Restries associadas com escrivaninhas, mesas e cadeiras, respectiv.
Corresponde modelagem matemtica do seguinte problema: y1 associado com tbuas; y2 com acabamto; y3 com carpintaria.
Produto Qtidd de
Insumo Escrivaninha Mesa Cadeira Insumo Suponha uma situao onde exista escassez de insumos. Um outro
Tbua 8 6 1 48 fabricante de mveis deseja comprar os insumos disponveis na fbrica de
Acabamto 4 2 1.5 20 escrivaninhas, mesas e cadeiras.
Carpintaria 2 1.5 0.5 8
Lucro Venda $60 $30 $20 A pergunta-chave : qual o gio mximo a ser cobrado pelos insumos?
Prof. Fogliatto Pesquisa Operacional 147 Prof. Fogliatto Pesquisa Operacional 148
Definindo as variveis do problema dual O comprador deseja o menor preo, mas o preo deve
ser atraente o suficiente para induzir o fabricante de
y1 = gio mximo cobrado por uma tbua de madeira; escrivaninhas a vender seus insumos
y2 = gio mximo cobrado por 1 hora de acabamento;
y3 = gio mximo cobrado por 1 hora de carpintaria Assim:
Restrio das
8y1 + 4y2 + 2y3 60 escrivaninhas
O gio total a ser cobrado por estes insumos corresponder
funo objetivo:
Ou seja, se comprarmos todos os insumos nas quantidades necessrias
Min w = 48y1 + 20y2 + 8y3 para produzir uma escrivaninha, o gio a ser pago deve ser, no
mnimo, o que o fabricante lucraria com a venda daquele produto.
Note que a funo objetivo busca minimizar o custo de compra: O mesmo ocorre com as outros produtos: Restr. das mesas
este o ponto de vista do comprador.
6y1 + 2y2 + 1.5y3 30
Restr. das cadeiras
1y1 + 1.5y2 + 0.5y3 20
Prof. Fogliatto Pesquisa Operacional 149 Prof. Fogliatto Pesquisa Operacional 150
Para determinarmos o menor gio de compra dos
insumos que mantenha a venda desses insumos Exerccio
interessantes para o fabricante, devemos resolver o
problema dual
Determine o dual do seguinte problema de
programao linear:
As variveis y1, y2, y3 so normalmente denominadas preos-
sombra dos insumos.
Max z = x1 + 2x2
Por definio, o preo-sombra da isima
restrio corresponde
melhoria no valor z da funo objetivo ocasionada pelo s.t.: 3x1 + x2 6
incremento de uma unidade no lado direito da restrio [ou
seja, de bi para (bi + 1)].
2x1 + x2 = 5
x1, x2 0
Prof. Fogliatto Pesquisa Operacional 151 Prof. Fogliatto Pesquisa Operacional 152
Valor timo da var. dual yi (Coeficiente de ai na linha Ou seja, o problema dual possui a seguinte soluo tima:
qdo restrio i do tipo = 0 do tableau timo) - M
y1 = 51/ ; y2 = -58/23; y3 = 9/23
23
Prof. Fogliatto Pesquisa Operacional 155 Prof. Fogliatto Pesquisa Operacional 156
w = 565/23
Valor timo da var. dual yi (Coeficiente de ai na linha
qdo restrio i do tipo = 0 do tableau timo) + M
Prof. Fogliatto Pesquisa Operacional 157 Prof. Fogliatto Pesquisa Operacional 158
Exerccio
DEPROT / UFRGS
Prof. Flavio Fogliatto, Ph.D.
Prof. Fogliatto PO - Graduao 2
7 8 8
Res. 1 50 A Aosul produz trs tipos de ao em suas trs plantas. O tempo necessrio para fabricar 1
tonelada de ao (independente do tipo) e os custos de fabricao em cada planta vem dado
9 7 8 abaixo. Semanalmente, 100 toneladas de cada tipo de ao devem ser produzidas. Cada planta
Res. 2 50 opera 40 horas por semana. Escreva o problema (o objetivo minimizar o custo de fabricao
dos aos) e organize o problema no tableau do transporte.
20 18 23
Res. Artif.
20 Custo
Ao 1 Ao 2 Ao 3 Tempo (min)
Demanda 40 40 40 Planta 1 $60 $40 $28 20
Planta 2 $50 $30 $30 16
Planta 3 $43 $20 $20 15
Se x11 = d1, desconsidere as demais clulas na primeira coluna do tableau, Ao cabo de (m + n - 1) iteraes chega-se a uma base vivel inicial
j que nenhuma outra varivel bsica vir desta coluna. Atualize o valor para o problema.
de s1 para s1 - d1.
Prof. Fogliatto PO - Graduao 11 Prof. Fogliatto PO - Graduao 12
Exemplo Exemplo
O mtodo do extremo noroeste no utiliza os custos, omitidos nos tableaus
abaixo:
5 5 0 5 0
10 7 10 3
15 15
12 8 4 6 7 8 4 6
7 0
x11 = Min {12, 5} = 5 x21 = Min {10, 7} = 7
Exemplo Exemplo
5 0 5 0
7 3 3 0 7 3 0
15 5 15 10
0 8 4 6 0 5 4 6
5 0
x22 = Min {8, 3} = 3 x32 = Min {15, 5} = 5
5 0 5 0
Base
7 3 0 Inicial 7 3 0
Vivel
5 4 10 6 5 4 6 6 0
0 0 4 6 0 0 4 6
0 0
x33 = Min {10, 4} = 4 x34 = Min {6, 6} = 6
para o problema anterior. Existe um loop nico possvel para cada varivel no-bsica.
(+5-12+3) = -4 (-4) - 4 = -8
Num problema de minimizao a varivel mais positiva entra na base.
+ 2 - 3 4 9 2 3 4 9
10 10 10 10
-7 -16
14 + 12 5 1 14 12 5 1
20 10 20 10
- -4 -1
12 15 9 3 12 15 9 3
0 40 0 40
+ -2 -2
proposto no Slide 9.
Ponto de demanda - pode receber insumos de outros pontos
Resolva o problema mas no pode remeter.
do ao.
Ponto de transbordo - remete e recebe insumos de outros pontos.
Exemplo Custos
A BITCO monta PCs em Manaus (150 PCs/dia) e Assuncin do Paraguai De/Para Man Ass Bra Cur SP Rec
(200 PCs/dia) e remete para suas lojas em So Paulo e Recife, Manaus $0 - $8 $13 $25 $28
totalizando 130 PCs por loja. Assuncion - $0 $15 $12 $26 $25
Brasilia - - $0 $6 $16 $17
Curitiba - - $6 $0 $14 $16
Os PCs so remetidos via area. A BITCO suspeita que devido SPaulo - - - - $0 -
promoes e uso de outras empresas areas, seja mais econmico usar Recife - - - - - $0
Braslia e Curitiba como pontos de transbordo.
Por exemplo:
Manaus Braslia SPaulo
Cada ponto de fornecimento ter capacidade de fornecimento igual a ; capacidade = (capacidade do ponto original) + s
sua capacidade original de fornecimento.
15 12 26 25 0
; ignore remessas aos pontos artificiais; Assuncion 200
0 6 16 17 0
Braslia 350
; ignore remessas de um ponto para ele mesmo.
6 0 14 16 0
Curitiba 350
Resultado Prtica
A GM produz carros em SP e POA e tem um depsito (transbordo) em
Foz do Iguau; a companhia fornece carros para Assuncin e Buenos
Aires. O custo do frete de um carro entre os pontos de fabricao e
venda vem dado abaixo:
130 130
Manaus Braslia SPaulo
De/Para SP POA Foz Ass Bue
Spaulo $0 $140 $100 $90 $225
Assuncin Curitiba Recife POA $145 $0 $111 $110 $119
Foz $105 $115 $0 $113 $78
Assuncion $89 $109 $121 $0 - Demanda
130 Buenos $210 $117 $82 - $0
1100 2900 2400 1500
Capacidade
Minimize os custos de transporte.
Prof. Fogliatto PO - Graduao 39 Prof. Fogliatto PO - Graduao 40
Exemplo: Aloque trabalhos nas mquinas tal
O Problema da Alocao que tempo de setup seja mnimo
So problemas balanceados de transporte nos quais todas as demandas
e todas as capacidades so iguais a 1. 14 min
Trab. 1 Maq. 1
5 min Tempo (min)
As variveis do problema so booleanas: Tr.1 Tr.2 Tr.3 Tr.4
Trab. 2 Maq. 2 Mq.1 14 5 8 7
8 min Mq.2 2 12 6 5
xij = 1; se o ponto de abastecimento i for utilizado para suprir a demanda Mq.3 7 8 3 9
no ponto de demanda j. Trab. 3 Maq. 3 Mq.4 2 4 6 10
7 min
xij = 0; caso contrrio.
Trab. 4 Maq. 4
Restries de mquina: Restries de trabalho: Passo 2 - determine o no mnimo de linhas (horizontais e/ou verticais)
x11+x12+x13+x14 = 1 x11+x21+x31+x41 = 1 necessrias para cobrir todos os zeros no tableau de custos reduzidos. Se
forem necessrias m linhas, a resposta tima dada pelos zeros cobertos
x21+x22+x23+x24 = 1 x12+x22+x32+x42 = 1 xij = 1 ou 0 por linhas no tableau. Se menos de m linhas forem necessrias, siga para
x31+x32+x33+x34 = 1 x13+x23+x33+x43 = 1 o passo 3.
x41+x42+x43+x44 = 1 x14+x24+x34+x44 = 1
Prof. Fogliatto PO - Graduao 43 Prof. Fogliatto PO - Graduao 44
Algoritmo Hngaro Exemplo
Mnimo da linha
Exemplo...
Novo tableau aps subtrao dos mnimos de Novo tableau aps subtrao dos mn. das
linha colunas
9 0 3 2 9 0 3 0
3 linhas.
0 10 4 3 0 10 4 1 m = 4, logo proce-
demos c/ passo 3.
4 5 0 6 4 5 0 4
0 2 4 8 0 2 4 6 k=1
Mn. da coluna 0 0 0 2
Prof. Fogliatto PO - Graduao 47 Prof. Fogliatto PO - Graduao 48
Subtraindo e somando k nas devidas clulas... Como identificar a soluo tima
Note que o mnimo O nico zero coberto na col. 3
10 0 3 0 das linhas e colunas 0! 10 0 3 0 x33. Logo, x33 = 1, e a col. 3
e linha 3 no podem mais ser
usadas.
0 9 3 0 0 9 3 0
O nico zero coberto na col. 2
5 5 0 4 5 5 0 4 x12. Logo, x12 = 1, e a col. 2
4 linhas. Como m = 4, e linha 1 no podem mais ser
temos uma soluo tima. usadas.
0 1 3 5 0 1 3 5
O PROBLEMA DUAL
Prtica
Um treinador necessita formar um time de nadadoras para competir em Todo o problema de programao linear possui um problema
uma prova olmpica de 400 metros medley. As nadadoras apresentam dual correspondente.
as seguintes mdias de tempo em cada estilo: Chamaremos o problema original de primal e o problema
dual de dual.
Tempo (s) /100 m
Nadadora Livre Peito Golfinho Costas
1 54 54 51 53 Primal Dual
2 51 57 52 52 Max Min
3 50 53 54 56
4 56 54 55 53 Min Max
P
Max z = c1x1 + c2x2 + + cnxn Max z = 60x1 + 30x2 + 20x3
r
s.a: a11x1 + a12x2 + + a1nxn b1 s.a: 8x1 + 6x2 + 1x3 48
i
a21x1 + a22x2 + + a2nxn b2 4x1 + 2x2 + 1.5x3 20
m
M M M M
2x1 + 1.5x2 + 0.5x3 8
a
am1x1 + am2x2 + + amnxn bm x1, x2, x3 0
l
Definindo as variveis do problema dual O comprador deseja o menor preo, mas o preo deve
ser atraente o suficiente para induzir o fabricante de
y1 = gio mximo cobrado por uma tbua de madeira; escrivaninhas a vender seus insumos
y2 = gio mximo cobrado por 1 hora de acabamento;
y3 = gio mximo cobrado por 1 hora de carpintaria Assim:
Restrio das
8y1 + 4y2 + 2y3 60 escrivaninhas
O gio total a ser cobrado por estes insumos corresponder
funo objetivo:
Ou seja, se comprarmos todos os insumos nas quantidades necessrias
Min w = 48y1 + 20y2 + 8y3 para produzir uma escrivaninha, o gio a ser pago deve ser, no
mnimo, o que o fabricante lucraria com a venda daquele produto.
Note que a funo objetivo busca minimizar o custo de compra: O mesmo ocorre com as outros produtos: Restr. das mesas
este o ponto de vista do comprador.
6y1 + 2y2 + 1.5y3 30
Restr. das cadeiras
1y1 + 1.5y2 + 0.5y3 20
Prof. Fogliatto PO - Graduao 59 Prof. Fogliatto PO - Graduao 60
Para determinarmos o menor gio de compra dos
insumos que mantenha a venda desses insumos
interessantes para o fabricante, devemos resolver o
problema dual
Por definio, o preo-sombra da isima restrio corresponde Determine o dual do seguinte problema de programao linear:
melhoria no valor z da funo objetivo ocasionada pelo Max z = x1 + 2x2
incremento de uma unidade no lado direito da restrio [ou s.t.: 3x1 + x2 6
seja, de bi para (bi + 1)]. 2x1 + x2 = 5
x1, x2 0
Valor timo da var. dual yi (Coeficiente de ai na linha Ou seja, o problema dual possui a seguinte soluo tima:
qdo restrio i do tipo = 0 do tableau timo) - M
y1 = 51/ ; y2 = -58/23; y3 = 9/23
23
w = 565/23
Valor timo da var. dual yi (Coeficiente de ai na linha
qdo restrio i do tipo = 0 do tableau timo) + M
2 3 Arcos = {(1,2), (2,3), (3,4) TRILHA = sequncia de arcos tal que o n terminal de cada arco
(4,3), (4,1)} idntico ao n inicial do arco seguinte.
3 3 2
3 5
Prof. Fogliatto PO - Graduao 73 Prof. Fogliatto PO - Graduao 74
Passo 2 Exemplo
9
2 6
3 Todos os arcos so
Selecione o n com menor valor dentre aqueles com rtulo temporrio; 2 6
transforme seu rtulo em permanente. 7
1 3
3
3
1
4 Deseja-se encontrar a trilha
Se o n escolhido acima for o n final, pare. Caso contrrio, retorne 4 5 mais curta entre os ns 1 e 6.
ao passo 1. 3
Todos os demais ns recebem rtulos provisrios iguais a distncia A menor distncia entre ns 1 e 2 = 3.
direta entre o n em questo e o n 1.
Para todos os demais ns (j = 5,6), calcule o nmero O menor dos rtulos temporrios
dado pela soma do valor no n 3 (=5) e a distncia
direta entre o n 3 e o n j em questo vira permanente (n 5).
Compare o nmero obtido com o rtulo temporrio do n j; o menor A menor distncia entre ns 1 e 5 = 7.
dentre esses valores passa a ser o novo rtulo temporrio de j.
Para j = 6 min (7+3, 11) = 10 L (5) = [0*, 3*, 5*, 4*, 7*, 10*]
L (4) = [0*, 3*, 5*, 4*, 7*, 10]
1 2
x1 + x2 6
Soluo tima do IPR dado anteriormente :
9x1 + 5x2 45
z* = 165/4
x1 , x2 0 x1 = 15/4
x1 , x2 inteiros x2 = 9/4
5 6
13 14
15 16
Arvore hierrquica de ltimo SP a ser resolvido
soluo do problema SP3
Soluo de SP3 z* = 39, x1 = x2 = 3:
Trata-se de uma soluo candidata com z* <
LI
17 18
Aspectos importantes do
Branch-and-bound p/ PIs puros Mais aspectos
21 22
Exerccio 1 Exerccio 2
PI puro PI misto
Min z = 4x1 + 5x2 Max z = 2x1 + x2
s.a: s.a:
x1 + 4x2 5 5x1 + 2x2 8
3x1 + 2x2 7 x1 + x2 3
x1, x2 0 e inteiros x1, x2 0; x1 inteiro
23 24
Branch-and-Bound em problemas de
sequenciamento de trabalhos em Apresentao do problema
mquinas
Suponha 4 trabalhos a serem processados Atraso do trabalho medido pelo nmero de
numa mesma mquina.
dias aps a data de entrega em que o trabalho
Tempo necessrio p/ processamento de cada completado:
trabalho e datas de entrega:
Trabalhos finalizados na data de entrega ou antes
tm atraso zero
27 28
Escolhe-se nodo c/ menor atraso Continuando a desdobrar
D (nodo 4) p/ continuar o mtodo pelo mesmo ramo
Qualquer sequncia associada ao nodo 4 deve Escolhe-se nodo 7 (menor valor de D) para
desdobrar
ter x13 = 1, x23 = 1 ou x33 = 1
Qualquer sequncia associada a este nodo
Clculo do limite inferior LI de atraso similar deve ter x12 = 1 ou x22 = 1. Os atrasos totais
quele visto anteriormente: so:
x33 = 1, ou seja, trabalho 3 seria completado com Nodo 9: sequncia 1-2-3-4. Atraso total: 7(tr.4) +
atraso total de 15 - 12 dias. Os 15 dias foram obtidos 3(tr.3) + (6+4-4)(tr.2) + 0(tr.1) = 16 dias
somando (6 + 4 + 5). O atraso total ser de pelo Nodo 8: sequncia 2-1-3-4. Atraso total: 7(tr.4) +
menos 3 + 7 dias (D 10) 3(tr.3) + (4+6-8)(tr.1) + 0(tr.2) = 12 dias
29 30
31 32
Desdobra-se o nodo 3 Arvore final de resultados
Qualquer sequncia deve ter x13 = 1, x23 = 1 ou x43 = 1.
Clculo do limite inferior de atraso :
x13 = trabalho 1 completo no final do dia (8+4+6) = 18 - 8 = 10 +
11 = 21
33 34