Escolar Documentos
Profissional Documentos
Cultura Documentos
Engenharia de Produo
DEPROT / UFRGS
Profs. Flavio Fogliatto, Ph.D.
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
Prof. Fogliatto
Pesquisa Operacional
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
Prof. Fogliatto
Pesquisa Operacional
Referncias Bibliogrficas
LIVRO-TEXTO: Operations Research, Applications and
Algorithms, de Wayne L. Winston, 3a. Ed., Duxburry Press.
Adicionais (no mesmo nvel):
1. Pesquisa Operacional, de Harvey Wagner, 2a. Ed., Prentice-Hall
do Brasil.
2. Pesquisa Operacional, de Pierre J. Ehrlich, Ed. Atlas.
Prof. Fogliatto
Pesquisa Operacional
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.
Pesquisa Operacional
2. PROGRAMAO LINEAR
Problemas de programao so modelados tal que o melhor uso de recursos
escassos possa ser determinado, conhecidos os objetivos e necessidades do
analista. Problemas de programao linear compem uma sub-classe de
problemas nos quais a modelagem interiamente expressa em termos de
equaes lineares. Parece intuitivo que para ser possvel a soluo de um dado
problema atravs da programao linear, o problema deve ser, incialmente,
formulado em termos matemticos.
A construo de um modelo de programao linear seguetrs passos bsicos
(Ravindran et al., 1987):
Passo I. Identifique as variveis desconhecidas a serem determinadas
(elas so denominadas variveis de deciso) e represente-as atravs de
smbolos algbricos (por exemplo, x e y ou x1 e x2).
Passo II. Liste todas as restries do problema e expresse-as como
equaes (=) ou inequaes (, ) lineares em termos das variveis de
deciso definidas no passo anterior.
Passo III. Identifique o objetivo ou critrio de otimizao do problema,
representando-o como uma funo linear das variveis de deciso. O
objetivo pode ser do tipo maximizar ou minimizar.
Prof. Fogliatto
Pesquisa Operacional
A
7
4
4
Modelo
B
3
4
2
C
6
5
3
Prof. Fogliatto
Pesquisa Operacional
Pesquisa Operacional
FUNO OBJETIVO
Em qualquer problema de PL, o analista sempre vai desejar maximizar
(ex., lucro) ou minimizar (ex., custo) alguma funo das variveis de
deciso.
A funo a ser maximizada (ou minimizada) a funo objetivo.
A Politoy deseja maximizar seus ganhos semanais. Ou seja:
ganho semanal = ganho semanal oriundo da venda de soldados +
ganho semanal oriundo da venda de trens.
= ($/soldado).(soldados/sem) + ($/trem).(trem/sem)
= 27x1 + 21x2
Tambm devemos considerar:
custo semanal com matria-prima: 10x1 + 9x2
custo semanal com mo-de-obra: 14x1 + 10x2
Prof. Fogliatto
Pesquisa Operacional
FUNO OBJETIVO
O que a Politoy deseja maximizar :
(27x1 + 21x2) - (10x1 + 9x2) - (14x1 + 10x2) = 3x1 + 2x2
Usaremos a varivel z para designar o valor assumido pela funo
objetivo.
Assim:
Max z = 3x1 + 2x2
Os nmeros 3 e 2 so chamados coeficientes da funo objetivo. Eles
indicam a contribuio de cada varivel nos ganhos da empresa.
Prof. Fogliatto
Pesquisa Operacional
10
10
RESTRIES
A medida que x1 e x2 crescem, o valor da funo objetivo aumenta.
Mas x1 e x2 no podem crescer indefinidamente. Trs restries
limitam seu crescimento:
Restrio 1 - 100 h de acabamento / semana.
Restrio 2 - 80 h de carpintaria / semana
Restrio 3 - no mais que 40 soldados / semana, devido a limitaes
na prpria demanda.
Restries 1 3 devem ser expressas em termos das variveis de
deciso x1 e x2.
Prof. Fogliatto
Pesquisa Operacional
11
11
RESTRIES
Restrio 1:
(total hs acabamento/sem.) = (hs.acab./sold.).(sold. produzidos/sem.)
+ (hs.acab./trem).(trens produzidos/sem.)
(total hs acabamento/sem.) = 2(x1) + 1(x2) = 2x1 + x2
A restrio 1 ser dada por:
2x1 + x2
100
Pesquisa Operacional
12
12
80
Restrio 3:
A restrio 3 definida pela limitao do nmero de soldados produzidos por semana (devido a limitaes na demanda):
x1
Prof. Fogliatto
40
Pesquisa Operacional
13
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
Identificam os tipos de valores que as variveis podem assumir.
Podem ser de trs tipos: 0
irrestrita
100
80
x1
40
x1, x2 0
2x1 + x2
x1 + x2
Prof. Fogliatto
14
z = cx
sujeito a:
Ax = b
x 0
b 0
onde A uma matriz de dimenso (m n), x um vetor (n 1), b um vetor (m
1) e c um vetor transposto (1 n). A matriz A normalmente denominada
matriz das restries ou matriz de coeficientes; ela contm os coeficientes
tecnolgicos que compem as restries. O vetor x o vetor de deciso, j que
contm a lista das variveis de deciso consideradas no problema. O vetor b
conhecido como lado direito das restries ou vetor das necessidades; ele indica
a disponibilidade de recursos associados cada restrio. Por fim, o vetor c
conhecido como vetor de custos do problema; ele contm os coeficientes de custo
que compem a funo objetivo.
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.
Formule o problema tal que os ganhos do fazendeiro sejam
maximizados.
Prof. Fogliatto
Pesquisa Operacional
15
= 8
+ x5 = 7
x1 0, , x5 0
Em notao matricial, tem-se:
8
b =
( 21)
7
1 2 2 1 0
A =
( 25 )
3 4 1 0 1
x1
x
2
x = x3
( 51)
x4
x5
c = (5 2 3 1 1)
(15 )
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
Prof. Fogliatto
Pesquisa Operacional
16
16
Prof. Fogliatto
Pesquisa Operacional
17
17
Representao grfica
Representao da restrio 2x1 + 3x2 = 6:
x2
4
3
2
2x1 + 3x2 6
(0,0)
x1
2
2x1 + 3x2 6
Prof. Fogliatto
2x1 + 3x2 = 6
Pesquisa Operacional
18
z = cx
sujeito a:
Ax = b
x 0
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
100
(2)
80
(4)
60
Soluo tima:
(1) Desenhe o vetor z.
(2) Desenhe linhas ortogonais ao vetor z.
Essas so as linhas de isocusto.
40
20
Prof. Fogliatto
20
(3)
40
60
80
Pesquisa Operacional
100
x1
19
19
Prof. Fogliatto
Pesquisa Operacional
20
20
Outro exemplo:
exemplo
Solucione graficamente o problema e identifique o tipo de conjunto
de solues resultante.
Um empresa de eletrodomsticos planeja veicular seus produtos em
comerciais de TV durante a novela das 8 e os jogos da seleo na Copa.
Comerciais na novela so vistos por 7 milhes de mulheres e 2 milhes
de homens e custam $50000.
Comerciais nos jogos so vistos por 2 milhes de mulheres e 12 milhes
de homens, e custam $100000.
Qual a distribuio ideal de comerciais se a empresa deseja que eles sejam
vistos por 28 milhes de mulheres e 24 milhes de homens a um menor
custo possvel?
Prof. Fogliatto
Pesquisa Operacional
21
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
Soluo tima: (3.6, 1.4) com z = $320. A soluo nica.
Prof. Fogliatto
Pesquisa Operacional
22
15 (mo-de-obra)
120 (material Y)
22
x2
10
z
Prof. Fogliatto
Pesquisa Operacional
10
x1
23
23
CASOS ESPECIAIS:
(1) Problemas com solues alternativas (vrias solues so
simultaneamente timas).
Nestes casos, a linha de isocusto, ao abandonar o espao de
solues viveis, intersecciona com uma linha inteira
(e no somente um ponto) desse conjunto.
Prof. Fogliatto
Pesquisa Operacional
24
+ 7x3
1250 (nutriente A)
1x1 + 1x2
250 (nutriente B)
5x1 + 3x2
900 (nutriente C)
24
CASOS ESPECIAIS:
(2) Problemas com soluo tendendo ao infinito.
Prof. Fogliatto
Pesquisa Operacional
25
25
CASOS ESPECIAIS:
(3) Problemas sem soluo
Prof. Fogliatto
Pesquisa Operacional
26
Produto
Lava-louas
Lava-roupas
Designao
Et
Mt
26
Prof. Fogliatto
Pesquisa Operacional
Tipo de custo
Designao
ct
Lava-louas (matrias-primas)
vt
Lava-roupas (matrias-primas)
jt
Estocagem lava-louas
kt
Estocagem lava-roupas
pt
Hora de trabalho
27
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
2
1
16
Cobre
1
2
11
Zinco
1
3
15
Chumbo
$30
$50
Preo de Venda
Prof. Fogliatto
Pesquisa Operacional
28
Soluo do exerccio:
28
Problemas Tpicos de
Formulao
Escolha da dieta
Scheduling de pessoal
Deciso Financeira
Problema da Mistura
Programao da Produo
Prof. Fogliatto
Pesquisa Operacional
29
h1 1,1(5000)
h1 4500
h1 5500
o que resulta em
As restries para o primeiro trimestre podem ser reescritas para os trimestres t =
2,,4 conforme apresentado abaixo:
dt + rt-1 - rt = Et
wt + st-1 - st = Mt
1,5dt + 2wt - ht 0
ht 0,9ht-1
ht 1,1ht-1
29
Calorias
Chocolate
(g)
Aucar
(g)
Gordura
(g)
Preo
(poro)
Biscoito
400
0.5
Sorvete
200
0.2
Refrig.
150
0.3
Torta
queijo
500
0.8
Pesquisa Operacional
30
30
Variveis de deciso:
x1 = pores de biscoitos;
x2 = pores de sorvete;
x3 = pores de refrigerante;
x4 = pores de torta de queijo;
Funo objetivo:
(custo total) = (custo dos biscoitos) + (custo do sorvete) + (custo do
refrigerante) + (custo da torta de queijo)
Min z = 50 x1 + 20 x2 + 30 x3 + 80 x4
Prof. Fogliatto
Pesquisa Operacional
31
31
Restries:
(1) Ingesto mnima de 500 calorias;
(2) Ingesto mnima de 6 g de chocolate;
(3) Ingesto mnima de 10 g de acar;
(4) Ingesto mnima de 8 g de gordura.
(1) 400 x1 + 200 x2 + 150 x3 + 500 x4 500
(2) 3 x1 + 2 x2 3
(3) 2 x1 + 2 x2 + 4 x3 + 4 x4 10
(4) 2 x1 + 4 x2 + x3 + 5 x4 8
Variveis 0.
Prof. Fogliatto
Pesquisa Operacional
32
Minimizar
c x
i =1 j =1
ij ij
sujeito a:
n
ij
j =1
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
Dia
Sexta
Sb.
Empr.
14
16
Dia
Dom.
Empr.
11
Por exigncia sindical, cada trabalhador trabalha cinco dias consecutivos e descansa dois.
Formule o problema tal que o nmero de empregados contratados
seja o mnimo necessrio para atender s necessidades de mo-deobra.
Prof. Fogliatto
Pesquisa Operacional
33
3. ALGORITMO SIMPLEX
Um simplex uma forma geomtrica com uma propriedade especial, a saber.
Uma linha que passe por quaisquer dois pontos pertencentes um simplex deve
estar contida inteiramente dentro do simplex. Por exemplo, A Figura 3.1(a) traz
um exemplo de uma figura geomtrica que no apresenta a propriedade acima.
Em contrapartida, a Figura 3.1(b) apresenta a propriedade que caracteriza uma
simplex. De forma geral, a rea formada pela interseco das restries de um
problema de programao linear (PL) uma forma geomtrica do tipo simplex.
Conforme visto anteriormente, a regio formada pela interseco das restries
de um problema de PL denominada espao de solues viveis.
33
Variveis de deciso:
xi = nm. de empregados trabalhando no dia i;
Funo objetivo:
Min z = x1 + x2 + x3 + x4 + x5 + x6 + x7
Restries:
x1
x2
x3
x4
x5
x6
Prof. Fogliatto
17
13
15
19
14
16
x7 11
xi 0
Pesquisa Operacional
Qual o problema
com essa
formulao?
34
34
PROBLEMAS
(1) A funo-objetivo no o nmero de funcionrios, como se
imagina. Cada funcionrio est sendo computado 5 vezes.
Por ex.: um funcionrio que comea a trabalhar na segunda,
trabalha de segunda a sexta e est includo nas variveis
x1, x2, x3, x4, x5.
(2) A inter-relao entre as variveis x1, x2, ..., x5 no est capturada
na formulao.
Por ex.: alguns funcionrios que trabalham na segunda estaro
trabalhando na tera. Ou seja x1 e x2 esto inter-relacionadas
mas isso no aparece na formulao.
Prof. Fogliatto
Pesquisa Operacional
35
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:
xi = nm. de empregados comeando a trabalhar no dia i;
Cada empregado comea a trabalhar em um nico dia, no sendo assim
contados mais de uma vez.
Funo objetivo:
Min z = x1 + x2 + x3 + x4 + x5 + x6 + x7
Prof. Fogliatto
Pesquisa Operacional
36
Aps introduzir as variveis de folga f1 e f2, o problema passa a ser escrito como:
Max x1 + 3x2
s.a
x1 + 2x2 + f1
x2
x1 ,
= 4
+ f2 = 1
x2 0
36
Prof. Fogliatto
Pesquisa Operacional
37
Observe que para traar as retas correspondentes s restries, basta equacionlas para determinar os pontos de interseco com os eixos x1 e x2. Por exemplo, a
primeira restrio intercepta o eixo x1 quando x2 = 0. Ignorando a varivel de
folga associada primeira restrio (f1) e transformando a inequao em equao,
tem-se:
x1 + 2x2 = 4
x1 + 2(0) = 4
x1 = 4
Repetindo o procedimento, para o caso em que x1 = 0, determina-se o ponto onde
a primeira restrio intersecciona o eixo x2; isto :
x1 + 2x2 = 4
0 + 2x2 = 4
x2 = 2
Sendo assim, para representar a primeira restrio no espao bidimensional (x1,
x2), basta identificar os pontos (x1, x2) = (4, 0) e (x1, x2) = (0, 2) e traar uma reta
que passe pelos dois pontos. Na Figura 3.2, a reta correspondente primeira
restrio vem identificada como f1 = 0. Tal identificao procedente, j que
exatamente sobre a reta, a varivel de folga assume um valor igual a 0 e a
inequao correspondente restrio assume o formato de uma equao.
37
Restries:
x1
x1
x1
x1
x1
x2
x3
+
+
+
+
+
+
+
x4
x2
x2
x2
x2
x3
x4
+
+
+
+
+
+
+
x5
x5
x3
x3
x3
x4
x5
+
+
+
+
+
+
+
x6
x6
x6
x4
x4
x5
x6
+
+
+
+
+
+
+
x7
x7
x7
x7
x5
x6
x7
xi
17
13
15
19
14
16
11
0
Pesquisa Operacional
38
38
Pesquisa Operacional
39
x1 x2 f1 f 2
1 2 1 0
A=
0 1 0 1
a1 a2 a3 a4
x1 x2 f1 f 2
c = [1, 3, 0, 0]
t
b=
x t = [x1 , x2 , f1 , f 2 ]
f1 0
f 2 0
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.
Investim. 2 = requer um investimento de $6,000 no tempo 0 e
de $1,000 em 2 anos e tem um retorno de $8,000 em 1 ano.
Qual o melhor investimento (r = 0.2)?
VLP (Inv. 1) =
=
VLP (Inv. 2) =
=
Prof. Fogliatto
Pesquisa Operacional
40
B
NB
A = [ f1 f 2 x1 x2 ]
f
b = 1
f2
c = [ f1 ,
NB
f2
x1 , x2 ]
NB
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:
Gasto t =0
Gasto t =1
VLP
Inv. 1
$11
$3
$13
Inv. 2
$53
$6
$16
Inv. 3
$5
$5
$16
Inv. 4
$5
$1
$14
Inv. 5
$29
$34
$39
Prof. Fogliatto
ct = [c B c N ]
Pesquisa Operacional
A = [B N ]
b t = [b1 , b2 , K , bn ]
41
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
x
N
B
41
Varivel de deciso:
A empresa deseja determinar qual frao de cada investimento deve ser
comprada:
xi = frao do investimento i comprada pela empresa.
Funo objetivo:
Consiste em maximizar os VLP dados na tabela:
Max z = 13x1 + 16x2 + 16x3 + 14x4 + 39x5
Prof. Fogliatto
Pesquisa Operacional
42
Bx B + Nx N = b
e ento:
Bx B = b Nx N
resolvendo a equao acima para xB, isto , multiplicando-se ambos os lados da
equao por B-1, obtm-se:
x B = B 1b B 1Nx N
A matriz N, derivada de A e correspondendo s colunas no-bsicas de A, pode
ser escrita em termos de suas colunas no-bsicas aj. O mesmo pode ser feito
para o vetor xN, que contm as variveis de deciso no-bsicas; o vetor xN pode
ser escrito em termos de suas variveis de deciso no-bsicas xj.
Para reescrever N e xN conforme sugerido acima, necessrio observar a
equivalncia de duas representaes algbricas, descritas a seguir.
Sejam N e xN dados por:
42
Restries:
(1) A empresa no pode investir mais de $40 no tempo 0:
11x1 + 53x2 + 5x3 + 5x4 + 29x5 40
(2) A empresa no pode investir mais de $20 no tempo 1:
3x1 + 6x2 + 5x3 + x4 + 34x5 20
Falta alguma restrio?
(3) A empresa no pode comprar mais que 100% de nenhum
investimento:
xi 1
(4) Todas as variveis devem ser positivas.
Prof. Fogliatto
N = [a1
x tN = [x1
Pesquisa Operacional
43
a2 L aP ]
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.
Prof. Fogliatto
Pesquisa Operacional
44
3 6 8
N=
1 2 7
a1 a 2 a 3
Por convenincia e para manter a consistncia notacional, as trs colunas da
matriz N acima so denominadas aj, j = 1,2,3.
Associada a cada coluna de N existe uma varivel de deciso xj. Essas variveis
vm apresentadas no vetor xN, abaixo:
x tN = [x1
x2
x3 ]
x1
3 6 8 3x1 + 6 x2 + 8 x3
Nx =
x2 =
1 2 7 x 1x1 + 2 x2 + 7 x3
3
t
N
44
Prof. Fogliatto
Pesquisa Operacional
45
Nx N = a j x j
jR
No exemplo, j = 1, 2, 3. Ento:
a x
jR
= a1 x1 + a 2 x2 + a 3 x3 =
3
6
8
1 x1 + 2 x2 + 7 x3 =
3x1 + 6 x2 + 8 x3
1x + 2 x + 7 x
2
3
1
ctN x N
pode ser representado, alternativamente, como:
c
jR
xj
45
Prof. Fogliatto
Pesquisa Operacional
46
x B = B 1b B 1Nx N
utilizando somatrios. Assim, explicitam-se as variveis no-bsicas na equao.
A representao dada por:
x B = B 1b
jR
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
xj
46
Ocatanagem
Enxofre (%)
Gas 1
10
1.0
Gas 2
8
2.0
Gas 3
6
1.0
Prof. Fogliatto
Pesquisa Operacional
47
z = ct x
Mais uma vez particionando os vetores em termos de variveis bsicas e nobsicas, obtm-se:
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
c
jR
t
B
B 1a j x j + c tN x N
47
Variveis de deciso:
A Texaco deve decidir sobre (i) quanto dinheiro gastar na publicidade de
cada tipo de gasolina e (ii) qual a mistura apropriada de leos.
ai = $/dia gasto na publicidade da gasolina i.
xij = barris de leo i gastos/dia para produzir gasolina j.
Funo objetivo:
Primeiro, note que:
x11 +x12 + x13 = bar.leo 1 consum./dia.
x21 +x22 + x23 = bar.leo 2 consum./dia.
x31 +x32 + x33 = bar.leo 3 consum./dia.
Prof. Fogliatto
Pesquisa Operacional
48
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
z 0 = c tB B 1b
Observe que o valor z0 na equao acima corresponde ao valor atual da funo
objetivo. Como as variveis no-bsicas assumem valor igual a 0 por definio
(ou seja, xN = 0), o segundo termo direita da expresso
x B = B 1b B 1Nx N
desaparece. Logo,
z 0 = c tB B 1b = c tB x B
o que efetivamente corresponde ao valor atual da funo objetivo, considerando a
base atual representada por xB.
48
Funo objetivo:
(1) Ganhos/dia com vendas de gasolina:
70(x11 +x21 + x31) + 60(x12 +x22 + x32) + 50(x13 +x23 + x33)
(2) Custo/dia da compra de leo:
45(x11 +x12 + x13) + 35(x21 +x22 + x23) + 25(x31 +x32 + x33)
(3) Custo/dia com propaganda:
a1 + a2 + a3
(4) Custo/dia produo:
4(x11 +x12 + x13 + x21 +x22 + x23+ x31 +x32 + x33)
Lucro dirio: (1) - (2) - (3) - (4)
Prof. Fogliatto
Pesquisa Operacional
49
Assim, a expresso:
z = c tB B 1b
c
jR
t
B
c x
B 1a j x j +
jR
z = z0
c
jR
t
B
B 1a j x j +
c x
jR
z = z0
(c
jR
t
B
B 1a j c j x j
z = z0
(c
jR
t
B
y j cj xj
z j = c tB y j
49
Funo objetivo:
Max z = 21x11 +11x12 + x13 + 31x21 + 21x22 + 11x23 + 41x31 +
31x32 + 21x33 - a1 - a2 - a3
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
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.
Parece claro que o resultado apresentado acima estabelece o critrio utilizado
pelo algoritmo simplex para mudana de base. Assim, num problema de
maximizao, a base atual (que gera o valor atual z0 da funo objetivo) s ser
substituda por uma outra base se, para alguma varivel no-bsica
j R, o
valor zj cj < 0. Quando este for o caso, o segundo termo direita da igualdade
na expresso para z acima ser positivo e o valor de z sofrer um incremento,
exatamente o que se deseja em um problema de maximizao.
50
Restries:
(4-6) Compra diria de leo 1-3 no deve exceder 5000 barris.
x11 + x12 + x13 5000
x21 + x22 + x23 5000
x31 + x32 + x33 5000
(7) Produo/dia de gas no deve exceder 14000 barris.
x11 +x12 + x13 + x21 +x22 + x23+ x31 +x32 + x33 14000
(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
x11 + x 21 + x 31
N barris na mistura
Pesquisa Operacional
51
x1 + 2x2 + f1
x2
x1 ,
= 4
+ f2 = 1
x2 0
As bases possveis para este problema so (x1, x2), (x1, f1), (x1, f2), (x2, f1), (x2, f2) e
(f1, f2). Tente identificar os pontos correspondentes a essas bases na Figura 3.2.
Quatro bases j haviam sido identificadas previamente, correspondendo aos
pontos A D da figura; essas so as bases viveis do problema. Outras duas
bases no-viveis podem ser identificadas. Bases no-viveis no so
consideradas no algoritmo simplex, j que no satisfazem o conjunto de restries
que compem o problema.
51
(9) Mistura de leos p/produzir gas 2 deve ter uma octanagem mdia
de pelo menos 8 graus.
4x12 - 2x22 0
(10) Mistura de leos p/produzir gas 3 deve ter uma octanagem
mdia de pelo menos 6 graus.
6x13 + 2x33 0
A restrio (10) redundante e no precisa ser includa no modelo.
Por qu?
Porque x13 e x33 0 por definio. Verifique a octanagem dos leos
crus para entender o porqu desta redundncia.
Prof. Fogliatto
Pesquisa Operacional
52
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
1 0
B=
0 1
Pesquisa Operacional
53
1 0
B 1 =
0 1
x t = [x B x N ] = [ f1 , f 2
x1 , x2 ]
c t = [c B c N ] = [0, 0 1, 3]
4
b=
1
53
Trim. 1
40
Demanda
Prof. Fogliatto
Trim. 2
60
Trim. 3
75
Trim. 4
25
Pesquisa Operacional
54
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
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
Pesquisa Operacional
55
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:
A Regata deve determinar quantos barcos produzir usando mo-de-obra
normal e horas-extra a cada trimestre:
xt = barcos produzidos por m.o. normal durante trim. t.
yt = barcos produzidos por horas-extra durante trim. t.
Variveis de estoque tambm devem ser definidas:
it = barcos em estoque no final do trimestre t.
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)
Prof. Fogliatto
Pesquisa Operacional
56
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:
b
f1 4 2
f = 1 1 x2
2
b
y2
56
Funo objetivo:
Min z = 400x1 + 400x2 + 400x3 + 400x4 + 450y1 + 450y2 + 450y3 +
450y4 + 20i1 + 20i2 + 20i3 + 20i4
Estoque no final de cada trimestre:
it = it-1 + (xt + yt) - dt , t = 1,,4
onde dt = demanda no trimestre t.
Para satisfazer a demanda ao final de cada trimestre:
it-1 + (xt + yt) dt
ou it = it-1 + (xt + yt) dt 0
Prof. Fogliatto
Pesquisa Operacional
57
f1 4
f = 1
2
2 2
1 = 1
1 2
B = [ f1 , x2 ] =
0 1
ctB = [0, 3]
1 2
B 1 =
0 1
1 2 4 2
x B = B 1b =
=
0 1 1 1
N = [x1 , f 2 ]
A base inversa B-1 foi obtida atravs do mtodo de Gauss-Jordan, no slide 96.
57
Restries:
(1-4) Produo normal em cada trimestre no deve exceder 40
barcos:
x1 40
x2 40
x3 40
x4 40
(5-8) Demanda deve ser satisfeita a cada trimestre:
i1 = 10 + x1 + y1 - 40
i3 = i2 + x3 + y3 - 75
i2 = i1 + x2 + y2 - 60
i4 = i3 + x4 + y4 - 25
Pesquisa Operacional
58
1 2 1
( z1 c1 ) = c tB B 1a1 c1 = [0, 3]
1 = 1
0 1 0
58
0
-1
0
-1
-1
0
1
0.5
-1
1.2
0
0
2
1
0.5
0
0
-1
3
0
1
0
1.9
1.5
Pesquisa Operacional
59
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 =
x
1
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, identificase 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 ] =
0 1
c tB = [1, 3]
1 2
B 1 =
0 1
1 2 4 2
x B = B 1b =
=
0 1 1 1
N = [ f1 , f 2 ]
59
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
Nenhuma varivel no-bsica apresenta valor de zj - cj < 0. Assim, a base atual
(x1, x2) tima e o algoritmo simplex terminado. Geometricamente, possvel
identificar o ponto C como ponto tima na Figura 3.2. Avanando na direo do
vetor c, o ponto C o ponto de mximo avano antes de abandonar-se o espao
de solues viveis. O algoritmo simplex pode ser compreendido como uma
alternativa algbrica para o procedimento de soluo grfica. Tal recurso
algbrico torna-se particularmente til em problemas de maior dimenso
(tridimensionais, quadridimensionais, etc.).
60
Pesquisa Operacional
61
z
xB
zj cj
y j = B 1a j
c tB B 1b
B 1b
3.3regra,
- Tableau
do simplex.
O algoritmo simplexFigura
, via de
inicializado
utilizando variveis de folga
como base inicial. Quando variveis de folga no encontram-se disponveis,
variveis de folga artificiais so utilizadas, conforme apresentado mais adiante.
61
Este o arquivo.
Prof. Fogliatto
Pesquisa Operacional
62
x1 + 2x2 + f1
x2
x1 ,
= 4
+ f2 = 1
x2 0
As variveis de folga (f1, f2) formam a primeira base. Como as variveis de folga
no participam orginalmente da funo objetico, seus coeficientes de custo cj
sero sempre 0 e o primeiro vetor cB utilizado no algoritmo simplex ser um vetor
de zeros. Desta forma, a quantidade zj - cj dada pela expresso:
( 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
Prof. Fogliatto
Pesquisa Operacional
63
x1
-1
x2
-3
f1
0
f2
0
RHS
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
-1
x2
-3
f1
0
f2
0
RHS
0
63
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
e as linhas que compem as restries no tableau so copiadas diretamente do
problema de PL em estudo. Utilizando os dados do exemplo:
Max x1 + 3x2
s.a
x1 + 2x2 + f1
x2
x1 ,
= 4
+ f2 = 1
x2 0
z
f1
f2
x1
-1
1
0
x2
-3
2
1
f1
0
1
0
f2
0
0
1
RHS
0
64
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
x2
x1 ,
= 4
+ f2 = 1
x2 0
z
f1
f2
x1
-1
1
0
x2
-3
2
1
f1
0
1
0
f2
0
0
1
RHS
0
4
1
65
Prof. Fogliatto
Pesquisa Operacional
66
66
Pesquisa Operacional
67
ij
ou seja, divida o lado direito do tableau pelos valores positivos em yj: a
menor razo identifica a varivel xk a sair da base. O valor positivo em yj
correspondente mnima razo o elemento de pivot da iterao.
d. Atravs de operaes elementares com a linha que contm o elemento
pivot, faa com que a coluna correspondente a xj assuma os valores na
coluna correspondente a xk. As operaes elementares com a linha pivot
sero apresentadas atravs do exemplo a seguir.
e. Volte para o passo a e execute mais uma iterao do algoritmo.
Os passos acima so agora aplicados ao exemplo na pgina 38. O tableau inicial
para o problema exemplo foi obtido anteriormente, sendo reproduzido a seguir.
67
Tela resultante
n Selecione as
clulas onde foram
escritos os zeros.
o Na opo WB! do
menu, selecione
adjustable.
Prof. Fogliatto
Pesquisa Operacional
x1
-1
1
0
z
f1
f2
x2
-3
2
1
68
f1
0
1
0
f2
0
0
1
RHS
0
4
1
a. O problema exemplo de maximizao. Assim, variveis com valores de zj cj na linha z do tableau so candidatas a entrar na base. Duas variveis, x1 e x2
satisfazem o critrio de entrada na base. A mais negativa delas, x2, entra na base.
Assim, xj = x2 e ytj = yt2 = [2, 1].
b. O vetor y2 apresenta dois valores positivos (2 e 1), com os quais ser feito o
teste da mnima razo.
c. O teste da mnima razo vem apresentado no tableau abaixo.
xj
xk
z
f1
f2
x1
-1
1
0
x2
-3
2
1
f1
0
1
0
elemento de pivot
f2
0
0
1
RHS
0
4
1
4/2 = 2
1/1 = 1
mnima razo
68
t Clique em
OK.
OK
s Clique em
Add.
Add
Prof. Fogliatto
WBFree identifica
variveis irrestritas
Pesquisa Operacional
69
z
f1
f2
x1
-1
1
0
x2
-3
2
1
f1
0
1
0
f2
0
0
1
RHS
0
4
1
Identificao
das linhas do
tableau
z
f1
f2
x1
-1
1
0
x2
-3
2
1
f1
0
1
0
f2
0
0
1
RHS
0
4
1
Variveis de deciso
so identificadas em
azul pelo WB.
WB
Prof. Fogliatto
Pesquisa Operacional
70
Explicitando a operao:
z
f1
f2
x1
-1
1
0
x2
-3
2
1
f1
0
1
0
f2
0
0
1
RHS
0
4
1
z
f1
x2
x1
-1
1
0
x2
-3
0
1
f1
0
1
0
f2
0
-2
1
RHS
0
2
1
(0)
(1)
(2)
z
f1
x2
x1
-1
1
0
x2
-3
0
1
f1
0
1
0
f2
0
-2
1
RHS
0
2
1
Pesquisa Operacional
71
Explicitando a operao:
z
f1
x2
x1
-1
1
0
x2
-3
0
1
f1
0
1
0
f2
0
-2
1
RHS
0
2
1
z
f1
x2
x1
-1
1
0
x2
0
0
1
f1
0
1
0
f2
3
-2
1
RHS
3
2
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)]
e. Concluda a iterao, retorna-se ao passo a. As demais iteraes sero
apresentadas diretamente no tableau.
71
Coeficientes de custo da
funo objetivo.
Frmula da funo
objetivo.
Prof. Fogliatto
Pesquisa Operacional
72
2a Iterao:
xj
xk
z
f1
x2
x1
-1
1
0
x2
0
0
1
f1
0
1
0
f2
3
-2
1
RHS
3
2
1
2/1 = 2
mnima razo
elemento de pivot
z
f1
x2
x1
-1
1
0
x2
0
0
1
f1
0
1
0
f2
3
-2
1
RHS
3
2
1
z
f1
x2
x1
-1
1
0
x2
0
0
1
f1
0
1
0
f2
3
-2
1
RHS
3
2
1
72
Pesquisa Operacional
73
Finalizando a iterao:
z
f1
x2
x1
-1
1
0
x2
0
0
1
f1
0
1
0
f2
3
-2
1
RHS
3
2
1
z
f1
x2
x1
0
1
0
x2
0
0
1
f1
1
1
0
f2
1
-2
1
RHS
5
2
1
73
o Identifique se o problema de
Minimizao ou Maximizao (default
Minimizao).
Prof. Fogliatto
Pesquisa Operacional
74
z
x1
x2
x1
0
1
0
x2
0
0
1
f1
-2
1/3
1/3
f2
0
-2/3
1/3
RHS
-8
2/3
5/3
74
n Selecione a clula
contendo a frmula da
funo objetivo.
Prof. Fogliatto
Pesquisa Operacional
75
z
f1
x2
x1
4
-1
-1
x2
0
0
1
f1
0
1
0
f2
-3
2
1
RHS
-9
10
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
f1 10 1
x = 3 1 x1
2
Quando x1 entra na base, seu valor aumenta at o ponto em que uma das variveis
bsicas tem seu valor reduzido a 0, saindo da base e dando lugar a x1. No caso
acima, nenhum valor no-negativa causa a sada de uma varivel da base. Assim,
x1 pode aumentar de valor indefinidamente; o mesmo ocorre com o valor z da
funo objetivo. Nessas circunstncias, parece evidente que a soluo do
problema tende ao infinito.
76
Prof. Fogliatto
Pesquisa Operacional
77
77
Prof. Fogliatto
Pesquisa Operacional
Clulas c/ as frmulas
das restries.
78
x1 - 2x2
- x1 +
x2 1
x2 4
x2 0
x1 ,
x1 + x2 - e1
x2
x1, x2, e1, f1
= 1
+ f1 = 4
0
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
Prof. Fogliatto
Pesquisa Operacional
Min z = x1 - 2x2
+ Ma1
s.a:
+ a1 = 1
x1 + x2 - e1
x2
+ f1
79
= 4
79
Identifique
restries
Tela resultante
o Na opo WB! do
menu, selecione
constraints.
n Selecione a
clula onde ser
escrito o sentido
da 1a restrio.
Prof. Fogliatto
Pesquisa Operacional
80
desconsideradas do tableau.
O mtodo do M-Grande ser ilustrado atravs do exemplo acima.
x1
-1
1
0
z
a1
f1
x2
2
1
1
e1
0
-1
0
f1
0
0
1
a1
-M
1
0
RHS
0
1
4
(0)
(1)
(2)
(0)
(1)
(2)
z
a1
f1
x1
-1
1
0
x2
2
1
1
e1
0
-1
0
f1
0
0
1
a1
-M
1
0
RHS
0
1
4
z
a1
f1
x1
-1 + M
1
0
x2
2+M
1
1
e1
-M
-1
0
f1
0
0
1
a1
0
1
0
RHS
M
1
4
80
n Identificao da clula
que deve conter a frmula da
restrio.
Prof. Fogliatto
Pesquisa Operacional
81
xj
z
a1
f1
xk
x1
-1 + M
1
0
x2
2+M
1
1
mnima razo
e1
-M
-1
0
f1
0
0
1
a1
0
1
0
RHS
M
1
4
1/1=1
4/1=4
elemento de pivot
(0)
(1)
(2)
z
a1
f1
x1
-1 + M
1
0
x2
2+M
1
1
e1
-M
-1
0
f1
0
0
1
a1
0
1
0
RHS
M
1
4
Nenhuma operao
81
Identificao do tipo da
restrio e clulas
consideradas.
(0)
(1)
(2)
(0)
(1)
(2)
(0)
(1)
(2)
(0)
(1)
(2)
Pesquisa Operacional
82
z
a1
f1
x1
-1 + M
1
0
x2
2+M
1
1
e1
-M
-1
0
f1
0
0
1
a1
0
1
0
RHS
M
1
4
z
a1
f1
x1
-3
1
0
x2
0
1
1
e1
2
-1
0
f1
0
0
1
a1
-M-2
1
0
RHS
-2
1
4
z
a1
f1
x1
-3
1
0
x2
0
1
1
e1
2
-1
0
f1
0
0
1
a1
-M-2
1
0
RHS
-2
1
4
z
a1
f1
x1
-3
1
-1
x2
0
1
0
e1
2
-1
1
f1
0
0
1
a1
-M-2
1
-1
RHS
-2
1
3
82
o Clique no cone
apropriado.
Prof. Fogliatto
Pesquisa Operacional
83
xj
(0)
(1)
(2)
xk
z
a1
f1
x1
-3
1
-1
x2
0
1
0
e1
2
-1
1
f1
0
0
1
RHS
-2
1
3
elemento de pivot
83
Clique em
Pesquisa Operacional
84
Aps iterao:
(0)
(1)
(2)
(0)
(1)
(2)
z
a1
f1
x1
-3
1
-1
x2
0
1
0
e1
2
-1
1
f1
0
0
1
RHS
-2
1
3
z
a1
f1
x1
-1
0
-1
x2
0
1
0
e1
0
0
1
f1
-2
1
1
RHS
-8
4
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
escritos os zeros.
o Na opo WB! do
menu, selecione
integer.
Prof. Fogliatto
Pesquisa Operacional
85
85
q Clique em OK p/ confirmar.
n Identificao das clulas
selecionadas como ajustveis e
inteiras.
p Identifique se variveis de deciso so inteiras binrias
(0 ou 1) ou qualquer nmero inteiro no-negativo (opo General).
Ateno: default do programa binrio
Prof. Fogliatto
Pesquisa Operacional
86
86
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).
Por exemplo, um possvel plano de produo consistiria em produzir o maior
nmero possvel de modelos Luxo (j que eles apresentam o maior retorno por
unidade produzida). Ento, com o que sobrar de componentes, produzir tantos
modelos Padro quantos forem possveis. Este plano de produo usaria 50
chassis Luxo (E16), 20 chassis Padro (E15), e todos os 120 drives de disquete
(E17) em estoque. Este plano resultaria num lucro total de $31000 (G6). Esta
soluo, no entanto, pode ser melhorada utilizando o WB.
87
a11 a12
a
a
A = 21 22
M
M
a
m1 am2
Prof. Fogliatto
L a1n
L a2n
O M
L amn
Pesquisa Operacional
88
88
Pesquisa Operacional
89
89
v1
v.u = M [u1 L un ]
vn
no definido.
Prof. Fogliatto
Pesquisa Operacional
90
90
Prof. Fogliatto
Pesquisa Operacional
a11
a
A = 12
M
a1n
a22
M
am 2
L a1n
L a2 n
O M
L amn
a21
a22
M
a2 n
L am1
L am 2
O M
L amn
a12
91
91
Pesquisa Operacional
92
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
a1n
L a2 n
O M
L a mn
x1
x
x = 2
M
x
n
(m x n)
(n x 1)
b1
b
b= 2
M
b
m
(m x 1)
Ax = b
Prof. Fogliatto
Pesquisa Operacional
93
93
1
0
A=
Prof. Fogliatto
0 0 L 0
1 0 L 0
= matriz identidade (I )
m
M
O M
0 0 L 1
Pesquisa Operacional
94
94
MTODO DE GAUSS-JORDAN DE
INVERSO DE MATRIZES
Idia Central:
Determine A-1 tal que A.A-1 = I.
Procedimento:
Transformar A em I atravs de operaes elementares com linhas.
As mesmas operaes transformaro I em A-1.
Prof. Fogliatto
Pesquisa Operacional
95
95
2 5
EXEMPLO 1: A =
1 3
(1) =
2 5 1 0
1 3 0 1
1
3
5
1
0
( 2) = ( 2) (1)
0
1
1 0
0 1 1
Prof. Fogliatto
(1) = (1) 5 2 ( 2 )
0
1 1 2
2
2 (1)
2
1
2
1
0
5
2
Pesquisa Operacional
96
96
EXEMPLO 2:
1 2 1 0
2 4 0 1
1 2 1
1 2 0
1 2 1
0 0 1
( 2) =
1 2
B=
2 4
2 (2)
0
1
( 2 ) = ( 2 ) (1)
0
1
Prof. Fogliatto
Pesquisa Operacional
97
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
Prticas adicionais: inverta as matrizes abaixo (utilize a funo
matriz.inv do Excel para checar o resultado)
2 1 1
A = 4 6 0
2 7 2
Prof. Fogliatto
2 1 0
B = 1 2 1
0 1 2
Pesquisa Operacional
4 2 0
C = 0 2 3
1 1 2
98
98
Prof. Fogliatto
Produto
Mesa
6
2
1.5
$30
Cadeira
1
1.5
0.5
$20
Qtidd de
Insumo
48
20
8
Pesquisa Operacional
99
99
+ 20x3
+
x3 48
+ 1.5 x3 20
+ 0.5 x3 8
x3 0
No escrivaninhas produzidas
No mesas produzidas
No cadeiras produzidas
Prof. Fogliatto
Pesquisa Operacional
100
Parte 2
Objetivo: apresentar alguns comandos adicionais do software LINDO.
2.1. Inicialize o programa Lindo
c:\> lindo
2.2. Abra um problema salvo em arquivo
No Tutorial 1, o problema foi gravado nos formatos Lindo e texto. Existem dois
comandos diferentes para carregar o problema, conforme o formato usado para
salv-lo. Escolha um deles:
2.2.1. Carregue um problema gravado no formato Lindo
: retr a:\mydata\giapetto.lnd
2.2.2. Carregue um problema gravado no formato texto
: take a:\mydata\giapetto.lp
Com esses comandos, voc carregou o problema na memria do Lindo.
100
8x1 + 6x2 +
x3 + f1
4x1 + 2x2 + 1.5 x3
+ f2
2x1 + 1.5x2 + 0.5 x3
+ f3
x1,
x2,
x3, f1,
f2,
f3
=
=
=
48
20
8
0
Pesquisa Operacional
101
101
Pesquisa Operacional
102
Anotaes:
102
Prof. Fogliatto
Pesquisa Operacional
103
103
Pesquisa Operacional
104
104
Pesquisa Operacional
105
105
Base inicial
formada por
f1, f2 e f3
Prof. Fogliatto
Pesquisa Operacional
106
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].
A todo o problema de PI existe um problema de problema de programao linear
correspondente no qual as restries de no-fracionariedade so removidas (ou
relaxadas).
Alguns resultados se seguem:
(i) Espao de solues viveis do PI Espao de solues viveis do PI
relaxado.
(ii) Valor timo de z do PI Valor timo do PI relaxado.
106
Pesquisa Operacional
107
107
Valor de
f1, f2 e f3 na base
Prof. Fogliatto
Pesquisa Operacional
108
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.
Pesquisa Operacional
109
x1 3
arco
SP2: z* = 41, x1 = 4,
SP3: z* = ?
x2 = 9/5
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!
Prof. Fogliatto
Pesquisa Operacional
110
110
8x1 + 6x2 +
x3 + f1
4x1 + 2x2 + 1.5 x3
+ f2
2x1 + 1.5x2 + 0.5 x3
+ f3
x2,
x3, f1,
f2,
f3
x1,
Prof. Fogliatto
=
=
=
48
20
8
0
Pesquisa Operacional
111
x1 3
SP2: z* = 41, x1 = 4,
SP3: z* = ?
x2 = 9/5
x2 2
SP4: Invivel.
x2 1
SP5: z* = 365/9,
x1 = 40/9, x2 = 1
111
Prof. Fogliatto
Pesquisa Operacional
112
112
Prtica 5
Considere o problema abaixo:
Min z = 3x1 - x2 + 5x3
x1 + x 3 4
s.a
4 x1 + x 2 2 x 3 0
3 x1 x 3 2
x1 , x 2 , x 3 0
Pesquisa Operacional
113
Soluo da Prtica 5:
x1 3
SP2: z* = 41, x1 = 4,
SP3: z* = ?
x2 = 9/5
x2 2
x2 1
SP4: Invivel.
SP5: z* = 365/9,
x1 = 40/9, x2 = 1
x1 5
x1 4
SP6: z* = 40, x1 = 5,
SP7: z* = 37, x1 = 4,
x2 = 0.
Limite Inferior = 37
Soluo candidata
x2 = 1.
Soluo excluda.
113
ALGORITMO SIMPLEX NO
TABLEAU
Passo 1 Verifique se a base atual a base
tima do problema:
Um problema de Minimizao est na base
tima se todos os valores abaixo das variveis
na linha z do tableau so negativos ou zero
Ex.:
Pesquisa Operacional
114
114
ALGORITMO SIMPLEX NO
TABLEAU
Passo 1 Verifique se a base atual a base
tima do problema:
Um problema de Maximizao est na base
tima se todos os valores abaixo das variveis
na linha z do tableau so positivos ou zero
Ex.:
Pesquisa Operacional
115
115
Passo 2
Identifique a varivel a entrar na base:
Em problema de Minimizao, o valor mais
positivo abaixo das variveis na linha z do
tableau denota a varivel entrante
Em problema de Maximizao, o valor mais
negativo na linha z denota a varivel entrante
Prof. Fogliatto
Pesquisa Operacional
116
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
Passo 3
Identifique a varivel que sai da base
atravs do teste da mnima razo:
Divida os nos (abaixo da linha z) no lado direito
do tableau pelos nos positivos em posies
correspondentes na coluna da varivel entrante
(abaixo da linha z)
A menor razo indica a varivel que sai da base
Prof. Fogliatto
Pesquisa Operacional
117
117
Elemento de pivot
Razes:
4/2=2
8/1=8
Prof. Fogliatto
Menor razo!
Varivel x1 sai da base para que x2 possa entrar
No 2 na coluna do x2 o elemento de pivot!
Pesquisa Operacional
118
Trabalho 1
Trebalho 2
Trabalho 3
Trabalho 4
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
Elemento de pivot
Razes:
4 / -2 = No vale!
8/2=4
Prof. Fogliatto
119
119
Prof. Fogliatto
Pesquisa Operacional
120
Melhor sequenciamento
x14 = 1
NODO 1:
D 15
x24 = 1
NODO 2:
D 19
x44 = 1
x34 = 1
NODO 3:
D 11
NODO 4:
D7
120
Passo 4
Realize o pivot para a troca de base:
Atravs de operaes elementares com linhas
do tableau, faa com que a coluna da varivel
entrante fique igual a coluna da varivel que
est saindo da base
Inicie as operaes pelo elemento de pivot
Prof. Fogliatto
Pesquisa Operacional
121
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
Passo 4 Exemplo
varivel entrante
Elemento de pivot
Coluna da varivel f1 deve ficar igual coluna da varivel f2
Prof. Fogliatto
Pesquisa Operacional
122
122
Passo 4 Exemplo
Passo 4 Exemplo
Passo 5
Alguns comentrios
Prof. Fogliatto
Pesquisa Operacional
Volte ao passo 1
Prof. Fogliatto
Pesquisa Operacional
125
Prof. Fogliatto
Pesquisa Operacional
126
Alguns comentrios
Alguns comentrios
Prof. Fogliatto
Pesquisa Operacional
127
Prof. Fogliatto
Pesquisa Operacional
128
Situaes especiais:
B3
2
B2
z
Prof. Fogliatto
Pesquisa Operacional
129
Prof. Fogliatto
B1
Pesquisa Operacional
6
130
Tableau
Min z = - x1 - 3x2
s.a:
x1 - 2x2 4
-x1 +
x2 3
x1,
x2 0
Soluo tima
4
B2
2
B1
z
Prof. Fogliatto
Pesquisa Operacional
131
Tableau
Prof. Fogliatto
132
Min z = x1 - 2x2
s.a:
x1 + x2 - e1
= 1
x2
+ f1 = 4
x1, x2, e1, f1
0
2
B2
Adicionando artificial
Min z = x1 - 2x2
+ Ma1
s.a:
x1 + x2 - e1
+ a1 = 1
x2
+ f1
= 4
x1, x2, e1, f1, a1 0
Pesquisa Operacional
Pesquisa Operacional
Min z = x1 - 2x2
s.a:
- x1 + x2 1
x2 4
x1,
x2 0
Prof. Fogliatto
133
Prof. Fogliatto
B1
Pesquisa Operacional
134
Tableau
Prtica 6A
Soluo tima nica
Max z = 60x1 + 30x2
s.a:
8x1 + 6x2
4x1 + 2x2
2x1 + 1.5x2
x1,
x2,
Prof. Fogliatto
Pesquisa Operacional
135
Prof. Fogliatto
Pesquisa Operacional
Pesquisa Operacional
136
Prtica 6C
Solues timas alternativas
Prtica 6B
Soluo
Prof. Fogliatto
+ 20x3
+
x3 48
+ 1.5 x3 20
+ 0.5 x3 8
x3 0
137
Prof. Fogliatto
Pesquisa Operacional
138
Prtica 6D
Base Inicial no-disponvel
Prtica 6E
Base Inicial no-disponvel
x2
x2 1
x2 1
x2 0
Pesquisa Operacional
139
Prof. Fogliatto
Prticas Adicionais
140
O PROBLEMA DUAL
Todo o problema de programao linear possui um problema
dual correspondente.
c Max z = 2x1 + x2 - x3
s.a
x 1 + x2 + 2 x 3 6
x1 + 4x2 - x3 4
x1, x2, x3 0
x3
x3 5
x3 4
x3 0
Primal
Max
Min
e Max z = 2x1 - x2
s.a
x1 + x2 3
-x1 + x2 1
x1, x2, 0
Prof. Fogliatto
Pesquisa Operacional
Dual
Min
Max
Pesquisa Operacional
141
Prof. Fogliatto
Pesquisa Operacional
142
EXEMPLO
Max z = 60x1 + 30x2 + 20x3
s.a:
8x1 + 6x2 + 1x3 48
4x1 + 2x2 + 1.5x3 20
2x1 + 1.5x2 + 0.5x3 8
x1,
x2,
x3 0
P
r
i
m
a
l
D
u
a
l
Prof. Fogliatto
Pesquisa Operacional
143
Prof. Fogliatto
Variveis
Restries
Prof. Fogliatto
Max
0
0
Irrestr.
Restries
0
0
Irrestr.
Variveis
Pesquisa Operacional
145
144
OUTRO EXEMPLO
Pesquisa Operacional
Prof. Fogliatto
Max z = 2x1 + x2
s.a:
2x1 + x2 = 2
2x1 - x2 3
x1 - x2 1
x1 0, x2 irrestr.
P
r
i
m
a
l
D
u
a
l
+ 1y3
+ y3 2
- y3 = 1
y2 0, y3 0
Pesquisa Operacional
146
INTERPRETAO ECONMICA DO
PROBLEMA DUAL
Prof. Fogliatto
Mesa
Cadeira
Escrivaninha
Produto
Mesa
6
2
1.5
$30
Cadeira
1
1.5
0.5
$20
Qtidd de
Insumo
48
20
8
Pesquisa Operacional
Prof. Fogliatto
Pesquisa Operacional
Assim:
8y1 + 4y2 + 2y3 60
Pesquisa Operacional
Restrio das
escrivaninhas
Prof. Fogliatto
148
149
Prof. Fogliatto
Pesquisa Operacional
Exerccio
Determine o dual do seguinte problema de
programao linear:
Max z = x1 +
s.t.:
3x1 +
2x1 +
x1,
isima
restrio corresponde
Por definio, o preo-sombra da
melhoria no valor z da funo objetivo ocasionada pelo
incremento de uma unidade no lado direito da restrio [ou
seja, de bi para (bi + 1)].
Prof. Fogliatto
Pesquisa Operacional
151
2x2
x2 6
x2 = 5
x2 0
Prof. Fogliatto
Pesquisa Operacional
Tableau timo
152
x1
z
Adicionar var. folga f1
Adicionar var. excesso e2 e art. a2
Adicionar var. artificial a3
x2
0
x3
f1
e2
51
/23
58
/23
x3
x2
/23
-9
x1
/23
17
a3
58
565
/23
-2
/23
15
/23
/23
-1
/23
65
/23
/23
120
/23
/23
/23
RHS
a2
-17
/23
/23
/23
Pesquisa Operacional
153
Prof. Fogliatto
Pesquisa Operacional
154
Coeficiente de fi na linha
0 do tableau timo
-(Coeficiente de ei) na
linha 0 do tableau timo
(Coeficiente de ai na linha
0 do tableau timo) - M
x1
x2
x3
51
x3 0
x2 0
x1 0
Pesquisa Operacional
155
51/ ;
23
y2 = -58/23; y3 = 9/23
e2
/23
58
/23
/23
-9
/23
17
y3-M
a2
a3
/23
/23
/23
-5
9
RHS
565
/23
/23
-2
/23
15
/23
/23
-1
/23
65
/23
/23
120
-17
/23
/23
Prof. Fogliatto
f1
-y2
Prof. Fogliatto
51/ ;
23
y2 = -58/23; y3 = 9/23
Pesquisa Operacional
156
Coeficiente de fi na linha
0 do tableau timo
-(Coeficiente de ei) na
linha 0 do tableau timo
(Coeficiente de ai na linha
0 do tableau timo) + M
w = 565/23
Prof. Fogliatto
Pesquisa Operacional
157
Prof. Fogliatto
Pesquisa Operacional
158
Exerccio
Prof. Fogliatto
Pesquisa Operacional
159
O Problema do Transporte
Pesquisa Operacional
Parte 2
Graduao em Engenharia de
Produo
DEPROT / UFRGS
Prof. Flavio Fogliatto, Ph.D.
Prof. Fogliatto
PO - Graduao
Formulao do Problema
Seja xij = no de unidades despachadas do ponto de fornecimento i para
o ponto de demanda j.
s.t.
xij si
(i = 1,..., m)
Restries de fornecimento
( j = 1,..., n)
Restries de demanda
j =1
m
xij d j
i =1
xij 0
Prof. Fogliatto
PO - Graduao
Prof. Fogliatto
PO - Graduao
Problema Balanceado
Um problema de transporte considerado balanceado se:
i =1
j =1
si = d j
Como balancear o problema quando a demanda maior que a capacidade
de fornecimento?
PO - Graduao
Prof. Fogliatto
Fornecimento
c12
c21
c22
M
cm1
Demanda
Prof. Fogliatto
d1
d2
PO - Graduao
s1
s2
dn
M
cmn
L
L
c2n
O
cm2
c1n
Exemplo
O Tableau de Transporte
c11
PO - Graduao
sm
m
i =1
j =1
si = d j
7
Prof. Fogliatto
$7
$8
$8
Reserv. 2
$9
$7
$8
PO - Graduao
Tableau do Simplex
Cid. 1
Cid. 2
Cid. 3
Res. 1
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
abaixo. Semanalmente, 100 toneladas de cada tipo de ao devem ser produzidas. Cada planta
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.
50
20
Res. Artif.
Prof. Fogliatto
Capacidade
50
Res. 2
Demanda
Prtica:
18
23
20
40
40
40
PO - Graduao
Planta 1
Planta 2
Planta 3
Tempo (min)
20
16
15
PO - Graduao
10
Ao 3
$28
$30
$20
Prof. Fogliatto
Prof. Fogliatto
Ao 1
$60
$50
$43
Custo
Ao 2
$40
$30
$20
11
PO - Graduao
12
Exemplo
Exemplo
10 3
10
15
12
15
PO - Graduao
13
Prof. Fogliatto
PO - Graduao
Exemplo
5
0
15
0
15 10
14
Exemplo
0
5
7
PO - Graduao
Prof. Fogliatto
PO - Graduao
16
Exemplo
0
5
7
Base
Inicial
Vivel
10 6
3
5
Exemplo
6
0
PO - Graduao
Prof. Fogliatto
PO - Graduao
18
Prtica:
Determine uma base inicial
para o problema anterior.
Prof. Fogliatto
PO - Graduao
19
Prof. Fogliatto
PO - Graduao
20
Exemplo
2
14
12
30
10
20
10
10
12
15
40
0
40
10
20
-17
12
10
20
12
10
14
Demanda
1. Determine um loop
de var. bsicas que
contenha a var. nobsica.
20
10
10
15
3. Some os cij de
acordo com os sinais.
40
50
4. Subtraia o coef. de
custo da var. no-bs.
em questo do resultado
PO - Graduao
21
10
12
15
14
10
+
9
-3
12
40
(+5-12+3) = -4
22
10
10
-17
20
PO - Graduao
-8
14
12
Prof. Fogliatto
(-8) - 9 = -17
+1
-8
12
-1
10
20
15
-17
-2
40
(-4) - 4 = -8
Num problema de minimizao a varivel mais positiva entra na base.
Prof. Fogliatto
PO - Graduao
23
Prof. Fogliatto
PO - Graduao
24
10
10
14
-3
-8
12
12
15
+1
-1
-2
14
10
+
-3
40
12
15
Prof. Fogliatto
PO - Graduao
10
20
15
-1
-2
40
26
Prof. Fogliatto
10
14
27
-17
Novo tableau
40
PO - Graduao
10
12
+
0
Prof. Fogliatto
10
-8
+1
20
10
12
A varivel entrante
assumir o valor
da varivel que sai
da base.
25
12
14
+
10
PO - Graduao
+
10
Dentre as clulas
positivas, selecione
aquela de menor
valor: esta a var.
que sair da base.
10
20
Prof. Fogliatto
-17
12
-7
-16
5
-1
12
15
10
20
-4
-2
-2
PO - Graduao
40
28
O Problema do Transbordo
Prtica:
Resolva o problema
proposto no Slide 9.
Resolva o problema
do ao.
Prof. Fogliatto
PO - Graduao
29
Prof. Fogliatto
Exemplo
PO - Graduao
30
Custos
De/Para Man
Manaus
$0
Assuncion
Brasilia
Curitiba
SPaulo
Recife
-
Ass
$0
-
Bra
$8
$15
$0
$6
-
Cur
$13
$12
$6
$0
-
SP
$25
$26
$16
$14
$0
-
Rec
$28
$25
$17
$16
$0
Prof. Fogliatto
PO - Graduao
31
Prof. Fogliatto
PO - Graduao
32
Exemplo
Deseja-se minimizar o custo do frete:
Por exemplo:
Manaus
Braslia
SPaulo
Assuncin
Curitiba
Recife
Prof. Fogliatto
PO - Graduao
33
Prof. Fogliatto
PO - Graduao
34
Passo 2 - Cont.
Prof. Fogliatto
PO - Graduao
35
Prof. Fogliatto
PO - Graduao
36
No exemplo
Braslia
Curitiba
SPaulo
13
25
Recife
Artificial
28
Manaus
150
15
Assuncion
12
26
25
200
0
16
17
350
Braslia
14
16
Curitiba
Demanda
Prof. Fogliatto
PO - Graduao
37
Capacidade
350
350
350
Prof. Fogliatto
130
130
90
PO - Graduao
38
Prtica
Resultado
Assuncin
130
Braslia
Curitiba
130
SPaulo
Recife
130
De/Para
SP
Spaulo
$0
POA
$145
Foz
$105
Assuncion $89
Buenos
$210
POA
$140
$0
$115
$109
$117
1100
2900
Foz
$100
$111
$0
$121
$82
Capacidade
Prof. Fogliatto
PO - Graduao
39
Prof. Fogliatto
Ass
$90
$110
$113
$0
-
Bue
$225
$119
$78
$0
2400
1500
Demanda
40
O Problema da Alocao
So problemas balanceados de transporte nos quais todas as demandas
e todas as capacidades so iguais a 1.
Trab. 1
14 min
Maq. 1
5 min
Trab. 2
Maq. 2
8 min
Trab. 3
Maq. 3
Mq.1
Mq.2
Mq.3
Mq.4
Tr.1
14
2
7
2
Tempo (min)
Tr.2
Tr.3
5
8
12
6
8
3
4
6
Tr.4
7
5
9
10
7 min
Trab. 4
Prof. Fogliatto
PO - Graduao
41
Variveis de deciso:
xij = mquina i executando trabalho j; i = 1,...,4 e j = 1,...,4.
Funo objetivo:
Min z = 14 x11 + 5 x12 + 8 x13 + 7 x14 + 2 x21 + 12 x22 + 6 x23 + 5 x24 +
7 x31 + 8 x32 + 3 x33 + 9 x34 + 2 x41 + 4 x42 + 6 x43 + 10 x44
Restries de trabalho:
x11+x12+x13+x14 = 1
x11+x21+x31+x41 = 1
x21+x22+x23+x24 = 1
x12+x22+x32+x42 = 1
x31+x32+x33+x34 = 1
x41+x42+x43+x44 = 1
x13+x23+x33+x43 = 1
x14+x24+x34+x44 = 1
Prof. Fogliatto
PO - Graduao
PO - Graduao
42
Formulao
Restries de mquina:
Prof. Fogliatto
Maq. 4
xij = 1 ou 0
43
PO - Graduao
44
Algoritmo Hngaro
Exemplo
Mnimo da linha
14
12
10
Exemplo...
Prof. Fogliatto
PO - Graduao
45
Mn. da coluna
Prof. Fogliatto
Prof. Fogliatto
PO - Graduao
46
10
10
PO - Graduao
47
Prof. Fogliatto
PO - Graduao
3 linhas.
m = 4, logo procedemos c/ passo 3.
k=1
48
10
4 linhas. Como m = 4,
temos uma soluo tima.
Prof. Fogliatto
PO - Graduao
49
Prof. Fogliatto
Livre
54
51
50
56
Costas
53
52
56
53
Primal
Max
Min
PO - Graduao
Dual
Min
Max
Prof. Fogliatto
50
O PROBLEMA DUAL
Prtica
Nadadora
1
2
3
4
PO - Graduao
51
Prof. Fogliatto
PO - Graduao
52
EXEMPLO
Max z = 60x1 + 30x2 + 20x3
s.a:
8x1 + 6x2 + 1x3 48
4x1 + 2x2 + 1.5x3 20
2x1 + 1.5x2 + 0.5x3 8
x1,
x2,
x3 0
P
r
i
m
a
l
D
u
a
l
Prof. Fogliatto
PO - Graduao
53
Prof. Fogliatto
Variveis
Restries
Prof. Fogliatto
Max
0
0
Irrestr.
Restries
0
0
Irrestr.
Variveis
PO - Graduao
PO - Graduao
54
OUTRO EXEMPLO
60
30
20
0
55
Prof. Fogliatto
Max z = 2x1 + x2
s.a:
2x1 + x2 = 2
2x1 - x2 3
x1 - x2 1
x1 0, x2 irrestr.
P
r
i
m
a
l
D
u
a
l
+ 1y3
+ y3 2
- y3 = 1
y2 0, y3 0
PO - Graduao
56
INTERPRETAO ECONMICA DO
PROBLEMA DUAL
Considere o exemplo:
Max z = 60x1 + 30x2 + 20x3
s.a:
8x1 + 6x2 + 1x3 48
4x1 + 2x2 + 1.5x3 20
2x1 + 1.5x2 + 0.5x3 8
x1,
x2,
x3 0
Prof. Fogliatto
Escrivaninha
Mesa
Cadeira
60
30
20
0
Produto
Mesa
6
2
1.5
$30
Cadeira
1
1.5
0.5
$20
Qtidd de
Insumo
48
20
8
PO - Graduao
Prof. Fogliatto
PO - Graduao
Assim:
8y1 + 4y2 + 2y3 60
PO - Graduao
Restrio das
escrivaninhas
Prof. Fogliatto
58
59
Prof. Fogliatto
PO - Graduao
PRTICA:
Prof. Fogliatto
PO - Graduao
Max z = x1 +
s.t.:
3x1 +
2x1 +
x1,
61
2x2
x2 6
x2 = 5
x2 0
Prof. Fogliatto
PO - Graduao
Tableau timo
62
x1
z
Adicionar var. folga f1
Adicionar var. excesso e2 e art. a2
Adicionar var. artificial a3
x2
0
x3
f1
e2
51
/23
58
/23
x3
x2
/23
-9
x1
/23
17
a3
58
565
/23
-2
/23
15
/23
/23
-1
/23
65
/23
/23
120
/23
/23
/23
RHS
a2
-5
9
-17
/23
/23
/23
PO - Graduao
63
Prof. Fogliatto
PO - Graduao
64
Coeficiente de fi na linha
0 do tableau timo
x1
x2
x3
51
x3 0
x2 0
x1 0
-(Coeficiente de ei) na
linha 0 do tableau timo
(Coeficiente de ai na linha
0 do tableau timo) - M
PO - Graduao
65
51/ ;
23
y2 = -58/23; y3 = 9/23
e2
/23
58
/23
/23
-9
/23
17
y3-M
a2
a3
/23
/23
/23
-5
9
RHS
565
/23
/23
-2
/23
15
/23
/23
-1
/23
65
/23
/23
120
-17
/23
/23
Prof. Fogliatto
f1
-y2
51/ ;
23
Prof. Fogliatto
y2 = -58/23; y3 = 9/23
PO - Graduao
66
Coeficiente de fi na linha
0 do tableau timo
-(Coeficiente de ei) na
linha 0 do tableau timo
(Coeficiente de ai na linha
0 do tableau timo) + M
w = 565/23
Prof. Fogliatto
PO - Graduao
67
Prof. Fogliatto
PO - Graduao
68
PRTICA:
Modelos de Redes
x3
x3 3
x3 2
x3 = 1
x3 0
Definies bsicas:
Defnido por
x3
0
Prof. Fogliatto
f1
0
e2
1
Grafos ou Redes
Arcos
= 3
=2
=1
0
a2
M-1
RHS
0
PO - Graduao
69
Exemplo de Rede
1
Ns (ou vrtices)
Prof. Fogliatto
PO - Graduao
70
Ns = {1, 2, 3, 4}
Prof. Fogliatto
PO - Graduao
71
Prof. Fogliatto
PO - Graduao
72
No exemplo...
1
3
Prof. Fogliatto
PO - Graduao
73
Prof. Fogliatto
Idade do Carro
(anos)
0
1
2
3
4
Prof. Fogliatto
Custo anual de
manuteno
2000
4000
5000
9000
12000
PO - Graduao
Idade do Carro
(anos)
1
2
3
4
5
Cidade 1
PO - Graduao
74
Exemplo 2
Exemplo 2
Eu comprei um carro novo por $12000. Os custos de manuteno e o
valor na troca do carro em um determinado ano dependem da idade do
carro no comeo daquele ano.
Valor na troca
7000
6000
2000
1000
0
Prof. Fogliatto
PO - Graduao
76
Soluo
Soluo
Prof. Fogliatto
PO - Graduao
77
=
=
=
=
=
2 + 12 - 7 = 7
2 + 4 + 12 - 6 = 12
2 + 4 + 5 + 12 - 2 = 21
2 + 4 + 5 + 9 + 12 - 1 = 31
2 + 4 + 5 + 9 + 12 + 12 - 0 = 44
Prof. Fogliatto
Rede
PO - Graduao
78
Algoritmo de Dijkstra
31
44
31
21
21
12
12
12
21
12
PO - Graduao
79
Prof. Fogliatto
PO - Graduao
80
Passos do Algoritmo
Passo 1
Passo Inicial:
O n inicial recebe um rtulo permanente com valor zero.
PO - Graduao
81
Prof. Fogliatto
PO - Graduao
82
Exemplo
Passo 2
9
2
3
2
7
Todos os arcos so
3
1
4
Prof. Fogliatto
PO - Graduao
83
Prof. Fogliatto
PO - Graduao
84
L (0) = [0*, 3, 7, 4, , ]
Prof. Fogliatto
PO - Graduao
85
Prof. Fogliatto
PO - Graduao
86
Prof. Fogliatto
PO - Graduao
87
Prof. Fogliatto
PO - Graduao
88
Prof. Fogliatto
PO - Graduao
89
Prof. Fogliatto
PO - Graduao
Prof. Fogliatto
90
91
PO - Graduao
Prof. Fogliatto
PO - Graduao
92
Prof. Fogliatto
PO - Graduao
93
2
3
2
7
Prof. Fogliatto
2
2
(62) = 7 / (2,6) = 9
1
4
(65): 10 - 7 = 3
(65) = 3 / (5,6) = 3
(63) = 4 / (3,6) = 6
Assim:
Diferenas / Arcos:
94
PO - Graduao
4
3
(63): 10 - 5 = 4
(62): 10 - 3 = 7
Prof. Fogliatto
PO - Graduao
95
Prof. Fogliatto
PO - Graduao
96
2
3
2
7
3
2
Diferenas:
(54) = 3 / (4,5) = 3
(53) = 2 / (3,5) = 3
3
1
4
(53): 7 - 5 = 3
(54): 7 - 4 = 3
Diferenas / Arcos:
4
3
Prof. Fogliatto
PO - Graduao
97
Caminho parcial: 6 5 4
Prof. Fogliatto
PO - Graduao
98
2
3
2
7
3
2
Diferenas:
(43) = -1 / (3,4) = 1
(41) = 4 / (1,4) = 4
3
3
1
4
(41): 4 - 0 = 4
(43): 4 - 5 = -1
Diferenas / Arcos:
Como o n 1 o n de destino,
determinamos a trilha mais curta
entre os ns 1 e 6.
PO - Graduao
99
Prof. Fogliatto
PO - Graduao
100
Prtica
Prof. Fogliatto
PO - Graduao
101
Tipos de problemas de
programao inteira (PI)
Puros - todas as variveis de deciso so
inteiras
Programao Inteira
Flvio Fogliatto
Programao inteira
A todo o problema de PI existe um problema de
problema de PL correspondente no qual as
restries de no-fracionariedade so
removidas (ou relaxadas)
Branch-and-bound
operacionalizado em 5 passos
s.a
x1 + x2 6
9x1 + 5x2 45
x1 , x2 0
x1 = 15/4
x1 , x2 inteiros
x2 = 9/4
5
Passo 2
SP = subproblema
Arvore hierrquica de
soluo do problema
Passo 3
Escolha qualquer SP listado no passo
anterior e resolva como se fosse um
problema de PL:
Por ex., SP2, com soluo tima z* = 41, x1 =
4 e x2 = 9/5
10
Passo 4
Subproblemas resultantes:
12
Arvore hierrquica de
soluo do problema
13
14
Soluo s possui
valores inteiros p/ a
varivel de deciso:
Assim, termina-se nodo da rvore em SP7 (identificase o nodo terminado por um ou escrevendo soluo
excluda) e atualiza-se o limite inferior da rvore;
novo LI = 40
15
16
Arvore hierrquica de
soluo do problema
Aspectos importantes do
Branch-and-bound p/ PIs puros
18
Mais aspectos
20
Mtodo Branch-and-Bound
para soluo de PIs mistos
Mais aspectos
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)
22
Exerccio 1
PI puro
Exerccio 2
PI misto
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
mquinas
Apresentao do problema
completado:
Trabalhos finalizados na data de entrega ou antes
tm atraso zero
26
Variveis de deciso
28
Continuando a desdobrar
pelo mesmo ramo
Escolhe-se nodo 7 (menor valor de D) para
desdobrar
29
30
31
32
Desdobra-se o nodo 3
34