Vous êtes sur la page 1sur 215

PO 201

INTRODUO A
PESQUISA OPERACIONAL

Professor: Rodrigo A. Scarpel


rodrigo@ita.br
www.mec.ita.br/~rodrigo
Pesquisa Operacional
Pesquisa Operacional o uso do mtodo cientfico com o objetivo
de prover departamentos executivos de elementos quantitativos
para a tomada de decises Kittel ( 1947)

A Pesquisa Operacional a aplicao do mtodo cientfico, por


equipes multidisciplinares, a problemas envolvendo o controle de
sistemas organizados de forma a fornecer solues que melhor
interessam a determinada organizao Ackoff (1968)

Conceitos-chave:
a) uso ou aplicao para resolver problemas reais
b) apoio a tomada de decises
c) multidisciplinariedade
2
Pesquisa Operacional
Durante a Segunda Guerra Mundial, os lderes militares solicitaram que
cientistas estudassem problemas como posicionamento de radares,
armazenamento de munies e transporte de tropa, etc...

A aplicao do mtodo cientfico e de ferramentas matemticas em


operaes militares passou a ser chamado de Pesquisa Operacional.

A Pesquisa Operacional uma cincia aplicada voltada para a


resoluo de problemas reais, tendo como foco a tomada de
decises.

3
Modelagem e Simulao:
Definio do problema:
1. Quais so as alternativas para a deciso?
Conceptualization: decisions
2. Sob quais restries a deciso tomada?
Modeling: build the quantitative
about the variables that need to 3. Qual seria um critrio objetivo para avaliar as
model by alternativas?
defining causal
be included in the model, and the
relationships between
Construo the variables.
do modelo:
scope of the problem and model
to be addresses.

Resoluo do modelo:
1. Utilizao de algoritmos ou mtodos de
resoluo
2. Anlise de sensibilidade

Validao do modelo:
1.
OBS: The research cycle can arguably
Formulao est adequada?
begin and end at any of the phases
2. Resolve o problema?
in the cycle (according to the
selected
Implementao research type)
da soluo
Definio do problema:

Gesto da Cadeia de Suprimentos:

Facility, Product &


Strategic Capacity Planning

Advanced
Planning &
Transportation Demand
Tactical Component Scheduling
Planning Planning
Supplier
Management Inventory
Planning

ERP
Execution

Supply Operations Logistics Demand


Source: Supply Chain Management Review
5
Definio do problema:

Planejamento de empresas de
transporte areo:

Source: Prof C. Barnhart (MIT)


6
Construo do modelo:

Categorias de modelos:
Relacionamento Valores das variveis Tcnicas de Pesquisa
funcional f() independentes Operacional

M Prescritivos Conhecido, Conhecido ou sob o


Programao linear,
no linear, inteira,
controle do tomador
O (determinsticos) bem definido
de deciso
Redes, Combinatria,
entre outras
D Conhecido ou sob o Anlise de regresso,
Desconhecido,
E Preditivos
mal definido
controle do tomador
de deciso
Anlise de sries
temporais, entre outras
L
O Descritivos Conhecido, Desconhecido ou
Simulao, teoria de
filas, otimizao
(estocsticos) bem definido incerto
S robusta, entre outros

7
Programao da disciplina:
Semana Contedo

1 Apresentao da disciplina. Introduo Programao Linear (PL). Resoluo grfica de problemas de PL.

2 Resoluo de Problemas de PL pelo mtodo simplex. A matemtica do mtodo simplex.

Anlise de Sensibilidade. Problemas com solues iniciais (Mtodos das 2 fases e o do Big-M). Degenerao,
3
ciclagem e convergncia do mtodo simplex.
4 O problema dual. Formulao e Interpretao econmica do problema dual. Teoremas da dualidade.
5 Algoritmos simplex adicionais. Anlise ps-otimizao.
6 Feriado (7/9)
7 Prova 1 (14/9)
8 O Problema do Transporte (e do transbordo) e suas variaes. O problema da atribuio.
9 (1) Programao Linear Inteira (PLI). Mtodos de resoluo de PLI: Branch and Bound (B&B) e planos de corte.

10 (2) Feriado (12/10)


11 (3) Formulao e resoluo de problemas de otimizao combinatria.
Otimizao em Redes (formulao e resoluo utilizando mtodos exatos e heursticos): o problema do caixeiro
12 (4)
viajante e os problemas do caminho mnimo, do fluxo mximo e da rvore geradora mnima.
13 (5) Feriado (2/11).
14 (6) Prova 2 (9/11).
15 (7) Formulao e resoluo de problemas de otimizao por programao dinmica.
16 (8) Otimizao multiobjetivo. Fechamento da disciplina.

8
Avaliao:
1o Bimestre: 1 prova (70% da nota) + 1 trabalho individual
(30% da nota) (Entrega do trabalho at o dia 21/9 s 12h)
2o Bimestre: 1 prova (70% da nota) + 1 trabalho individual
(30% da nota) (Entrega do trabalho at o dia 23/11 s 12h)
Exame: 1 prova (toda a matria)

Avaliao dos trabalhos:

1. O TRABALHO FOI ENTREGUE DENTRO DO PRAZO? (20%)


2. A FORMULAO E RESOLUO ESTO CORRETAS? (40%)
3. OS RESULTADOS E SUA DISCUSSO ESTO CORRETOS? (30%)
4. O RELATRIO EST BEM FEITO? (10%)

9
Bibliografia:

Taha, H. A., Pesquisa Operacional, 8a edio. Pearson


(Prentice-Hall), 2008.

Taha, H. A. Operations Research An Introduction,


8th.edition. Pearson (Prentice Hall), 2007.

Winston, W.L., Operations Research, 4th.edition. Brooks/Cole


(Thomson), 2004.

Wagner, H.M., Pesquisa Operacional, 2a edio. Prentice-Hall


do Brasil, 1986.

Hillier, F.S. and Lieberman, G.J., Introduction to Operations


Research, McGraw Hill, 2000.
10
PO 201
PROGRAMAO
LINEAR

Professor: Rodrigo A. Scarpel


rodrigo@ita.br
www.mec.ita.br/~rodrigo
11
Problemas de programao linear (PPL):

( Maximizar / Minimizar ) Z a1 x1 a2 x2 ... an xn


Sujeito a : b11x1 b12 x2 ... b1n xn c1
b 21x1 b22 x2 ... b2 n xn c2

b k1x1 bk 2 x2 ... bkn xn ck
x1 , x 2 , .... , xn 0
Z: funo objetivo
ai: coeficientes da funo objetivo, i = 1,,n
xi: variveis de deciso, i = 1,,n
bji: coeficientes tecnolgicos, i = 1,,n e j = 1,,k
cj: constantes do lado direito (right-hand-side), j = 1,,k

12
Hipteses em Programao Linear:

Proporcionalidade: todos os retornos / custos e recursos


utilizados variam proporcionalmente a varivel de deciso (no h
economia de escala);

Aditividade: o efeito total de quaisquer duas variveis a soma


dos efeitos individuais (no h sinergia ou efeito de substituio).
Exemplo: o custo total a soma dos custos individuais;

Divisibilidade: as variveis de deciso podem assumir valores


fracionados. Se essas variveis s puderem assimir valores
inteiros o problema de programao inteira (PI);

Certeza (Determinstico): todos os parmetros do modelo so


constantes conhecidas (no so variveis aleatrias);

13
Problema 1: Mix de Produo
Giapetto Woodcarving, Inc fabrica dois tipos de brinquedos de madeira:
soldados e trens. Um soldado vendido por $27 e usa $10 de matria-prima.
Cada soldado fabricado incrementa os custos variveis de trabalho e
"overhead" por $14. Um trem vendido por $21 e usa $9 de matria-prima.
Cada trem produzido incrementa os custos variveis de trabalho e "overhead"
por $10. A fabricao de soldados de madeira e de trens requer dois tipos de
trabalho qualificado: carpintaria e acabamento. Um soldado requer 2 horas de
trabalho de acabamento e 1 hora de trabalho de carpintaria. Um trem requer 1
hora de trabalho de acabamento e 1 hora de trabalho de carpintaria. A cada
semana, Giapetto pode obter toda a matria prima necessria, mas dispe de
somente 100 horas de trabalho de acabamento e 80 horas de trabalho de
carpintaria. A demanda para os trens ilimitada, mas no mximo 40 soldados
so vendidos a cada semana. A Giapetto deseja determinar seu mix de
produo de forma a maximizar seu lucro semanal (faturamento menos custos).
14
Formas de Representao:
Formato pado: todas as restries so igualdades e todas as
variveis so no-negativas.

Formato cannico: (problema de minimizao) todas as


variveis so no-negativas e todas as restries so do tipo .

15
Mtodo Simplex Formalizao (Problema de Maximizao):

Inicializao:
Encontrar uma soluo bsica vivel ( B).
Passo principal:
Seja zk - ck = Mnimo {zj - cj: j R}. Se zk - ck 0 pare - a soluo tima.
Caso contrrio examine yk.
Se yk 0 pare a soluo tima ilimitada.
bi
Se yk > 0 determine o ndice r como: r Minimo : y ik 0
1i m
y ik
Atualize o tableau pivotando em yik (atualize as variveis bsicas e as no
bsicas com xk que entra na base e xi que sai).
Repita o passo principal

16
A matemtica do mtodo simplex:

Em cada iterao:
xB = B-1.b

w = cBT.B-1
B R
z = w.b = cB.B-1.b

zj - cj = w.aj - cj
yj = B-1. aj
x1 c1

a1,1 a n ,1 1 0 0
x c b1
a1, 2 a n , 2 0 1 0
x n
, c n
,A b
1
f 0 ,
b
a m
1,m a n ,m 0 0 0 1
0
f
m
17
Problema 2: Problema da Mistura
Um fabricante de bebidas pretende lanar um novo refrigerante que obtido
misturando refrigerante sabor laranja e suco de laranja. Anlises executadas
pelo fabricante mostraram que cada ml de refrigerante sabor laranja tem 5 mg
de acar e 1 mg de vitamina C e que cada 1 ml de suco de laranja tem 2 mg
de acar e 3 mg de vitamina C. O custo de produo de 100 ml de
refrigerante sabor laranja de R$0,20 e de 100 ml de suco de laranja de
R$0,50. O departamento de marketing da empresa decidiu que o novo
refrigerante ser comercializado em embalagens de 300 ml e que cada
unidade do produto deve conter no mnimo 600 mg de vitamina C e no
mximo 1.200 mg de acar. O fabricante deseja determinar a composio do
novo refrigerante de forma a minimizar o custo para produzir o produto.

18
Mtodo Simplex Formalizao (Problema de Minimizao):

Inicializao:
Encontrar uma soluo bsica vivel ( B).
Alternativas (se a origem no for uma soluo vivel): Mtodo das 2 fases / Big-M

Passo principal:
Seja zk - ck = Mximo {zj - cj: j R}. Se zk - ck 0 pare - a soluo tima.
Caso contrrio examine yk.
Se yk 0 pare a soluo tima ilimitada.
bi
Se yk > 0 determine o ndice r como: r Minimo : y ik 0
1i m
y ik
Atualize o tableau pivotando em yik (atualize as variveis bsicas e as no
bsicas com xk que entra na base e xi que sai).
Repita o passo principal
19
Processo para Resoluo Computacional:

SOLVERS

Algumas opes disponveis:

R (http://cran.r-project.org/web/views/Optimization.html)

LPSolve (http://lpsolve.sourceforge.net/5.5/IDE.htm)
O problema da mistura (R):
PACOTE LINPROG (linprog package):

MODELO:

EXEMPLO:
library(linprog)
c <- c(5,2)
names(c) <- c("Suco","Refrigerante")
b <- c(300,1200,600)
names(b) <- c("Composio","Acar","Vitamina C")
A <- rbind( c( 1,1),
c( 2,5),
c( 3,1) )
solveLP( c, b, A, const.dir = c(">=","<=",">="), maximum=FALSE)
O problema da mistura (LPSolve IDE):

22
PO 201
DEGENERAO,
CICLAGEM E
CONVERGNCIA DO
SIMPLEX

Professor: Rodrigo A. Scarpel


rodrigo@ita.br
www.mec.ita.br/~rodrigo
23
Degenerao em programao linear:

Definio: Um PPL degenerado se h pelo menos uma soluo


bsica vivel com uma varivel bsica com valor zero (=0). Se h,
essa soluo uma soluo bsica vivel degenerada.

A degenerao ocorre quando h empate na sada (regra da razo).

Consequncias da degenerao:

Se um PPL degenerado o simplex pode apresentar


inconsistncias.

Se um PPL tem muitas solues bsicas viveis


degeneradas o simplex costuma ser ineficiente.

Se um PPL degenerado pode haver ciclismo, o que pode


interferir na convergncia do algoritmo.

24
Exemplo de PPL degenerado, inconsistente e ineficiente:

FO: Max Z = 5*x1 + 3*x2


x1 x2 x3 x4 x5 RHS
S.A. 4*x1 + 2*x2 12 Z -5 -3 0 0 0 0
4*x1 + 1*x2 10 x3 4 2 1 0 0 12
x4 4 1 0 1 0 10
1*x1 + 1*x2 4 x5 1 1 0 0 1 4
x1, x2 0 Z 0 -7/4 0 5/4 0 25/2
x3 0 1 1 -1 0 2
x1 1 1/4 0 1/4 0 5/2
x2

x5 0 3/4 0 1/4 1 3/2


Z 0 0 7/4 -1/2 0 16
x2 0 1 1 -1 0 2
x1 1 0 -1/4 1/2 0 2
x5 0 0 -3/4 1/2 1 0
Z 0 0 1 0 1 16
x2 0 1 -1/2 0 2 2
x1 1 0 1/2 0 -1 2
x4 0 0 -3/2 1 2 0

x1 25
Exemplo de ciclagem: x1 x2 x3 x4 x5 x6 x7 RHS
Z 3/4 -20 1/2 -6 0 0 0 0
x5 1/4 -8 -1 9 1 0 0 0
FO: Min - x1+20x2 x3+6x4 x6 1/2 -12 -1/2 3 0 1 0 0
x7 0 0 1 0 0 0 1 1
Z 0 4 7/2 -33 -3 0 0 0

S.A. x1 8x2 x3 + 9x4 0


x1 1 -32 -4 36 4 0 0 0
x6 0 4 3/2 -15 -2 1 0 0

x1 12x2 x3 +7x4 0 x7
Z
0
0
0
0
1
2
0
-18
0
-1
0
-1
1
0
1
0

x3 1 x1
x2
1
0
0
1
8
3/8
-84
-15/4
-12
-1/2
8
1/4
0
0
0
0
x1, x2 , x3 , x4 0 x7
Z
0
-1/4
0
0
1
0
0
3
0
2
0
-3
1
0
1
0
x3 1/8 0 1 -21/2 -3/2 1 0 0
x2 -3/64 1 0 3/16 1/16 -1/8 0 0
x7 -1/8 0 0 21/2 3/2 -1 1 1
Z 1/2 -16 0 0 1 -1 0 0
x3 -5/2 56 1 0 2 -6 0 0
x4 -1/4 16/3 0 1 1/3 -2/3 0 0
x7 5/2 -56 0 0 -2 6 1 1
Z 7/4 -44 -1/2 0 0 2 0 0
x5 -5/4 28 1/2 0 1 -3 0 0
x4 1/6 -4 -1/6 1 0 1/3 0 0
x7 0 0 1 0 0 0 1 1
Z 3/4 -20 1/2 -6 0 0 0 0
x5 1/4 -8 -1 9 1 0 0 0
x6 1/2 -12 -1/2 3 0 1 0 0
x7 0 0 1 0 0 0 1 1

26
Regra para previnir o ciclismo:

Regra Lexicogrfica:

Passo principal:
Seja zk-ck = Max {zj-cj: jR}. Se zk - ck 0 pare - a soluo tima.
Caso contrrio examine yk.
Se yk 0 pare a soluo tima ilimitada.
bi
Se yk > 0 determine o ndice r como: r Minimo : y ik 0
1i m
y ik
Em caso de empate, deixar a base a varivel com o menor yik
Atualize o tableau pivoteando em yik (atualize as variveis bsicas e as
no bsicas com xk que entra na base e xi que sai).
Repita o passo principal
27
Exemplo de PPL degenerado, inconsistente:

FO: Max Z = 5*x1 + 3*x2

S.A. 4*x1 + 2*x2 12 x1 x2 x3 x4 x5 RHS


Z -5 -3 0 0 0 0
4*x1 + 1*x2 10 x3 4 2 1 0 0 12
1*x1 + 1*x2 4 x4 4 1 0 1 0 10
x5 1 1 0 0 1 4
x1, x2 0 Z 0 -7/4 0 5/4 0 25/2
x3 0 1 1 -1 0 2
x1 1 1/4 0 1/4 0 5/2
x2

x5 0 3/4 0 1/4 1 3/2


Z 0 0 0 2/3 7/3 16
x3 0 0 1 -2/3 -4/3 0
x1 1 0 0 1/3 -1/3 2
x2 0 1 0 -1/3 4/3 2

x1 28
Regra para previnir o ciclismo:

Regra de Brant:

Passo principal:
Seja zk-ck = Max (Min) {zj-cj: jR}. Se zk - ck () 0 pare - a soluo
tima.
Caso contrrio examine yk.
Se yk 0 pare a soluo tima ilimitada.
bi
Se yk > 0 determine o ndice r como: r Minimo : y ik 0
1i m
y ik

Em caso de empate, deixar a base a varivel com o menor (maior) yik


Atualize o tableau pivoteando em yik (atualize as variveis bsicas e as
no bsicas com xk que entra na base e xi que sai).
Repita o passo principal
29
Exemplo de PPL degenerado, inconsistente:

FO: Max Z = 5*x1 + 3*x2

S.A. 4*x1 + 2*x2 12 x1 x2 x3 x4 x5 RHS


Z -5 -3 0 0 0 0
4*x1 + 1*x2 10 x3 4 2 1 0 0 12
1*x1 + 1*x2 4 x4 4 1 0 1 0 10
x5 1 1 0 0 1 4
x1, x2 0 Z 0 -7/4 0 5/4 0 25/2
x3 0 1 1 -1 0 2
x1 1 1/4 0 1/4 0 5/2
x2

x5 0 3/4 0 1/4 1 3/2


Z 0 0 0 2/3 7/3 16
x3 0 0 1 -2/3 -4/3 0
x1 1 0 0 1/3 -1/3 2
x2 0 1 0 -1/3 4/3 2

x1 30
Convergncia do mtodo simplex:

Teorema: se todas as solues bsicas viveis de um PPL


forem no degeneradas, o mtodo simplex finito.
Implicaes:

Nmero mximo de solues bsicas viveis: n! / (n-m)!m!

Na prtica observa-se que o nmero mximo de iteraes


no passa de 3m/2. Assim, este pode ser considerado um
bom ponto de parada.

Como se houver degenerao, no caso extremo pode


haver ciclismo, se houver degenerao o mtodo simplex
pode no ser finito.

31
PO 201
O PROBLEMA DUAL

Professor: Rodrigo A. Scarpel


rodrigo@ita.br
www.mec.ita.br/~rodrigo
Problemas Primal e Dual:

Para cada problema de programao linear que


resolvemos, existe um outro problema associado que
tambm resolvido simultneamente.

Este problema satisfaz algumas propriedades importantes


que podem ser usadas para resolver o problema original.

Denominaremos o problema original de PRIMAL e o novo


problema de DUAL.
Problemas Primal e Dual:

Primal Dual
Maximizar Minimizar
Funo objetivo Termo independente (RHS)
I-sima linha de coeficientes I-sima coluna de coeficientes
J-sima coluna de coeficientes J-sima linha de coeficientes
I-sima relao I-sima varivel no negativa
I-sima relao de = I-sima varivel irrestrita
I-sima varivel no negativa Restrio
I-sima varivel irrestrita Restrio de =
Problema do Mix de Produo (planejamento esttico)

MADEIRA ALUMNIO
Dados:
CORTE

MONTAGEM

Max Z = 4,0*xmad + 6,0*xalu


ACABAMENTO
S.A. 1,5*xmad + 4,0*xalu 24
3,0*xmad + 1,5*xalu 21
PORTA PORTA DE
DE ALUMNIO 1,0*xmad + 1,0*xalu 8
MADEIRA xmad, xalu 0
L=$6,00
L=$4,00

35
Propriedades do problema Dual:

SIMETRIA: O dual do problema dual o problema primal.

PRIMAL m
DUAL
Min (v) b j y j
n
Max (z) ci xi
j 1
i 1
S.A. : S.A. :
m

a
n

j 1
ij y j ci , i 1,..., n a
i 1
x bj ,
ij i j 1,..., m

yj 0 xi 0

Min z = 24*ycorte + 21*ymont + 8*yacab Max v = 4,0*xmad + 6,0*xalu


S.A. 1,5*ycorte + 3*ymont + 1*yacab 4 S.A. 1,5*xmad + 4,0*xalu 24
4*ycorte + 1,5*ymont + 1*yacab 6 3,0*xmad + 1,5*xalu 21
ycorte, ymont, yacab 0 1,0*xmad + 1,0*xalu 8
xmad, xalu 0
Propriedades do problema Dual:

TEOREMA FRACO DA DUALIDADE


Se x e y so solues viveis dos problemas maximizao
(primal) e minimizao (dual), respectivamente, ento:

cT x bT y

Implicaes prticas: o valor da funo objetivo de


qualquer soluo vivel de um problema dual de
minimizao (maximizao) fornece um limitante superior
(inferior) para o valor timo do problema primal de
maximizao (minimizao).
Propriedades do problema Dual:
Z x1 x2 x3 x4 x5 RHS
Max Z = 4,0*xmad + 6,0*xalu 1 -4 -6 0 0 0 0
x3 1,5 4 1 0 0 24
x4 3 1,5 0 1 0 21
S.A. 1,5*xmad + 4,0*xalu 24 x5 1 1 0 0 1 8
3,0*xmad + 1,5*xalu 21 1 -7/4 0 3/2 0 0 36
x2 3/8 1 1/4 0 0 6
1,0*xmad + 1,0*xalu 8 x4 39/16 0 -3/8 1 0 12
xmad, xalu 0 x5 5/8 0 -1/4 0 1 2
1 0 0 4/5 0 14/5 208/5
x2 0 1 2/5 0 -3/5 24/5
x4 0 0 3/5 1 -39/10 21/5
x1 1 0 -2/5 0 8/5 16/5

Min z = 24*ycorte + 21*ymont + 8*yacab Exemplo de soluo vivel:

S.A. 1,5*ycorte + 3*ymont + 1*yacab 4 ycorte = ymont =0 e yacab = 6


4*ycorte + 1,5*ymont + 1*yacab 6 z = 24*ycorte + 21*ymont + 8*yacab = 48
ycorte, ymont, yacab 0
Propriedades do problema Dual:

TEOREMA FORTE (FUNDAMENTAL) DA DUALIDADE


Se o problema primal (dual) tem uma soluo tima finita, ento o
dual (primal) tambm tem uma soluo finita e tima e o valor da
funo objetivo de ambos problemas igual. Assim, uma das
seguintes situaes verdadeira:

i) Ambos os problemas tm soluo tima x* ey* com z* = v*;

ii) Um problema ilimitado e o outro invivel;

iii) Ambos os problemas so inviveis.


Propriedades do problema Dual:

TEOREMA DAS FOLGAS COMPLEMENTARES


Sendo x* e y* as solues timas dos problemas primal e dual:

n
* m
y j b j aij xi 0 xi aij y j c j 0 , i e j
* * *
e
i 1 j 1
Possibilidades:
n
*
yj 0 b j aij xi 0
*
ou
i 1
e
m
xi 0
*
ou aij y j c j 0
*

j 1
Exemplo de aplicao do teorema das folgas complementares:

n
*
y j - b j aij xi 0
Min Z = 2*x1 + 5*x2 + 2*x3 + 3*x4 *
e
i 1
S.A. 1*x1 + 2*x2 + 1*x3 + 3*x4 4
2*x1 + 3*x2 + 1*x3 + 1*x4 3 m
xi aij y j c j 0 , i e j

* *
x1, x2 , x3 , x4 0
j 1
Mtodo simplex (problema primal):
Z x1 x2 x3 x4 x5 RHS
Max Z = 4,0*xmad + 6,0*xalu 1 -4 -6 0 0 0 0
x3 1,5 4 1 0 0 24
x4 3 1,5 0 1 0 21
S.A. 1,5*xmad + 4,0*xalu 24 x5 1 1 0 0 1 8
3,0*xmad + 1,5*xalu 21 1 -7/4 0 3/2 0 0 36
x2 3/8 1 1/4 0 0 6
1,0*xmad + 1,0*xalu 8 x4 39/16 0 -3/8 1 0 12
xmad, xalu 0 x5 5/8 0 -1/4 0 1 2
1 0 0 4/5 0 14/5 208/5
x2 0 1 2/5 0 -3/5 24/5
x4 0 0 3/5 1 -39/10 21/5
x1 1 0 -2/5 0 8/5 16/5

Min z = 24*ycorte + 21*ymont + 8*yacab

S.A. 1,5*ycorte + 3*ymont + 1*yacab 4


4*ycorte + 1,5*ymont + 1*yacab 6
ycorte, ymont, yacab 0
Mtodo simplex (problema dual):

Z ycorte ymont yacabam x4 x5 a1 a2 RHS


1 -24 -21 -8 0 0 -M -M 0
1 -24+(3/2)M -21+3M -8+M -M 0 0 -M 4M
1 -24+(11/2)M -21+(9/2)M -8+2M -M -M 0 0 10M
a1 3/2 3 1 -1 0 1 0 4

a2 4 3/2 1 0 -1 0 1 6

1 0 -12+(39/16)M -2+(5/8)M -M -6+(3/8)M 0 6-(11/8)M 36+(7/4)M

a1 0 39/16 10/16 -1 6/16 1 -6/16 28/16

ycorte 1 3/8 1/4 0 -1/4 0 1/4 3/2

1 0 0 42/39 -192/39 -162/39 (192/39)-M (162/39)-M 1740/39

ymont 0 1 10/39 -16/39 6/39 16/39 -6/39 28/39

ycorte 1 0 2/13 2/13 -4/13 -2/13 4/13 16/13

1 0 -21/5 0 -624/195 = -3,2 -936/195 = -4,8 3,2-M 4,8-M 8112/195 = 41,6


yacabam 0 39/10 1 -16/10 6/10 16/10 -6/10 28/10 = 2,8

ycorte 1 -3/5 0 26/65 -26/65 -26/65 26/65 52/65 = 0,8


Interpretao Econmica do problema dual:
1. Interpretao econmica das variveis duais:

Min V = 24*ycorte + 21*ymont + 8*yacab

S.A. 1,5*ycorte + 3*ymont + 1*yacab 4 (Porta de madeira)


4*ycorte + 1,5*ymont + 1*yacab 6 (Porta de alumnio)
ycorte, ymont, yacab 0

ycorte : preo pago por 1 hora de corte


ymont : preo pago por 1 hora de montagem V: preo total pago pelo
recursos (shadow price)
yacab : preo pago por 1 hora de acabamento

Funo objetivo: Minimizar o preo total pago pelos recursos.


Restries: Mnimo a ser pago pela combinao das variveis de deciso
(pois com essa combinao gera-se uma unidade do produto).
Interpretao Econmica do problema dual:
2. Interpretao econmica do teorema das folgas complementares:

Sendo x* e y* as solues timas dos problemas primal e dual:

n
* m
y j b j aij xi 0 xi aij y j c j 0 , i e j
* * *
e
i 1 j 1

NA SOLUO, SE H FOLGA DE ALGUM RECURSO SEU VALOR


(PREO DUAL) NECESSARIAMENTE ZERO

NA SOLUO, SE UM DETERMINADO RECURSO TEM VALOR (>0)


NECESSARIAMENTE A FOLGA ZERO
Interpretao Econmica do problema dual:
3. Interpretao econmica das restries duais:
m
Min (v) b y
j1
j j

S.A.:
yj 0 Ganho proporcionado Todo produto fabricado
m m

a ij y j c i , i 1,...,n a
j1
ij y j ci
j1
Um novo produto s
Valor dos recursos ser fabricado se
Utilizao dos recursos m

a
j1
ij y j ci
Dualidade:

A teoria da dualidade proporciona um suporte terico que


permite:

Calcular limites superiores (em problemas de


maximizao) e inferiores (em problemas de
minimizao) para o valor da funo objetivo.

Interpretao econmica dos resultados da


otimizao.

Desenvolvimento de mtodos mais eficientes para


resolver problemas reais.
PO 201
ALGORITMOS SIMPLEX
ADICIONAIS

Professor: Rodrigo A. Scarpel


rodrigo@ita.br
www.mec.ita.br/~rodrigo
Mtodo Simplex:

Condies de Viabilidade X Condies de Otimalidade

Opo A: O simplex pode ser visto como um mtodo que


busca atender as condies de otimalidade mantendo as
condies de viabilidade.

Opo B: O simplex pode ser visto como um mtodo que


busca a viabilidade do problema dual mantendo a
viabilidade do problema primal.
Problema 2: Problema da Mistura
Um fabricante de bebidas pretende lanar um novo refrigerante que obtido
misturando refrigerante sabor laranja e suco de laranja. Anlises executadas
pelo fabricante mostraram que cada ml de refrigerante sabor laranja tem 5 mg
de acar e 1 mg de vitamina C e que cada 1 ml de suco de laranja tem 2 mg
de acar e 3 mg de vitamina C. O custo de produo de 100 ml de
refrigerante sabor laranja de R$0,20 e de 100 ml de suco de laranja de
R$0,50. O departamento de marketing da empresa decidiu que o novo
refrigerante ser comercializado em embalagens de 300 ml e que cada
unidade do produto deve conter no mnimo 600 mg de vitamina C e no
mximo 1.200 mg de acar. O fabricante deseja determinar a composio do
novo refrigerante de forma a minimizar o custo para produzir o produto.
Mtodo Dual Simplex (PPL primal de Maximizao):

Inicializao:
Encontrar uma soluo bsica que atenda as condies de otimalidade,
mas que no atenda as condies de viabilidade.
Passo principal:
Seja xB a soluo corrente. Se o termo de xB 0 pare - a soluo tima.
Caso contrrio escolha o termo de xB mais negativo para sair da base.

zi ci
Determine a varivel que vai entrar na base por mnimo , yik 0
1i m
yik
Se todos yik 0 pare o problema no tem soluo vivel
Atualize o tableau pivotando em yik (atualize as variveis bsicas e as no
bsicas com xk que entra na base e xi que sai).
Repita o passo principal
Mtodo Dual Simplex (PPL primal de Maximizao):
Max Z = 4,0*xmad + 6,0*xalu Min V = 24*ycorte + 21*ymont + 8*yacab
S.A. 1,5*xmad + 4,0*xalu 24 S.A. 1,5*ycorte + 3*ymont + 1*yacab 4
3,0*xmad + 1,5*xalu 21 4*ycorte + 1,5*ymont + 1*yacab 6
1,0*xmad + 1,0*xalu 8 ycorte, ymont, yacab 0
xmad, xalu 0
Z x1 x2 x3 x4 x5 RHS V y1 y2 y3 y4 y5 RHS
1 -4 -6 0 0 0 0 1 -24 -21 -8 0 0 0
x3 1,5 4 1 0 0 24 y4 -1,5 -3 -1 1 0 -4
x4 3 1,5 0 1 0 21 y5 -4 -1,5 -1 0 1 -6
x5 1 1 0 0 1 8 1 0 -12 -2 0 -6 36
1 -7/4 0 3/2 0 0 36 y4 0 -39/16 -5/8 1 -3/8 -7/4
x2 3/8 1 1/4 0 0 6 y1 1 3/8 1/4 0 -1/4 3/2
x4 39/16 0 -3/8 1 0 12 1 0 -21/5 0 -16/5 -24/5 208/5
x5 5/8 0 -1/4 0 1 2 y3 0 39/10 1 -8/5 3/5 14/5
1 0 0 4/5 0 14/5 208/5 y1 1 3/5 0 2/5 -2/5 4/5
x2 0 1 2/5 0 -3/5 24/5
x4 0 0 3/5 1 -39/10 21/5
x1 1 0 -2/5 0 8/5 16/5

O dual simplex pode ser visto como um mtodo que busca atender as
condies de viabilidade mantendo as condies de otimalidade
Generalizao do Mtodo Simplex:
Opo A: O simplex pode ser visto como um mtodo que
busca atender as condies de otimalidade mantendo as
condies de viabilidade.

Opo B: O simplex pode ser visto como um mtodo que


busca a viabilidade do problema dual mantendo a viabilidade
do problema primal.

Opo C: O simplex pode ser visto como um mtodo que


busca atender as condies de viabilidade mantendo as
condies de otimalidade.

Essas opes podem ser combinadas de acordo com


a necessidade para talhar novos mtodos
(exemplos: mtodo primal-dual, mtodo simtrico,
mtodo entrecruzado e mtodo multiplex).
PO 201
ANLISE PS-
OTIMIZAO

Professor: Rodrigo A. Scarpel


rodrigo@ita.br
www.mec.ita.br/~rodrigo
Princpios:
Em problemas reais as alteraes (disponibilidade dos
recursos, preo dos insumos,) demandam o reclculo
peridico da soluo tima.

A anlise de ps-otimizao auxilia na determinao da nova


soluo de modo eficiente.

ALTERNATIVAS POSSVEIS MOTIVOS AO RECOMENDADA


SOLUO ATUAL (BASE)
- NENHUMA
PERMANECE TIMA E VIVEL

SOLUO ATUAL SE ALTERAES NO RHS (RECURSOS) USAR O DUAL SIMPLEX PARA


TORNA INVIVEL ADIO DE NOVAS RESTRIES RECUPERAR A VIABILIDADE

SOLUO ATUAL SE ALTERAES NOS COEFIC. DA F.O. USAR O SIMPLEX (PRIMAL) PARA
TORNA NO-TIMA ADIO DE UMA NOVA ATIVIDADE RECUPERAR A OTIMALIDADE

USAR, SE POSSVEL, O SIMPLEX


SOLUO ATUAL SE TORNA
COMBINAO DOS ITENS ANTERIORES GENERALIZADO PARA OBTER NOVA
NO-TIMA E INVIVEL
SOLUO
Alteraes no RHS (recursos):
Z x1 x2 x3 x4 x5 RHS
208
1 0 0 4/5 0 14/5 /5 + 4/5 A + 0 B + 14/5 C
24
x2 0 1 2/5 0 -3/5 /5 + 2/5 A + 0 B - 3/5 C
21
x4 0 0 3/5 1 -39/10 /5 + 3/5 A + 1 B - 39/10 C
16
x1 1 0 -2/5 0 8/5 /5 - 2 /5 A + 0 B + 8 /5 C
xalumnio

Recurso gargalo:
A base fica inalterada: -7 A 8 (B e C: ctes)

Funo objetivo: 208/


5 + 4/5 A + 0 B + 14/5 C

A = +10 (h alterao na base)


5

5 xmadeira
Alteraes no RHS (recursos):
FO: Max Z = 4,0*x1 + 6,0*x2

S.A. 1,5x1+ 4,0x2+ 1x3 = 34 + A


3,0x1+ 1,5x2 + 1x4 = 21 +B
1,0x1+ 1,0x2 + 1x5 = 8 +C
x1, x2, x3 , x4 , x5 0
xalumnio

Z x1 x2 x3 x4 x5 RHS
248
1 0 0 4/5 0 14/5 /5
44
x2 0 1 2/5 0 -3/5 /5
51
x4 0 0 3/5 1 -39/10 /5
-4
x1 1 0 -2/5 0 8/5 /5
1 2 0 0 0 6 48 + 6C
x2 1 1 0 0 1 8+C
x4 3/2 0 0 1 -1,5 9 +B 1,5 C
x3 -5/2 0 1 0 -4 2 + A 4C
5

5
Adio de novas restries:
Quando novas restries so adicionadas, h 2 possibilidades:

A restrio ser redundante

A soluo atual se tornar invivel

FO: Maximizar Z = 4,0*xmadeira + 6,0*xalumnio

S.A. 1,5*xmadeira + 4,0*xalumnio 24 Soluo tima:


3,0*xmadeira + 1,5*xalumnio 21 x1 (madeira) = 16/5 = 3,2

1,0*xmadeira + 1,0*xalumnio 8 x2 (alumnio) = 24/5 = 4,8

xmadeira, xalumnio 0 Lucro = 208/5 = 41,6

Nova restrio: Demanda xmadeira 4 (Restrio redundante)


xmadeira 3 (Soluo atual invivel)
Adio de novas restries:
FO: Max Z = 4,0*x1 + 6,0*x2

S.A. 1,5x1+ 4,0x2+ 1x3 = 34


3,0x1+ 1,5x2 + 1x4 = 21
1,0x1+ 1,0x2 + 1x5 = 8
1,0x1 + 1x6 = 3

x1, x2, x3 , x4 , x5 , x6 0

Z x1 x2 x3 x4 x5 x6 RHS
1 0 0 4/5 0 14/5 0 208/5
x2 0 1 2/5 0 -3/5 1 24/5
x4 0 0 3/5 1 -39/10 0 21/5
x1 1 0 -2/5 0 8/5 0 16/5
x6 1 0 0 0 0 1 3
1 0 0 4/5 0 14/5 0 208/5
x2 0 1 2/5 0 -3/5 1 24/5
x4 0 0 3/5 1 -39/10 0 21/5
x1 1 0 -2/5 0 8/5 0 16/5
x6 0 0 2/5 0 -8/5 1 -1/5
Adio de novas restries:
Z x1 x2 x3 x4 x5 x6 RHS
1 0 0 4/5 0 14/5 0 208/5
x2 0 1 2/5 0 -3/5 1 24/5
x4 0 0 3/5 1 -39/10 0 21/5
x1 1 0 -2/5 0 8/5 0 16/5
x6 0 0 2/5 0 -8/5 1 -1/5
1 0 0 3/2 0 0 7/4 825/20 Soluo tima:
x2 0 1 1/4 0 0 -3/8 195/40 x1 (madeira) = 3
x4 0 0 -15/40 1 0 -195/80 375/80
x1 1 0 0 0 0 1 3 x2 (alumnio) = 4,875
x5 0 0 -1/4 0 1 -5/8 1/8
Lucro = 208/5 = 41,25

5
xalumnio(x
2)
5 xmadeira(x1)
PO 201
O PROBLEMA DO
TRANSPORTE

Professor: Rodrigo A. Scarpel


rodrigo@ita.br
www.mec.ita.br/~rodrigo
O problema do transporte:
Problema do transporte (ou de distribuio) Otimizao de redes lineares

Decises estratgicas: selecionar rotas de transporte (para distribuir a


produo de vrias fbricas a vrios depsitos ou pontos terminais)

Utilidade: planejamento (criao de planos de distribuio)

Fbricas Depsitos
S1 D1

S2 D2
Fornecimentos
disponveis Demandas
S3 D3
(capacidade)
...

...

Sm Dn
Formulao do problema do transporte:
m n
Minimizar c x
i 1 j 1
ij ij

cij o custo unitrio de transporte da origem i para o destino j


Var. deciso: xij quantidade a ser transportada da origem i para o destino j

S . A.
n

x
j 1
ij Si para i 1,..., m (oferta)

x
i 1
ij Dj para j 1,..., n (demanda)

xij 0 para todos i e j


Balanceamento no problema do transporte:
Se o problema no for balanceado (a soma das capacidades de oferta for
igual soma das demandas) este deve ser balanceado.

S D
i
i
j
j PROBLEMA BALANCEADO

S D
i
i
j
j PROBLEMA COM SOLUO INVIVEL

S D
i
i
j
j PROBLEMA DEVE SER BALANCEADO
CRIA-SE UM PONTO FICTCIO DE DEMANDA
COM CUSTO DE TRANSPORTE = 0
Exemplo - problema do transporte:
Uma empresa geradora de energia possui 3 usinas termoeltricas (A, B
e C) e abastece 3 cidades (1, 2 e 3). O custo estimado de levar energia
de cada uma das usinas para cada uma das cidades (em R$/kWh),
assim como a demanda de cada uma das cidades e a capacidade de
gerao de cada usina dada na tabela abaixo:
DESTINOS CAPACIDADE
ORIGENS
CIDADE 1 CIDADE 2 CIDADE 3 (kWh)

PLANTA A 24 18 27 700
PLANTA B 16 11 7 340
PLANTA C 30 10 4 400
DEMANDA (kWh) 650 450 340

Formule o problema que determine a quantidade de energia que ser


enviada de cada usina para cada cidade ao mnimo custo.
Exemplo - problema do transporte:
MIN Z = 24XA1 + 18XA2 + 27XA3 + 16XB1 + 11XB2 +7XB3 +30XC1 + 10XC2 + 4XC3
S.A.
XA1 + XA2 + XA3 700
XB1 + XB2 + XB3 340
XC1 + XC2 + XC3 400
XA1 + XB1 + XC1 650
XA2 + XB2 + XC2 450
XA3 + XB3 + XC3 340
XA1, XA2, XA3, XB1, XB2, XB3, XC1, XC2, XC3 0
O mtodo simplex para o problema do transporte:

PASSO 1: Selecionar at m+n-1 rotas que resultem em uma


soluo bsica inicial factvel.

PASSO 2: Verifique se a soluo pode ser melhorada,


introduzindo xij no bsica na base (nova rota). Se
puder v para o passo 3, caso contrrio, PARE
(soluo tima).

PASSO 3: Determine qual rota deve sair da base quando xij


entrar.

PASSO 4: Ajuste os fluxos das outras variveis bsicas e


volte para o passo 2.
O mtodo simplex para o problema do transporte:

PASSO 1: Selecionar at m+n-1 rotas que resultem em uma


soluo bsica inicial factvel.

1 2 3 3 + 3 1 = 5 rotas

A 24 18 27
700 Alternativa:
650 50
B 16 11 7 Northwest-Corner Method
340
340
C 30 10 4
400
60 340
650 450 340
O mtodo simplex para o problema do transporte:

PASSO 1: Selecionar at m+n-1 rotas que resultem em uma


soluo bsica inicial factvel.

1 2 3 3 + 3 1 = 5 rotas

A 24 18 27
700 Alternativa:
650 50
B 16 11 7 Least-Cost Method
340
340
C 30 10 4
400
60 340
650 450 340
O mtodo simplex para o problema do transporte:

PASSO 1: Selecionar at m+n-1 rotas que resultem em uma


soluo bsica inicial factvel.

3 + 3 1 = 5 rotas
Alternativa:

11 22 33 Voguel Aproximation Method

A
A 24
24 18
18 27
27
700
700 Penalty = 6
310 390
B
B 16
16 11
11 77
340
340 Penalty = 4
340
C
C 30
30 10
10 44
400
400 Penalty = 620
60 340
650
650 450
450 340
340
Penalty Penalty Penalty
68
== 24 ==18
81 ==23
3
O mtodo simplex para o problema do transporte:

PASSO 2: Verifique se a soluo pode ser melhorada,


introduzindo xij no bsica na base (nova rota). Se
puder v para o passo 3, caso contrrio, PARE
(soluo tima).

1 2 3 1 2 3

A 24 18 27 A 24 18 27
700 700
650 50 649 51
B 16 11 7 B 16 11 7
340 340
340 1 339
C 30 10 4 C 30 10 4
400 400
60 340 60 340
650 450 340 650 450 340

Gasto: +18 24 +16 11 = -1


O mtodo simplex para o problema do transporte:

PASSO 2: Verifique se a soluo pode ser melhorada,


introduzindo xij no bsica na base (nova rota). Se
puder v para o passo 3, caso contrrio, PARE
(soluo tima).

1 2 3 1 2 3

A 24 18 27 A 24 18 27
700 700
650 50 0 0 +15
B 16 11 7 B 16 11 7
340 340
340 -1 0 +2
C 30 10 4 C 30 10 4
400 400
60 340 +14 0 0
650 450 340 650 450 340
O mtodo simplex para o problema do transporte:

PASSO 3: Determine qual rota deve sair da base quando xij


entrar.

PASSO 4: Ajuste os fluxos das outras variveis bsicas e


volte para o passo 2.

1 2 3 1 2 3

A 24 18 27 A 24 18 27
700 700
650 50 310 390
B 16 11 7 B 16 11 7
340 340
340 340
C 30 10 4 C 30 10 4
400 400
60 340 60 340
650 450 340 650 450 340
O mtodo simplex para o problema do transporte:

PASSO 2: Verifique se a soluo pode ser melhorada,


introduzindo xij no bsica na base (nova rota). Se
puder v para o passo 3, caso contrrio, PARE
(soluo tima).

1 2 3 1 2 3

A 24 18 27 A 24 18 27
700 700
310 390 0 0 +15
B 16 11 7 B 16 11 7
340 340
340 0 +1 +3
C 30 10 4 C 30 10 4
400 400
60 340 +14 0 0
650 450 340 650 450 340
Exemplo - problema do transporte:

1 2 3

A 24 18 27
700
310 390
B 16 11 7
340
340
C 30 10 4
400
60 340
650 450 340

SOLUO TIMA: XA1 = 310 XA2 = 390 XA3 = 0


XB1 = 340 XB2 = 0 XB3 = 0
XC1 = 0 XC2 = 60 XC3 = 340

CUSTO TOTAL = R$ 21.860,00


Formulao do dual do problema do transporte:
m n
Minimizar c x
i 1 j 1
ij ij S . A.
n

x
j 1
ij Si para i 1,..., m (oferta)

x
DUAL
ij Dj para j 1,..., n (demanda)
i 1

xij 0 para todos i e j

m n
Maximizar S v D w
i 1
i i
j 1
j j

S . A.
vi w j cij para i 1,..., m e j 1,..., n
vi , w j irrestrito s
Formulao do dual do problema do transporte:

m n
Maximizar S v D w
i 1
i i
j 1
j j

S . A.
vi w j cij para i 1,..., m e j 1,..., n
vi , w j irrestrito s

SE NO PROBL. PRIMAL xij > 0 (bsica) NO PROBL. DUAL vi + wj = cij

SE NO PROBL. PRIMAL xij = 0 (no bsica) NO DUAL vi + wj < cij


Exemplo - problema do transporte:
S.A.
VARIVEIS BSICAS: xA1, xB1, xA2, xB3, e xC3
v1 + wA cA1 (=24) v1 + wA = cA1 (=24) v1 + wB = cB1 (=18)
v1 + wB cB1 (=18)
v2 + wA = cA2 (=16) v3 + wB = cB3 (=10)
v1 + wC cC1 (=27)
v3 + wC = cC3 (=4)
v2 + wA cA2 (=16)
v3 = 0 wB = 10 v1 = 8 wA = 16 v2 = 0
v2 + wB cB2 (=11)
wC = 4
v2 + wC cC2 (=7)
v3 + wA cA3 (=30) OUTRAS RESTRIES:

v3 + wB cB3 (=10) v1 + wC cC1 (=27) v2 + wB cB2 (=11)

v3 + wC cC3 (=4) v2 + wC cC2 (=7) v3 + wA cA3 (=30)

SE A SOLUO DO PROBLEMA DUAL


VIVEL, A SOLUO DO PRIMAL TIMA
O MTODO SIMPLEX PODE SER VISTO COMO UMA ABORDAGEM QUE PROCURA VIABILIDADE
PARA O PROBLEMA DUAL MANTENDO VIABILIDADE NO PROBLEMA PRIMAL.
O mtodo simplex para o problema do transporte:
PASSO 2:
Item 1: Coloque 0 nos coeficientes das variveis bsicas
Item 2: Escolha um vi ou wj e anule
Item 3: Determine os outros valores de vi e wj (vi+wj = cij)
Item 4: Calcule os coeficientes das variveis no bsicas (vi+wj-cij)

1 2 3 1 2 3

A 24 18 27 A 24 18 27
700 v1700
=8
650 50 0 0 -15
B 16 11 7 B 16 11 7
340 v2340
=1
340 +1 0 -2
C 30 10 4 C 30 10 4
400 v3400
=0
60 340 -14 0 0
650 450 340 w650
A=16 wB450
= 10 w340
C= 4
O mtodo simplex para o problema do transporte:
PASSO 2:
Item 1: Coloque 0 nos coeficientes das variveis bsicas
Item 2: Escolha um vi ou wj e anule
Item 3: Determine os outros valores de vi e wj (vi+wj = cij)
Item 4: Calcule os coeficientes das variveis no bsicas (vi+wj-cij)

1 2 3 1 2 3

A 24 18 27 A 24 18 27
700 v1700
=8
310 390 0 0 -15
B 16 11 7 B 16 11 7
340 v2340
=0
340 0 -1 -3
C 30 10 4 C 30 10 4
400 v3400
=0
60 340 -14 0 0
650 450 340 wA650
=16 wB450
= 10 wC340
=4
Variaes do problema do transporte:
O problema do transporte com custo fixo (fixed charge transportation
problem)

Exemplo:

Capacidade das fbricas: 5.000 unidades/ms


Variaes do problema do transporte:
O problema do planejamento agregado da produo:

Exemplo:

Um fabricante de barcos deve decidir quantas unidades sero fabricadas


nos prximos 4 trimestres.
Em sua carteira de pedidos h 30 barcos a serem entregues no primeiro
trimestre, 60 no segundo trimestre, 75 no terceiro trimestre e 25 no quarto
trimestre.
O fabricante tem capacidade de produzir 40 barcos por trimestre (nesse
caso cada barcos custa $40.000).
H a possibilidade de produzir 20 unidades adicionais, porm o custo
unitrio vai para $45.000.
O custo de carregamento (manter um barco estocado) de $2.000.
Faa o planejamento da produo objetivando minimizar o custo total nos
prximos 4 trimestres.
Variaes do problema do transporte:
O problema do transbordo:
Decises estratgicas: selecionar rotas de transporte (para distribuir a
produo de vrias fbricas a vrios depsitos ou pontos terminais passando
ou no por pontos de transbordo)

Utilidade: planejamento (criao de planos de distribuio)


Exemplo - problema do transbordo:
Uma empresa possui 2 plantas (unidades de produo) localizadas em Memphis e
Denver com capacidade para produzir 150 e 200 unidades, respectivamente, e
abastece 2 grandes centros (Los Angeles e Boston) que demandam 130 unidades
cada. No transporte de seus produtos h a possibilidade de entregar diretamente
nos grandes centros ou passar por pontos de transbordo (em Nova York e em
Chicago). O custo de transporte de cada uma das origens para cada um dos
destinos dado na tabela abaixo:

Formule o problema que determine a quantidade de produtos que dever enviada


de cada origem para cada destino.
Exemplo - problema do transbordo:

MIN Z = 8XM,NY+13XM,C+25XM,LA+28XM,B+ 15XD,NY+12XD,C+26XD,LA+25XD,B+


6XNY,C+16XNY,LA+17XNY,B+ 6XC,NY+14XC,LA+16XC,B
S.A.

XM,NY + XM,C + XM,LA + XM,B 150


XD,NY + XD,C + XD,LA + XD,B 200
XM,LA + XD,LA + XNY,LA + XC,LA 130
XM,B + XD,B + XNY,B + XC,B 130
XM,NY + XD,NY + XC,NY = XNY,LA + XNY,B + XNY,C
XM,C + XD,C + XNY,C = XC,LA + XC,B + XC,B + XC,NY

XM,NY, XM,C, XM,LA, XM,B, XD,NY, XD,C, XD,LA, XD,B, XNY,C, XNY,LA, XNY,B, XC,NY,
XC,LA, XC,B 0
Exemplo - problema do transbordo:
PO 201
PROBLEMA DA
ATRIBUIO

Professor: Rodrigo A. Scarpel


rodrigo@ita.br
www.mec.ita.br/~rodrigo
O problema da atribuio:
Problema da atribuio Otimizao de redes lineares

Descrio: cada uma de n tarefas pode ser executada por qualquer um de n


agentes. O custa da tarefa i sendo executada pelo agente j cij.

Deciso: designar um agente para cada tarefa de forma a minimizar o custo total

TAREFAS AGENTES
Formulao do problema da atribuio:
m n
Minimizar c x
i 1 j 1
ij ij

cij o custo da tarefa sendo executada pelo agente j


Var. deciso: xij = 1, se a tarefa i for executada pelo agente j
0, caso contrrio para i=1,,n e j=1,,n
S . A.
n

x
j 1
ij 1 para i 1,..., n

x
i 1
ij 1 para j 1,..., n

xij 0 ou 1 para todos os i e j


Exemplo - problema da atribuio:

Machineco possui 4 mquinas e 4 tarefas a serem realizadas.


Dependendo da atribuio das tarefas, o tempo de execuo diferente:

Tempo de Execuo
Tar 1 Tar 2 Tar 3 Tar 4
Maq A 14 5 8 7
Maq B 2 12 6 5
Maq C 7 8 3 9
Maq D 2 4 6 10

Formule o problema que determine qual mquina far qual tarefa se o


objetivo minimizar o tempo total de execuo.
Exemplo - problema da atribuio:

MIN Z = 14XA1+5XA2+8XA3+7XA4+2XB1+12XB2+6XB3+5XB4
+7XC1+8XC2+3XC3 +9XC4 +2XD1+4XD2+6XD3 +10XD4

S.A.

XA1+XA2+XA3+XA4 =1
XB1+XB2+XB3+XB4 =1
XC1+XC2+XC3+XC4 =1
XD1+XD2+XD3+XD4 = 1
XA1 +XB1 +XC1 +XD1 =1
XA2 +XB2 +XC2 +XD2 =1
XA3 +XB3 +XC3 +XD3 =1
XA4 +XB4 +XC4 +XD4 = 1
XA1,XA2,XA3,XA4, XB1,XB2,XB3,XB4, XC1,XC2,XC3,XC4 , XD1,XD2,XD3,XD4 {0,1}
O mtodo hngaro para resoluo do probl. da atribuio:

PASSO 1: Encontre o mnimo de cada linha na matriz de custo n x n.


Construa uma nova matriz subtraindo o valor do mnimo da
linha. Nesta nova matriz, encontre o mnimo de cada coluna.
Construa uma nova matriz (matriz de custos reduzidos)
subtraindo o mnimo da coluna.
PASSO 2: Desenhe o nmero mnimo de linhas (horizontais e verticais)
para que todos os zeros sejo cobertos. Se n linhas so
necessrias, ento a soluo tima (so os n zeros
cobertos). Se um nmero menor que n linhas so
necessrias, v para o passo 3.
PASSO 3: Encontre o menor valor no zero (k) na matriz de custos
reduzidos que no esteja coberto pelas linhas desenhadas
no passo 2. Agora subtraia k de cada elemento no coberto
e some k em cada elemento coberto por 2 linhas. Volte para
o passo 2.
O mtodo hngaro para resoluo do probl. da atribuio:

PASSO 1: Encontre o mnimo de cada linha na matriz de custo n x n.


Construa uma nova matriz subtraindo o valor do mnimo da
linha. Nesta nova matriz, encontre o mnimo de cada coluna.
Construa uma nova matriz (matriz de custos reduzidos)
subtraindo o mnimo da coluna.

14 5 8 7 5 14-5 5-5 8-5 7-5


2 12 6 5 2 2-2 12-2 6-2 5-2
7 8 3 9 3 7-3 8-3 3-3 9-3
2 4 6 10 2 2-2 4-2 6-2 10-2

9 0 3 2
0 10 4 3
4 5 0 6
0 2 4 8
O mtodo hngaro para resoluo do probl. da atribuio:

PASSO 1: Encontre o mnimo de cada linha na matriz de custo n x n.


Construa uma nova matriz subtraindo o valor do mnimo da
linha. Nesta nova matriz, encontre o mnimo de cada coluna.
Construa uma nova matriz (matriz de custos reduzidos)
subtraindo o mnimo da coluna.

9 0 3 2 9 0 3 2-2
0 10 4 3 0 10 4 3-2
4 5 0 6 4 5 0 6-2
0 2 4 8 0 2 4 8-2

0 0 0 2
9 0 3 0
0 10 4 1
4 5 0 4
0 2 4 6
O mtodo hngaro para resoluo do probl. da atribuio:

PASSO 2: Desenhe o nmero mnimo de linhas (horizontais e verticais)


para que todos os zeros sejo cobertos. Se n linhas so
necessrias, ento a soluo tima (so os n zeros
cobertos). Se um nmero menor que n linhas so
necessrias, v para o passo 3.

9 0 3 0 9 0 3 0
0 10 4 1 0 10 4 1
4 5 0 4 4 5 0 4
0 2 4 6 0 2 4 6
O mtodo hngaro para resoluo do probl. da atribuio:

PASSO 3: Encontre o menor valor no zero (k) na matriz de custos


reduzidos que no esteja coberto pelas linhas desenhadas
no passo 2. Agora subtraia k de cada elemento no coberto
e some k em cada elemento coberto por 2 linhas. Volte para
o passo 2.

9 0 3 0 9+1 0 3 0
0 10 4 1 1 0 10-1 4-1 1-1
4 5 0 4 4 +1 5 0 4
0 2 4 6 0 2-1 4-1 6-1
O mtodo hngaro para resoluo do probl. da atribuio:

PASSO 2: Desenhe o nmero mnimo de linhas (horizontais e verticais)


para que todos os zeros sejo cobertos. Se n linhas so
necessrias, ento a soluo tima (so os n zeros
cobertos). Se um nmero menor que n linhas so
necessrias, v para o passo 3.

10 0 3 0 10 0 3 0
0 9 3 0 0 9 3 0
5 5 0 4 5 5 0 4
0 1 3 5 0 1 3 5
O mtodo hngaro para resoluo do probl. da atribuio:

PASSO 2: Desenhe o nmero mnimo de linhas (horizontais e verticais)


para que todos os zeros sejo cobertos. Se n linhas so
necessrias, ento a soluo tima (so os n zeros
cobertos). Se um nmero menor que n linhas so
necessrias, v para o passo 3.

Tar 1 Tar 2 Tar 3 Tar 4

10 0 3 0 Maq A X
0 9 3 0 Maq B X
5 5 0 4 Maq C X
0 1 3 5 Maq D X
PO 201
PROGRAMAO
LINEAR INTEIRA

Professor: Rodrigo A. Scarpel


rodrigo@ita.br
www.mec.ita.br/~rodrigo
Hipteses em PL (suposies tecnolgicas e econmicas):

Proporcionalidade: todos os retornos / custos e recursos


utilizados variam proporcionalmente a varivel de deciso (no
h economia de escala);

Aditividade: o efeito total de quaisquer duas variveis a soma


dos efeitos individuais (no h sinergia ou efeito de
substituio). Exemplo: o custo total a soma dos custos
individuais;

Divisibilidade: as variveis de deciso podem assumir valores


fracionados. Se essas variveis s puderem assimir valores
inteiros o problema de programao inteira (PI);

Certeza (Determinstico): todos os parmetros do modelo so


constantes conhecidas (no so variveis aleatrias);
Problema de programao inteira:
Considere o seguinte problema:
( Minimizar / Maximizar ) Z a1 x1 a2 x2 ... an xn
Sujeito a : b11x1 b12 x2 ... b1n xn c1
b 21x1 b22 x2 ... b2 n xn c2

b k1x1 bk 2 x2 ... bkn xn ck
x1 , x 2 , .... , xn 0
em que xj inteiro para j = 1,2,,p (n)

Quando p = n : todas as variveis devem ter valor inteiro


Problema de Programao Inteira Pura
Quando p < n : algumas variveis no precisam ter valor inteiro
Problema de Programao Inteira Mista
Resoluo de problemas de Programao Inteira:

Espao de busca discreto X Espao de busca contnuo

Computacionalmente mais fcil tratar o caso contnuo

Abordagem inicialmente sugerida: ARREDONDAMENTO

Ignore a restrio que faz xi inteiro e resolva como se fosse um PPL

Se a resposta satisfizer as restries de inteiros soluo do PPI

Caso contrrio, obtenha uma soluo inteira arredondando a

resposta do PPL a nmeros inteiros.


Resoluo de problemas de Programao Inteira:

Exemplo do mtodo de resoluo por ARREDONDAMENTO

Maximizar 21*x1 + 11*x2

Sujeito a: 7*x1 + 4*x2 13, x1,x2 so nmeros inteiros e no-negativos

x2
ARREDONDAMENTO:
x1 = 2 e x2 = 0 SOLUO INVIVEL
x1 = 1 e x2 = 0 SOLUO VIVEL, MAS NO TIMA

SOLUO TIMA: x1 = 0 e x2 = 3 (Z=33)

x1
x1 = 13/7
Z = 39
x2 = 0
Resoluo de problemas de Programao Inteira:

CRTICAS ABORDAGEM POR ARREDONDAMENTO:

difcil pensar em um procedimento sistemtico que seja prtico para


arredondar uma soluo no-inteira em um problema de mdio ou
grande porte

Mesmo que o arredondamento funcione em alguns casos, difcil


esperar que esta abordagem funcione sempre.

Abordagem sugerida posteriormente: ENUMERAO (SOLUES VIVEIS)

Enumere todas as solues viveis e, ento, tome a melhor.


Resoluo de problemas de Programao Inteira:

Exemplo do mtodo de resoluo por ENUMERAO

Maximizar 21*x1 + 11*x2

Sujeito a: 7*x1 + 4*x2 13, x1,x2 so nmeros inteiros e no-negativos

x2
SOLUES VIVEIS:
x1 = 0 e x 2 = 0 Z = 0
x1 = 0 e x2 = 1 Z = 11
x1 = 0 e x2 = 2 Z = 22
x1 = 0 e x2 = 3 Z = 33
x1 = 1 e x2 = 0 Z = 21
x1 = 1 e x2 = 1 Z = 32
x1
SOLUO TIMA: x1 = 0 e x2 = 3 (Z=33)
Resoluo de problemas de Programao Inteira:

CRTICAS ABORDAGEM POR ENUMERAO DAS SOLUES VIVEIS:

Essa alternativa torna-se impraticvel j em problemas mdios:

Exemplo: 100 variveis de deciso que podem assumir valores 0 ou 1

2100 solues viveis

ALTERNATIVA:

Desenvolvimento de algortmos que enumeram parcialmente um


nmero tratvel de possibilidades e implicitamente todo o resto
(mtodos parcialmente enumerativos)

OBS: O mtodo simplex emprega o mesmo princpio para resolver


PPLs pois examina sistematicamente somente um sub-conjunto das
solues bsicas possveis.
Resoluo de problemas de Programao Inteira:

MTODO BRANCH-AND-BOUND:

um mtodo de resoluo que se baseia na idia de desenvolver uma


enumerao inteligente dos pontos candidatos soluo tima inteira
de um problema, por meio da partio do espao de solues e
avaliao progressiva das solues.

O termo branch refere-se s parties feitas pelo mtodo e o termo


bound s novas restries adicionadas.

ILUSTRAO DO MTODO:

FO: Maximizar Z = 4,0*xmadeira + 6,0*xalumnio

S.A. 1,5*xmadeira + 4,0*xalumnio 24


3,0*xmadeira + 1,5*xalumnio 21
1,0*xmadeira + 1,0*xalumnio 8
xmadeira, xalumnio inteiros no-negativos
Mtodo branch-and-bound:

PASSO 1: resolver o problema como se fosse um PPL (LP relaxation)


xalumnio

Z = 41,6
4,8

3,2 5
xmadeira
Mtodo branch-and-bound:

PASSO 2: particionar o problema em 2 adicionando restries

SUB-PROBLEMA 1:
FO: Maximizar Z = 4,0*xmadeira + 6,0*xalumnio

S.A. 1,5*xmadeira + 4,0*xalumnio 24


3,0*xmadeira + 1,5*xalumnio 21
1,0*xmadeira + 1,0*xalumnio 8
1,0*xmadeira 3
xmadeira, xalumnio inteiros no-negativos

SUB-PROBLEMA 2:
FO: Maximizar Z = 4,0*xmadeira + 6,0*xalumnio

S.A. 1,5*xmadeira + 4,0*xalumnio 24


3,0*xmadeira + 1,5*xalumnio 21
1,0*xmadeira + 1,0*xalumnio 8
1,0*xmadeira 4
xmadeira, xalumnio inteiros no-negativos
Mtodo branch-and-bound:

PASSO 2: particionar o problema em 2 adicionando restries


xalumnio

SUB-PROBLEMA 1

SUB-PROBLEMA 2

5
xmadeira
Mtodo branch-and-bound:

PASSO 3: resolver os problemas como se fossem PPLs (LP relaxation)


xalumnio

SUB-PROBLEMA 1: xMAD = 3
Z = 41,25
xALU = 4,875

SUB-PROBLEMA 2: xMAD = 4
Z = 40
xALU = 4
SUB-PROBLEMA 1

SUB-PROBLEMA 2

5
xmadeira
Mtodo branch-and-bound:

PASSO 2: particionar o problema em 2 adicionando restries

SUB-PROBLEMA 3: SUB-PROBLEMA 4:
FO: Maximizar Z = 4,0*xmadeira + 6,0*xalumnio FO: Maximizar Z = 4,0*xmadeira + 6,0*xalumnio

S.A. 1,5*xmadeira + 4,0*xalumnio 24 S.A. 1,5*xmadeira + 4,0*xalumnio 24


3,0*xmadeira + 1,5*xalumnio 21 3,0*xmadeira + 1,5*xalumnio 21
1,0*xmadeira + 1,0*xalumnio 8 1,0*xmadeira + 1,0*xalumnio 8
1,0*xmadeira 3 1,0*xmadeira 3
1,0*xalumnio 4 1,0*xalumnio 5
xmadeira, xalumnio inteiros xmadeira, xalumnio inteiros
e no-negativos e no-negativos
Mtodo branch-and-bound:

PASSO 3: resolver os problemas como se fossem PPLs (LP relaxation)


xalumnio

SUB-PROBLEMA 3: xMAD = 3
Z = 36
xALU = 4

SUB-PROBLEMA 4: xMAD = 2,67


Z = 40,67
xALU = 5
S-P 4
SUB-PROBLEMA 3

SUB-PROBLEMA 2

5
xmadeira
Mtodo branch-and-bound:

PASSO 2: particionar o problema em 2 adicionando restries

SUB-PROBLEMA 5: SUB-PROBLEMA 6:
FO: Maximizar Z = 4,0*xmadeira + 6,0*xalumnio FO: Maximizar Z = 4,0*xmadeira + 6,0*xalumnio

S.A. 1,5*xmadeira + 4,0*xalumnio 24 S.A. 1,5*xmadeira + 4,0*xalumnio 24


3,0*xmadeira + 1,5*xalumnio 21 3,0*xmadeira + 1,5*xalumnio 21
1,0*xmadeira + 1,0*xalumnio 8 1,0*xmadeira + 1,0*xalumnio 8
1,0*xmadeira 3 1,0*xmadeira 3
1,0*xalumnio 5 1,0*xalumnio 5
1,0*xmadeira 3 1,0*xmadeira 2
xmadeira, xalumnio inteiros xmadeira, xalumnio inteiros
e no-negativos e no-negativos
Mtodo branch-and-bound:

PASSO 3: resolver os problemas como se fossem PPLs (LP relaxation)


xalumnio

SUB-PROBLEMA 5: NO H SOLUO VIVEL

SUB-PROBLEMA 6: xMAD = 2
Z = 39,5
xALU = 5,25

S-P 6
SUB-PROBLEMA 3

SUB-PROBLEMA 2

5
xmadeira
Mtodo branch-and-bound:

SOLUO DO PROBLEMA DE PROGRAMAO INTEIRA:


xalumnio

SUB-PROBLEMA 5: NO H SOLUO VIVEL

SUB-PROBLEMA 6: xMAD = 2
Z = 39,5
xALU = 5,25

SUB-PROBLEMA 2: xMAD = 4
S-P 6
Z = 40
xALU = 4
SUB-PROBLEMA 3

SUB-PROBLEMA 2

5
xmadeira
Mtodo branch-and-bound:
PROBLEMA:
Z = 41,60
xMAD = 3,2
xMAD 3 xMAD 4
xALU = 4,8

SUB-PROBLEMA 1: SUB-PROBLEMA 2:
Z = 41,25 xALU 5 Z = 40,00
xMAD = 3 xMAD = 4
xALU 4
xALU = 4,875 xALU = 4

SUB-PROBLEMA 3: SUB-PROBLEMA 4:
Z = 36,00 xMAD 2 Z = 40,68
xMAD = 3 xMAD = 2,67
xALU = 4 xALU = 5 xMAD 3

SUB-PROBLEMA 6: SUB-PROBLEMA 5:
Z = 39,50 NO H
xMAD = 2
SOLUO
xALU = 5,25
VIVEL
Tcnicas de desenvolvimento da rvore de enumerao:

- Busca em profundidade P0

P1 P2

P3 P4

P5 P6
- Busca em largura P0

P1 P2

P6 P3 P4
P5

- Variantes hbridas
Mtodo dos planos de corte de Gomory:
Objetivo: obter uma aproximao da envoltria convexa da regio vivel de
um PLI que contenha um ponto extremo correspondente a uma
soluo tima.
Passos: 1. Resolver o PLI relaxado (como um PPL)
2. Se a soluo for inteira, ento a soluo tima do PLI. Caso
contrrio, v para o passo 3
3. Escolha uma linha do tableau com soluo no inteira e construa o
corte de Gomory. Resolva o PPL com a nova restrio.
PO 201
OTIMIZAO
COMBINATRIA

Professor: Rodrigo A. Scarpel


rodrigo@ita.br
www.mec.ita.br/~rodrigo
Problemas de otimizao combinatria:
Objetivo: encontrar, dentre todos os possveis subconjuntos, aquele cuja
funo objetivo seja a melhor possvel.

Algumas aplicaes prticas:

1. Problemas de produo: set-up, novos equipamentos,

2. Problemas de alocao de recursos: mo-de-obra, equipamentos,

3. Problemas de corte e empacotamento

4. Problemas de localizao de facilidades

5. Problemas de distribuio de bens de consumo

6. Problemas de roteamento (otimizao de redes: TSP)


Problemas de Produo (set-up, novos equipamentos):

MADEIRA ALUMNIO

CORTE

EXPANSO DA PRODUO:
MONTAGEM MQUINA CORTE:
+5h (INVEST=$50) / +15h (INVEST=$80)
MQUINA MONTAGEM:
ACABAMENTO +6h (INVEST=$30) / +15h (INVEST=$50)
NOVAS RESTRIES:

PORTA PORTA DE INVESTIMENTO NO PODE EXCEDER $120


DE ALUMNIO POSSVEIS RELAES DE PRECEDNCIA
MADEIRA ALTERNATIVAS MUTUAMENTE EXCLUSIVAS
L=$6,00
L=$4,00 NECESSIDADE DE SET-UP:
CORTE: +0,5h (MADEIRA) / +1h (ALUMNIO)
122
Problemas da alocao de recursos:
Uma empresa de transporte urbano de passageiros quer determinar a
quantidade mnima de nibus necessrios para atender sua programao.

Dados:

1. Devido manuteno diria obrigatria, cada nibus s pode circular


apenas 8 horas sucessivas por dia

2. Necessidade:

123
Problemas de corte e empacotamento:
Uma empresa fabrica rolos de papel com 20 ps de comprimento (dimetro
padro). Em uma certa semana recebeu 3 pedidos:

Como fazer os cortes de forma a minimizar a perda? 124


O problema da localizao:
Caso 1: O problema da cobertura

Problema da cobertura: selecionar o menor nmero de colunas para atender


todas as linhas de uma matriz.

Utilidade: localizao de instalaes (postos de atendimento), diviso de regies


para explorao da fora de vendas,

Pontos
pretos
indicam
que a
coluna
atende a
linha
125
O problema da localizao:
Caso 1: O problema da cobertura

F
1,9 H
2,1 I
1,2 X
1,2 3,4
B
A 0,9 R
2,2 1,5 C
G
2,4 2,2
4,6 Distncia mxima: 3 km
1,7 1,2
0,7 2,6
D 2,5 4,2 U
J 0,5
1,9 E
3,2 S
2,8
1,3 3,2 0,7 1,2
K Z
1,2 0,8
2,8 L P V
N 2,2
1,7
2,2 2,1 A B C D E F G H I J K L M N O P Q R S T U V X Z
1,4
0,8 T A 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
M 1,4 B 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
O Q C 0 1 1 0 1 0 1 0 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0
1,2 D 1 1 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
E 0 1 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 0 0 0 0 0
F 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
G 0 1 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 0 0
H 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
I 0 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0
J 0 0 1 0 1 0 1 0 1 1 0 0 0 0 0 1 0 0 1 1 0 1 0 0
K 0 0 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0
L 0 0 1 0 1 0 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0
M 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0
N 0 0 1 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0
O 0 0 1 0 1 0 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 0 0 0
P 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 1 1 0 1 0 0
Q 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0
R 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0
S 0 0 1 0 0 0 1 0 1 1 0 0 0 0 0 1 0 1 1 1 0 1 0 0
T 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 1 0 1 0 0
U 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1
V 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 1 1 0 126
1 0 0
X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
Z 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1
O problema da localizao:
Caso 2: O problema das p-medianas

(x1;x2)
Resultados:
P1=(1,05;6,85)
P2=(1,1;3,55)
P3=(1,25;0,85) p = 1 9: (1,2,3,...,13,14)
P4=(4,0;6,65)
P5=(3,55;2,85) p = 2 2: (1,2,3,5)
P6=(6,3;7,25) 9: (4,6,7,8,9,10,11,12,13,14)
P7=(7,0;6,4)
P8=(5,05;3,55)
p = 3 5: (1,2,3,5,8,10)
P9=(7,0;4,35)
P10=(6,4;1,2) 7: (4,6,7,9,11)

P11=(10,1;6,65) 13: (12,13,14)


P12=(9,9;4,85)
P13=(9,6;2,2)
P14=(10,75;0,5)
Problemas de distribuio de bens de consumo:
Dados: N pontos de entrega (ponto-a-ponto), ti (i=1,,N) o tempo de viagem
do CD ao ponto de entrega (ida e volta) + tempo de descarregar a carga
e T o tempo disponvel (por caminho).
Decises: Quantos caminhes sero necessrios e qual caminho far qual
viagem
Exemplo: N=10 entregas (T = 8 h por caminho)

t1 = 1,1 h t6 = 1,7 h V8 V9
Soluo: 4 caminhes
t2 = 1,3 h t7 = 2,9 h
V1 V2 V3
1 V3, V4, V5 (T=7,9)
t3 = 3,7 h t8 = 3,9 h
t4 = 2,3 h t9 = 5,1 h 2 V10 (T=7,3)
V4
t5 = 1,9 h t10 = 7,3 h V7
CD 3 V1, V2, V6, V8 (T=8,0)

4 V7, V9 (T=8,0)
V6
V5

V10
Problemas de distribuio de bens de consumo:
Dados: N pontos de entrega, ti (i=1,,N) o peso da carga que ser
transportada do CD ao ponto de entrega (ida e volta) e T a capacidade
de carga do caminho.
Decises: Quantos caminhes sero necessrios e qual varejista ser visitado
por cada caminho
Exemplo: N=10 entregas (T = 10 ton por caminho)

V8 V9
t1 = 1,1 ton t6 = 1,7 ton
Soluo: 4 caminhes
t2 = 1,3 ton t7 = 2,9 ton V1 V2 V3
1 V8, V6, V4, V2 (T=9,2)
t3 = 3,7 ton t8 = 3,9 ton
2 V7, V5, V3, V1 (T=9,6)
t4 = 2,3 ton t9 = 5,1 ton
CD V4
t5 = 1,9 ton t10 = 7,3 ton V7 3 V10 (T=7,3)

4 V9 (T=5,1)
V6
V5

V10
PO 201
OTIMIZAO EM
REDES

Professor: Rodrigo A. Scarpel


rodrigo@ita.br
www.mec.ita.br/~rodrigo
Fluxo em Redes (Network Flows) :
Muitos problemas de otimizao podem ser melhor analisados se
for utilizada uma representao grfica ou em forma de redes.

Esses problemas so enquadrados como de otimizao em redes


ou fluxo em redes (network flows)

Principais Problemas:
Transporte (Transportation)
Transbordo (Transshipment)
Atribuio ou Designao (Assignment)
Circuitos Hamiltonianos (TSP)
Caminho Mnimo (Shortest-Path) / Mximo
Mximo fluxo (Maximum-flow problems)
Problema da rvore geradora mnima (Minimum Spanning Tree)
Fluxo em Redes (Network Flows) :
Definies:

Um grafo, ou rede, definido por dois conjuntos de smbolos:


ns (ou vrtices) e arcos.

Um arco consiste de um par ordenado de ns e representa uma


possvel direo de movimento que pode ocorrer entre os ns.

Uma seqncia de arcos distintos que ligam ns chamado de


caminho (path).

Uma rvore uma rede conectada (todos os ns esto


conectados por no mnimo 1 caminho) sem ciclos.
O problema do caixeiro viajante:
O problema do caixeiro viajante um problema de otimizao associado
determinao dos circuitos hamiltonianos num grafo qualquer.

Diz-se que um circuito Hamiltoniano se passar uma e s uma vez por todos os
vrtices de uma rede. A designao provm do islands Hamilton que em 1857
props um jogo denominado Around the World". Nesse jogo, os vrtices
representavam as 20 cidades mais importantes do mundo na poca. O objetivo
do jogo consistia em encontrar um percurso atravs dos vrtices, com incio e fim
no mesmo vrtice e que passasse por cada vrtice apenas uma vez.

0 2 0 2

4 4

1 3 1 3

6 5 6 5
O problema do caixeiro viajante:
Formulao de Dantzig-Fulkerson-Johnson:

Seja um grafo G = (V,A), em que V o conjunto de vrtices


(cidades) e A o conjunto de arcos (ligaes entre duas cidades).

Var. deciso: xij = 1, se o arco de i para j estiver no caminho


0, caso contrrio

Minimizar dij xij S . A. xij 1, j


i j i
xij 1, i
j

xij S 1, S grafo
i , jS
O problema do caixeiro viajante:
Exemplo: 1
1
2
2
6
5 3
3
5 4
4

F.O.: MIN 1x1,2 + 1x2,1 + 2x2,3 + 2x3,2 + 3x3,4 + 3x4,3 + 6x1,4 +


6x4,1 + 4x4,5 + 4x5,4 + 5x5,1 + 5x1,5

S.A. x1,2 + x1,4 + x1,5 = 1 x2,1 + x4,1 + x5,1 = 1


x2,3 + x2,1 = 1 x3,2 + x1,2 = 1
x3,2 + x3,4 = 1 x2,3 + x4,3 = 1
x3,4 + x1,4 + x5,4 = 1 x4,3 + x4,1 + x4,5 = 1
x5,4 + x5,1 = 1 x1,5 + x4,5 = 1
O problema do caixeiro viajante:
1 1
2
2
6 x1,2 + x2,1 + x2,3 + x3,2 + x3,4 + x4,3 + x4,1 + x1,4 3
5 3
3
5 4
4

1 1
2
2

5
6
3 x1,4 + x4,1 + x4,5 + x5,4 + x1,5 + x5,1 2
3
5 4
4

Soluo: 1 1
2
2
x1,2 = x2,3 = x3,4 = x4,5 = x5,1 = 1
5 3
3
Distncia percorrida = 15
5 4
4
O problema do caixeiro viajante:
Embora a formulao de Dantzig-Fulkerson-Johnson tenha conseguido
resolver o problema h uma dificuldade de implementao: colocar na
formulao de todos os subgrafos de um grafo complexo.

Exemplo:

1
3

5
4
O problema do caixeiro viajante:
Resoluo por branch-and-bound:

Resolver o problema do caixeiro viajante como um problema de


atribuio (relaxado)

Minimizar dij xij S . A. xij 1, j


i j i

xij 1, i
j
Se a soluo do problema relaxado for vivel para o problema do
caixeiro viajante, esta tima. Caso contrrio adicione uma
restrio para bloquear o arco (xij = 0).

Repita o procedimento at encontrar uma soluo tima para o


problema relaxado e que atenda o problema de caixeiro viajante.
O problema do caixeiro viajante:
Resoluo por branch-and-bound: Exemplo

1
3

5
4
O problema do caixeiro viajante:
Resoluo pela heurstica do vizinho mais prximo:
Passo 1: selecione um ponto de partida.
Passo 2: Conecte este ponto ao seu vizinho mais prximo, desde
que esse no forme um subcircuito.
Repita o passo 2 at que todos os ns tenham sido escolhidos.
Exemplo:

1
3

152431 D = 668

5
4
O problema do caixeiro viajante:
Teste da soluo pela heurstica da inverso:
possvel buscar melhorar a soluo invertendo-se 2 a 2, 3 a 3,
, n-1 a n-1, em que n o nmero de ns de uma rede.
Exemplo:

152431 D = 668
125431 D = 737

154231 D = 962

152341 D = 704

142531 D = 964

153421 D = 807

132451 D = 962
O problema do carteiro chins (PCC):
O PCC um problema de otimizao que objetiva cobrir com um
passeio todos os arcos de um grafo, minimizando a distncia total
percorrida, permitindo a repetio de arestas.

Ilustrao:

Existem formulaes do PCC para o caso orientado, no-orientado e


misto.
O problema do carteiro chins:
Formulao (caso no-orientado):

VD: xij o nmero de vezes que o arco (i,j) usado (no sentido i j)

n n
Minimizar d
i 1 j 1
x
ij ij (MINIMIZAR A DISTNCIA PERCORRIDA)

n n
S . A. x x
j 1
ji
j 1
ij 0, i 1,..., n

xij x ji 1, i j
xij 0 e inteiro
O problema do carteiro chins (PCC):
Exemplo:

M in 3x1, 2 4 x1,8 2 x 6,8


3x 2,1 4 x 8,1 2 x 8, 6
S.A. x1, 2 x1,5 x1, 6 x1,8 x 2,1 x 5,1 x 6,1 x 8,1 0

x 8, 6 x 8,1 x 6,8 x1,8 0 7
3
2
x1, 2 x 2,1 1 3
5
7
4 6
1
2
3 6

x 6 ,8 x 8, 6 1 4
4 8

x1, 2 , , x 8, 6 0
4

5
6
O problema do caminho mnimo / mximo:
Problema do caminho mnimo / mximo Otimizao de redes lineares

Decises estratgicas: selecionar o caminho mais curto / longo entre ns

Utilidade: caminho mais curto: rota de transporte, substituio de equipam,

caminho mais longo: PERT, CPM e problema da mochila

3
2 4
4 2
2
Depsito 1 1 6 Cidade 1
3 2
4
3 5
Formulao do problema do caminho mnimo / mximo:

Minimizar Maximizar dij xij


i j

dij a distncia entre a origem i e o destino j


Var. deciso: xij = 1, se o arco (i,j) estiver no caminho mnino / mximo
0, caso contrrio

1 , k s ( fonte )

S . A. xkj xik 0, para todos os outros k
j i
1 , k r ( sorvedouro)
xij 0 , i, j
Formulao do problema do caminho mnimo / mximo:

MIN / MAX Z = 4X12 + 3X13 + 3X24 + 2X25 + 4X35 + 2X46 + 2X56

Var. deciso: xij = 1, se a ligao fizer parte do caminho mnimo / mximo


0, caso contrrio

S.A. X12 + X13 = 1 (fonte) - X46 - X13 = -1 (sorvedouro)


X12 = X24 + X25 X46 = X24
X13 = X35 X56 = X25 + X35

3
2 4
4 2
2
Depsito 1 1 6 Cidade 1
3 2
4
3 5
Resoluo do problema do caminho mnimo:
Algoritmo Dijkstra:

Incio: rotule o n fonte de forma permanente com 0 e cada um dos ns


conectados a este, de forma temporria, com a distncia do arco que une
1 a este. Todos os outros ns recebero um rtulo temporrio .

1 4

* 2 4
3
0 0
2
4
Depsito 1 1 2 6 Cidade 1
3 2
4
3 5
1 3
Resoluo do problema do caminho mnimo:
Algoritmo Dijkstra:

Passo 2: Selecione o n com o menor rtulo temporrio e faa-o


permanente. Ento rotule cada um dos ns conectados a este, de forma
temporria, com a distncia do arco que os une.

Repita o passo 2 at chegar no n sorvedouro.

1 4

* 2 4
3
0 0
2
4
Depsito 1 1 2 6 Cidade 1
3 2
4
3 5
1 3 3 7

*
Resoluo do problema do caminho mnimo:
Algoritmo Dijkstra:

Passo 2: Selecione o n com o menor rtulo temporrio e faa-o


permanente. Ento rotule cada um dos ns conectados a este, de forma
temporria, com a distncia do arco que os une.

Repita o passo 2 at chegar no n sorvedouro.

*
1 4 2 7

* 2 4
3
0 0
2
4
Depsito 1 1 2 6 Cidade 1
3 2
4
3 5
1 3 2 6

*
Resoluo do problema do caminho mnimo:
Algoritmo Dijkstra:

Passo 2: Selecione o n com o menor rtulo temporrio e faa-o


permanente. Ento rotule cada um dos ns conectados a este, de forma
temporria, com a distncia do arco que os une.

Repita o passo 2 at chegar no n sorvedouro.

*
1 4 2 7

* 2 4
0 0 3 5 8
4 2
Depsito 1 1 2 6 Cidade 1
3 2
4
3 5
1 3 2 6

* *
Resoluo do problema do caminho mnimo:
Algoritmo Dijkstra:

Passo 2: Selecione o n com o menor rtulo temporrio e faa-o


permanente. Ento rotule cada um dos ns conectados a este, de forma
temporria, com a distncia do arco que os une.

Repita o passo 2 at chegar no n sorvedouro.

* *
1 4 2 7

* 2 4
0 0 3 5 8
4 2
Depsito 1 1 2 6 Cidade 1
3 2
4
3 5
1 3 2 6

* *
Resoluo do problema do caminho mnimo:
Algoritmo Dijkstra:

Passo 2: Selecione o n com o menor rtulo temporrio e faa-o


permanente. Ento rotule cada um dos ns conectados a este, de forma
temporria, com a distncia do arco que os une.

Repita o passo 2 at chegar no n sorvedouro.

* *
1 4 2 7

* 2 4 *
0 0 3 5 8
4 2
Depsito 1 1 2 6 Cidade 1
3 2
4
3 5
1 3 2 6

* *
Resoluo do problema do caminho mnimo:
Algoritmo Dijkstra:
* *
1 4 2 7

* 2 4 *
0 0 3 5 8
4 2
Depsito 1 1 2 6 Cidade 1
3 2
4
3 5
1 3 2 6

* *

Caminho mais curto: 1 2 5 6 : distncia = 8


Exemplo - problema do caminho mnimo:
Um carro novo comprado por US$12,000.00. O custo de manuteno e seu
preo de revenda dependem da idade do carro como segue:

Idade do carro (anos) Custo de Manuteno (US$) Idade do carro (anos) Preo de Revenda (US$)
0 2,000.00 1 7,000.00
1 4,000.00 2 6,000.00
2 5,000.00 3 2,000.00
3 9,000.00 4 1,000.00
4 12,000.00 5 0,000.00

Formule o problema que determine a poltica tima de troca de veculos no


horizonte de 5 anos (leia-se poltica tima aquela que minimiza a soma dos custos
de compra, manuteno e revenda).

5 4 3 2 1 0
Exemplo - problema do caminho mnimo:
Custo total: Ficar com o carro 1 ano (US$ mil) = 12+2 -7 = 7

Ficar com o carro 2 anos (US$ mil) = 12 +2 +4 -6 = 12

Ficar com o carro 3 anos (US$ mil) = 12 +2 +4 +5 -2 = 21

Ficar com o carro 4 anos (US$ mil) = 12+2 +4 +5 +9 -1 = 31

Ficar com o carro 5 anos (US$ mil) = 12+2 +4 +5 +9 +12 -0 = 44

5 4 3 2 1 0

0 0 5 7 5 12 5 21 5 31 5 44
Exemplo - problema do caminho mnimo:

5 4 3 2 1 0

0 0 5 7 5 12 4 19 4 28 4 38

5 4 3 2 1 0

0 0 5 7 5 12 4 19 3 24 3 33

3 19
Exemplo - problema do caminho mnimo:

5 4 3 2 1 0

0 0 5 7 5 12 4 19 3 24 2 31

3 19

5 4 3 2 1 0

0 0 5 7 5 12 4 19 3 24 2 31

3 19 1 31
Exemplo - problema do caminho mnimo:

5 4 3 2 1 0

0 0 5 7 5 12 4 19 3 24 2 31

3 19 1 31

Caminhos mais curtos: 5 3 1 0 : distncia = 31


5 4 2 0 : distncia = 31
5 3 2 0 : distncia = 31
Problema do caminho mximo:

CPM (critical path method)


Exemplo (caminho mximo): CPM (critical path method)
Nmero Atividade Atividade de pr-requisito Durao
0 Incio do Trabalho - 0
1 Projeto de Simulao 0 2
2 Treinamento de Pessoal 1 6
3 Construo das Instalaes 1 4
4 Certificao das Instalaes 3,6 1
5 Aquisio de material 1 1
6 Aferio dos instrumentos 5 3
7 Teste do material adquirido 2,4 3
8 Montagem da cabine de simulao 7 1
9 Execuo da simulao 8 2
10 Fim 9 0

2 7

0 1 3 4 8 9 10

5 6
Problema do caminho mximo: Resoluo

CPM (critical path method)


Os clculos do caminho crtico envolvem dois passos:

Passo 1: Forward pass (tempo mais cedo de ocorrncia)

Passo 2: Backward pass (tempo mais tarde de ocorrncia)

Uma atividade estar no caminho crtico se:


Exemplo (caminho mximo): CPM (critical path method)

8 11
8 11
3
2 7 12 14
6 7 3 12 14
1
2 6
4 1
0 1 3 4 8 9 10
2 0
1
1
2
3 8 14
0 5 6
7 14
0 2
4 7
3 6

Caminho crtico: 0 1 2 7 8 9 10 : distncia = 14


Exemplo (caminho mximo): CPM (critical path method)
Caminho crtico: 0 1 2 7 8 9 10 : distncia = 14

8 11
8 11
3
2 7 12 14
6 7 3 12 14
1
2 6
4 1
0 1 3 4 8 9 10
2 0
1
1
3 8 14
1 0 2 5 6
14
0 2 7
2 4 7
3 6
7
8
3
9
5 4

2 6 8 11 12 14 tempo
O problema da rvore geradora mnima:
Exemplo:
O problema da rvore geradora mnima:
Em uma rede com n ns, uma rvore geradora um grupo de n-1 arcos
que conectam todos os ns de uma rede sem formar loopings.

A rvore geradora mnima uma rvore geradora em que a soma dos n-


1 arcos a menor possvel

Exemplo:
O problema da rvore geradora mnima:
Exemplo:
F.O. MIN 2Xab + 1Xac + 4Xae + 2Xbd + 3Xbc + 2Xcd + 2Xce + 5Xcg +
3Xeg + 2Xdf + 4Xfg + 4Xfh + 5 Xgh
S.A.
Xab + Xac + Xae 2
Xab + Xbc + Xbd 2
Xac + Xbc + Xcd + Xce + Xcg 2
Xbd + Xcd + Xdf 2 b
d
Xae + Xce + Xeg 2 a
f
Xdf + Xfg + Xfh 2 c
h
Xeg + Xfg + Xgh 1
e
Xfh + Xgh 1 g

1 Xab, Xac, Xae, ..., Xgh 0


Xab, Xac, Xae, ..., Xgh inteiras
Resoluo do problema da rvore geradora mnima:
Algoritmo de resoluo:

Seja N={1, 2, , n} o conjunto de ns de uma rede, Ck o conjunto de ns


conectados de forma permanente na iterao k e k o conjunto de ns anda
no conectados de forma permanente na iterao k.

Passo 0: C0 = e 0 = N

Passo 1: Comece em qualquer n i do conjunto 0, faa C1 = {i} e 1 = N-{i}

Passo geral k: selecione o n j* de k-1 que resulte no menor arco at um n


do conjunto Ck-1. Coloque j* permanentemente em Ck-1 e remova este de
k-1, ou seja,

Ck = Ck-1 + {j*} e k = k-1 {j*}


Resoluo do problema da rvore geradora mnima:
Soluo:
Passo 0: C0 = e 0 = {a,b,c,d,e,f,g,h} Passo 5: C5 = {e,c,a,d,b} e 5 = {f,g,h}
Passo 1: C1 = {e} e 1 = {a,b,c,d,f,g,h} Passo 6: C5 = {e,c,a,d,b,f} e 5 = {g,h}
Passo 2: C2 = {e,c} e 1 = {a,b,d,f,g,h} Passo 7: C5 = {e,c,a,d,b,f,g} e 5 = {h}
Passo 3: C3 = {e,c,a} e 1 = {b,d,f,g,h} Passo 8: C5 = {e,c,a,d,b,f,g,h} e 5 =
Passo 4: C4 = {e,c,a,d} e 1 = {b,f,g,h}
EXEMPLO: RVORE GERADORA MNIMA
Problema do fluxo mximo:
O problema do fluxo mximo um problema de enumerao de cortes.

Um corte define um conjunto de arcos que, quando eliminado da rede,


causar um rompimento total do fluxo entre o n de origem e o n
sorvedouro.

A capacidade do corte igual soma das capacidades de seus arcos.


Formulao do problema do fluxo mximo:

Var. deciso: xij = qtde (volume) que deve ir da origem i para o destino j

Maximizar Z x
i corte j corte
ij

S . A. x x
j
kj
i
ik 0 , (i, j) origem ou destino

xij Cij , (i, j)


xij 0 , (i, j)
Planejamento da Freqncia de Vos:
Uma empresa de transporte areo deseja determinar quantos vos com
conexo podem ser realizados entre Manaus e Salvador. Os vos devem
fazer conexo primeiro em Belm e depois em Braslia ou em Fortaleza.
Em funo da previso de demanda e do tamanho da frota, determinou-se
o numero mximo de vos dirios entre pares de cidade. Formular e
resolva o problema objetivando maximizar o nmero de vos dirios entre
Manaus e Salvador.

Nmero Mximo
Cidades
Manaus Belm de Vos Dirios
Manaus - Belm 3
Fortaleza Belm - Braslia 2
Belm - Fortaleza 3
Braslia - Salvador 1
Fortaleza - Salvador 2

Braslia Salvador
Planejamento da Freqncia de Vos:

Varivel de Deciso: Qi-j=Qtde de i para j

2 F.O. MAX = QMAN-BEL


Manaus
3 Belm

Fortaleza
S.A.
1
3 QMAN-BEL 3 QBEL-BRA 3

Restries de
QBEL-FOR 2 QBRA-SAL 2

Limite
Braslia Salvador
2
QFOR-SAL 1
Soluo: QMAN-BEL = QBEL-BRA + QBEL-FOR

Balanceamento
Restries de
QBEL-BRA = QBRA-SAL
3 1
Manaus Belm QBEL-FOR = QFOR-SAL
Fortaleza Qi-j 0
1
2
Braslia Salvador
2
Resoluo do problema do fluxo mximo:

Resoluo do problema de fluxo mximo por enumerao:

Entre todos os possveis cortes na rede, o que tiver a menor


capacidade d o fluxo mximo na rede.

Uma alternativa para determinar o fluxo mximo enumerar


todos os cortes.

Em grandes redes a enumerao pode ser uma tarefa difcil.


Assim, nestes casos, a necessidade de um algoritmo (ou
heurstica) eficiente imperativa.
Resoluo do problema do fluxo mximo:

Algoritmo do fluxo mximo:

IT1:
SMANAUS = {Belm}
K = Belm e
[3,Manaus]

3
CMANAUS-BELM = MAX{3} = 3
3 [3,Belm]
Manaus Belm SBELM = {Fortaleza;Braslia}
Fortaleza
[,-] K = Fortaleza pois
2
2 CBELM-FORTALEZA = MAX{3,2} = 3
[2,Fortaleza]
Braslia Salvador SFORTALEZA = {Salvador}
1 K = Salvador e
CFORTALEZA-SALVADOR = MAX{2} = 2

FLUXO NA ITERAO 1 = MIN{,3,3,2} = 2 Atualizar as capacidades (C)


Resoluo do problema do fluxo mximo:

Algoritmo do fluxo mximo:

IT2:
SMANAUS = {Belm}
K = Belm e
[1,Manaus]

1
CMANAUS-BELM = MAX{1} = 1
1
Manaus Belm SBELM = {Fortaleza;Braslia}
Fortaleza
[,-] K = Braslia pois
0
2 CBELM-BRASLIA = MAX{1,2} = 2
[1,Belm]
Braslia Salvador SBRASLIA = {Salvador}
1 K = Salvador e
[2,Belm]
CBRASLIA-SALVADOR = MAX{1} = 1

FLUXO NA ITERAO 2 = MIN{,1,2,1} = 1 Atualizar as capacidades (C)


Resoluo do problema do fluxo mximo:

Algoritmo do fluxo mximo:

IT3:
Como todos os ns que partem
[1,Manaus] de Manaus (ou chegam a
0 1 Salvador) tm capacidade
Manaus Belm
residual 0, no h mais nenhuma
Fortaleza
[,-] rota de passagem possvel.
0
1
Assim,
[1,Belm]
Braslia Salvador

0
[2,Belm]

FLUXO MXIMO NA REDE (F) = f1 + f2 = 2 + 1 = 3 vos


PO 201
PROGRAMAO
DINMICA

Professor: Rodrigo A. Scarpel


rodrigo@ita.br
Orientao:

A caracterstica comum de todos os problemas resolvidos


por programao dinmica expressar o problema de
deciso por meio de uma formulao recursiva.

Princpio da Otimidade:

Uma poltica tima deve ter a propriedade de que,


independentemente do percurso tomado para chegar a um
determinado estado, as decises restantes devem constituir-
se numa poltica tima a partir daquele estado.
O problema da mochila:

Um alpinista vai escalar uma montanha e pode levar 5 kg em sua


mochila. Ele tem 5 diferentes tipos de itens que pode incluir. Seus pesos
e valor de sobrevivncia so:
ITEM PESO V.S. O que ela deve levar para maximizar
1 5 50
sua sobrevivncia?
2 3 40
3 2 25
4 2 20
5 1 10

Formulao por Programao Linear (Inteira):

Maximizar 50X1+40X2+25X3+20X4+10X5
S.A. 5X1+3X2+2X3+2X4+1X5 5
X1 0 , X2 0 , X3 0 ,
X4 0 , X5 0
O problema da mochila:
N
Formulao por PLI: Maximizar R j 1
j X j

N
S . A. w
j 1
j X j W

X j 0

Formulao por Programao Dinmica:


.

g ( w) mximo R j g ( w j )
j
para w 1, 2, ..., W

g(0) 0
Exemplo clssico 1 O problema da mochila:

ITEM PESO V.S. 25 40


1 5 50
2 3 40 5 4 3 2 1 0
3 2 25
4 2 20 40 25
5 1 10

g(0) 0 R1 g (3); 10 40
g (1) mximo R1 g (0) 10 0 10 g (4) mximo R2 g (2); 25 25 50
R g (1); 10 10 R3 g (1) 40 10
g (2) mximo 1 25
R2 g (0) 25 0 R1 g (4); 10 50
R1 g (2); 10 25
R g (3); 25 40
g (5) mximo 2 65
g (3) mximo R2 g (1); 25 10 40 R3 g (2); 40 25
R3 g (0) 40 0
5R g ( 0) 50 0
Formulao do problema do caminho mnimo:

Formulao por Programao Dinmica (Backward Recursion):

f n (s) mnimo d sx f n1 ( x) para n 1,2,3


( s,x)

Sejam n a varivel de estgio (representando o nmero de trechos que ainda


faltam para chegar na cidade 6, s a varivel de estado (representando cada
cidade), (s,x) a deciso a ser tomada em cada estgio (representando o trecho
entre as cidades s e x) e dsx a distncia entre as cidades s e x.

3
2 4
4 2
2
Depsito 1 1 6 Cidade 1
3 2
4 f0 (6) 0
3 5
Resoluo do problema do caminho mnimo:

f n (s) mnimo d sx f n1 ( x) para n 1,2,3


( s,x)

n 0 f 0 (6) 0 3
2 4
2
n 1 Deciso: j f1 (x) j1 (x)
4
6 2
1 6
Estado Inicial: 4 2 2 6
3 2
x 5 2 2 6
4
3 5
n 2 Deciso: j f2 (x) j2 (x)
4 5
Estado Inicial: 2 3+2 2+2 4 5
x 3 - 4+2 6 5

n 3 Deciso: j f3 (x) j3 (x)


2 3
Estado inicial: x 1 4+4 3+6 8 2

Soluo tima (mnimo): 1 2 5 6 (distncia=8)


Resoluo do problema do caminho mnimo:
Formulao por Programao Dinmica (Forward Recursion):

f n (s) mnimo d xs f n1 (s) para n 1,2,3


( x ,s )

n 0 f0 (1) 0 2
3
4
2
f1 2 4 f 0 1 4
4
2
n 1 1 6
f1 3 3 f 0 1 3 3 2
4
f 2 4 3 f1 2 7 (do n 2)
3 5

2 f1 2 6
n 2
f 2 5 mn 6 (do n 2)

4 f1 3 7
2 f 2 4 9
n 3 f3 6 mn 8 (do n 5)
2 f 2 5 8
Soluo tima (mnimo): 1 2 5 6 (distncia=8)
Exemplo Problema de substituio de equipamento:
Uma empresa que opera uma oficina mecnica possui uma furadeira de pedestal
muito dispendiosa que deve ser substituda periodicamente quando se gasta. O
diretor de produo j autorizou instalar um novo modelo computadorizado
controlado por fita, mas pediu ao encarregado para montar um plano timo de
substituio para os prximos 5 anos, depois dos quais a furadeira no ser mais
necessria. Os dados financeiros relavantes so:
Tempo Preo de compra Valor de revenda Custo de operao
t pt vt rt
1 100 50 30
2 105 25 40
3 110 10 50
4 115 5 75
5 120 2 90

Seja cij = soma do preo de compra e custos de operao menos o valor de


revenda de uma furadeira nova comprada no ano i e mantida at o
incio do ano j, quando revendida.

Exemplo: c13 = p1 + (r1 +r2) v2 = 100 + (30+40) 25 = 145


Exemplo Problema de substituio de equipamento:

i j 2 3 4 5 6
1 80 145 210 290 373
2 85 150 215 295
3 90 155 220
4 95 160
5 100

1 2 3 4 5 6

Formulao por Programao Dinmica:


.
g (n) mnimo cnk g (k ) para n N 1, N - 2, ...,1
k n 1,...,N
g( N ) 0
Exemplo Problema de substituio de equipamento:
g(6) 0
g (5) mnimo c 56 g (6) 100 0 100
c g (5); 95 100;
g (4) mnimo 45 160
46
c g ( 6) 160 0
c 34 g (4); 90 160;
g (3) mnimo c 35 g (5); 155 100; 220
c 36 g (6) 220 0
c 23 g (3); 85 220;
c g (4);
150 160 ;
g (2) mnimo 24 295
c 25 g (5); 215 100;

26
c g ( 6 ) 295 0
c12 g (2); 80 295; 145 220
c g (3);
13 145 220 ;
g (1) mnimo c14 g (4); 210 160; 365 1 2 3 4 5 6

15
c g (5 ); 290 100 ; Os anos 1 e 3 so chamados pontos de
c16 g (6) 373 0
regenerao.
Exemplo Problema do investimento:
Um investidor possui R$200.000,00 para investir e pretende planejar os
investimentos que far nos prximos 5 anos. No incio de cada ano ele pode
comprar CDBs de 1 ou 2 anos. O banco paga 12% de juros (rendimento lquido)
nos CDBs de 1 ano e 25% de juros (rendimento lquido) nos CDBs de 2 anos.
Alm disso, uma outra instituio financeira ofertar um ttulo de 3 anos no incio
do segundo ano do planejamento. Esse ttulo pagar 40% de juros (rendimento
lquido). Objetivo: Maximizar o capital disponvel no final dos 5 anos.

0 1 2 3 4 5

Formulao por Programao Dinmica:

g( w) mximo 1 R j * g( w j) para w 1, 2, ..., W


j

g(0) 200.000
Exemplo Problema do investimento:

g(0) 200.000
g(1) mximo 1 R 1 * 200.000 224.000
1

1 R 1 * 224.000 250.880
g( 2) mximo 1 R * 200.000 250.000 250.880
1, 2
2
1 R 1 * 250.880 280.985,60
g(3) mximo 1 R * 224.000 280.000,00 280.985,60
1, 2
2
1 R 1 * 280.985,60 314.703,87
g( 4) mximo 1 R * 250.880,00 313.600,00 314.703,87
1, 2
2
1 R 1 * 314.703,87 352.468,33
g(5) mximo 1 R * 280.985,60 351.232,00 352.468,33
2
1 R 3 * 250.880,00 351.232,00
1, 2 , 3

Soluo tima: 0 1 2 3 4 5 (Valor final=R$352.468,33)


Percepo dos fenmenos dinmicos:

Sensibilidade de horizonte de tempo uma poltica tima pode


depender essencialmente do comprimento do horizonte de
planejamento.

Estratgia Como a resoluo por recurso est determinando uma


poltica tima para todos os valores possveis da varivel de estado
em cada estgio, obtm-se uma receita (regras) do que fazer em
cada eventualidade.

Ponto de regenerao sempre que ele ocorre voc pode repartir a


extenso da otimizao em antes e depois e manipular cada parte
separadamente.

Prxima deciso a nica coisa que importa, quando restam n


perodos, o Estado corrente e no como voc chegou l.
PO 201
OTIMIZAO
MULTIOBJETIVO

Professor: Rodrigo A. Scarpel


rodrigo@ita.br
www.mec.ita.br/~rodrigo
Otimizao Multiobjetivo:

Nos problemas estudados at agora h uma nica


funo objetivo a ser otimizada ou os objetivos podem
ser reduzidos a uma escala comum (ex: custos, lucro,
).

Em vrias situaes prticas, objetiva-se otimizar mais


que uma funo objetivo. Exemplos:

Financeiro: Risco X Retorno

Engenharia: Rigidez X Sensitividade


Otimizao Multiobjetivo:

Exemplo: Projeto do anel de um dinammetro

0,7r Ewt 3
Sensitividade Rigidez E 2,1x106
Ewt 2 r3
Otimizao Multiobjetivo: Soluo Eficiente

As solues eficientes tambm so chamadas de solues


Pareto timas ou no dominadas.

Em um problema de maximizao (todas F.O.), dizemos que


uma soluo vivel X1 domina outra soluo vivel X2 se:

i : F .O.i X 1 F .O.i X 2
i : F .O.i X 1 F .O.i X 2
Otimizao Multiobjetivo: Fronteira Eficiente

Mesmo em casos simples de otimizao multiobjetivo, h


muitos pontos eficientes. Para representar o conjunto de pontos
eficientes comum a criao de uma fronteira eficiente (ou de
Pareto).

Para sua criao, repete-se o procedimento de otimizao


considerando apenas uma das F.O., restringindo as demais F.O.
Sensitividade X Rigidez

Exemplo: 20

18

16 w=5
14
r=20
Ln(Regidez)

12
w=10
10

8
t=0,1
6
r=1,25
4

2
t=2
0
-18,4 -16,4 -14,4 -12,4 -10,4 -8,4 -6,4
Ln(Sensitividade)
Otimizao Multiobjetivo:

Quando o nmero de F.O > 3, a criao de fronteiras


eficientes impraticvel. Nestes casos, emprega-se:

Mtodo de ordenao preemptiva

Mtodo das somas ponderadas

Programao de metas (goal programming).


Otimizao Multiobjetivo:

Exemplo: Banco comercial


Taxa de Necessidade de Ativo de
Alternativas Liquidez
Retorno capital Risco ?
i. Cash 0% 100% 0% No
ii. Fundo curto prazo 4% 99,5% 0,5% No
iii. Ttulo do governo
4,5% 96% 4% No
(1 a 5 anos)
iv. Ttulo do governo
5,5% 90% 5% No
(5 a 10 anos)
v. Ttulo do governo
7% 85% 7,5% No
(mais de 10 anos)
vi. Crdito pessoal
10,5% 0% 10% Sim
(CDC)
vii. Hipotecas 8,5% 0% 10% Sim
viii. Debntures 9,2% 0% 10% Sim

Objetivos: minimizar o capital em risco, maximizar a


taxa de retorno e minimizar o capital provisionado.
Otimizao Multiobjetivo:

Exemplo: Os bancos comerciais devem avaliar a relao


risco x retorno na aplicao dos ativos que
administram.

Dados: Patrimnio = $20 bilhes / Depsitos c/c = $150


bilhes / Depsitos cdb = $ 80 bilhes

Restries: i) Reservas em Cash 14% depsitos c/c e 4%


depsitos cdb; ii) Investimentos lquidos 47% depsitos
c/c e 36% depsitos cdb; iii) Diversidade:cada tipo de
investimentos 5% do disponvel; iv) Ttulos de empresas
(debntures) 30% do disponvel
Otimizao Multiobjetivo:

Mtodo de ordenao preemptiva:


Min Z1 x6 x7 x8
S . A. ...
Max Z 2 0,04 x2 ... 0,092 x8
S . A. ...
Z1 = 100 x6 x7 x8 100 Min Z 3 0,005 x 2 ... 0,10 x8
S . A. ...
Z3 = 17,2 x 6 x 7 x8 100
0,04 x 2 ... 0,092 x8 17,2

Mtodo das somas ponderadas:

Min Z 1 x6 x7 x8 2 0,04 x2 ... 0,092 x8 3 0,005x2 ... 0,10 x8


S . A. ...
Goal programming (Programao de metas):

Definio: Goal programming uma tcnica utilizada


quando o tomador de deciso enfrenta situaes com
mltiplos objetivos (conflitantes) e no possvel
encontrar uma soluo, vivel, que atenda todos
esses objetivos, simultneamente.

O que a programao de metas faz encontrar uma


soluo de compromisso baseada na importncia
relativa de cada um dos objetivos.
Problema do gasto com publicidade:
Uma empresa de publicidade est tentando determinar quanto
deve ser gasto em publicidade (TV) quando estiver passando
novela e quando estiver passando futebol. Seu oramento de
$600.000 e suas metas so:
O anncio deve ser visto por pelo menos 40 milhes de
homens de alta renda (HIM).
O anncio deve ser visto por pelo menos 60 milhes de
pessoas de baixa renda (LIP).
O anncio deve ser visto por pelo menos 35 milhes de
mulheres de alta renda (HIW).
Os custos, por minuto, e a
quantidade de pessoas
Pessoas atingidas (milhes)
atingidas, em milhes de Custo ($mil)
HIM LIP HIW
pessoas por minuto de Novela 7 10 5 100
anncio, so: Futebol 3 5 4 60
Problema do gasto com publicidade:

xfutebol
FO: Max / Min Z = ?xnovela + ?xfutebol

S.A. 7xnovela + 3xfutebol 40


10xnovela + 5xfutebol 60
5xnovela + 4xfutebol 35
100xnovela + 60xfutebol 600
xnovela, xfutebol 0

5
xnovela
Goal programming (Programao de metas):

Para que seja possvel encontrar solues viveis cada uma


das desigualdades converida em uma meta flexvel cuja
restrio correspondente possa ser violada, se necessrio.
Assim,
S.A. 7xnovela + 3xfutebol + s1- - s1+ = 40
10xnovela + 5xfutebol + s2- - s2+ = 60
5xnovela + 4xfutebol + s3- - s3+ = 35
100xnovela + 60xfutebol 600
xnovela, xfutebol, s1-, s1+ , s2-, s2+, s3-, s3+ 0

em que si- e si+ so variveis de desvio (para baixo e para cima)


Goal programming (Programao de metas):

Algoritmos para resoluo do problema:

Mtodo dos pesos:

Min Z = I1s1- + I2s2- + I3s3-

em qie Ii a importncia relativa da meta i.

Mtodo hierrquico: prioriza-se as metas em ordem


de importncia e otimiza-se o modelo usando uma
meta por vez, de acordo com a priorizao
estabelecida.
Problema do gasto com publicidade: mtodo dos pesos

FO: Min Z = I1s1- + I2s2- + I3s3-


S.A. 7xnovela + 3xfutebol + s1- - s1+ = 40
10xnovela + 5xfutebol + s2- - s2+ = 60
5xnovela + 4xfutebol + s3- - s3+ = 35
100xnovela + 60xfutebol 600
xnovela, xfutebol, s1-, s1+ , s2-, s2+, s3-, s3+
0
ALTERNAT. I1 I2 I3 NOVELA FUTEBOL S1- S2- S3- HIM LIP HIW
1 1 1 1 5 1,67 0 1,67 3,33 40 58,3 31,7
2 1 2 1 6 0 0 0 5 40 60 30
3 1 2 2 5 1,67 0 1,67 3,33 40 58,3 31,7
4 1 2 3 5 1,67 0 1,67 3,33 40 58,3 31,7
5 1 5 10 3 5 4 5 0 36 55 35
Problema do gasto com publicidade: mtodo hierrquico

Priorizao: Meta 1 Meta 2 Meta 3

FO: Min Z = s1-


S.A. 7xnovela + 3xfutebol + s1- - s1+ = 40
10xnovela + 5xfutebol + s2- - s2+ = 60
5xnovela + 4xfutebol + s3- - s3+ = 35
100xnovela + 60xfutebol 600
xnovela, xfutebol, s1-, s1+ , s2-, s2+, s3-, s3+ 0

XNovela = 5 s1- = 0 (HIM = 40)


XFutebol = 1,67 s2- =1,67 (LIP = 58,3)
s3- = 3,33 (HIW = 31,7)
Problema do gasto com publicidade: mtodo hierrquico

Priorizao: Meta 1 Meta 2 Meta 3

FO: Min Z = s2-


S.A. 7xnovela + 3xfutebol + s1- - s1+ = 40
10xnovela + 5xfutebol + s2- - s2+ = 60
5xnovela + 4xfutebol + s3- - s3+ = 35
100xnovela + 60xfutebol 600
s 1- = 0
xnovela, xfutebol, s1-, s1+ , s2-, s2+, s3-, s3+ 0

XNovela = 6 s1- = 0 (HIM = 40)


XFutebol = 0 s2- = 0 (LIP = 60)
s3- = 5 (HIW = 30)
Problema do gasto com publicidade: mtodo hierrquico

Priorizao: Meta 1 Meta 2 Meta 3

FO: Min Z = s3-


S.A. 7xnovela + 3xfutebol + s1- - s1+ = 40
10xnovela + 5xfutebol + s2- - s2+ = 60
5xnovela + 4xfutebol + s3- - s3+ = 35
100xnovela + 60xfutebol 600
s 1- = 0
s 2- = 0
xnovela, xfutebol, s1-, s1+ , s2-, s2+, s3-, s3+ 0

XNovela = 6 s1- = 0 (HIM = 40)


s2- = 0 (LIP = 60)
XFutebol = 0
s3- = 5 (HIW = 30)
Goal programming: limitaes

O uso do mtodo dos pesos depende da unidade das


metas (devem estar na mesma unidade pois nem
sempre possvel criar um ndice de importncia
relativa).

Como necessrio arbitrar valores da importncia de


cada meta, o que pode deixar a tcnica viesada.
PO 201
FECHAMENTO

Professor: Rodrigo A. Scarpel


rodrigo@ita.br
www.mec.ita.br/~rodrigo
Modelagem e Simulao:
Definio do problema:
1. Quais so as alternativas para a deciso?
2. Sob quais restries a deciso tomada?
3. Qual seria um critrio objetivo para avaliar as
alternativas?

Construo do modelo:

Resoluo do modelo:
1. Utilizao de algoritmos ou mtodos de
resoluo
2. Anlise de sensibilidade

Validao do modelo:
1. Formulao est adequada?
2. Resolve o problema?

Implementao da soluo
Modelagem e Simulao:
PPG-PO (Programa de Ps-Graduao em Associao ITA e UNIFESP)
Site: http://www.unifesp.br/campus/sjc/ppgpo
Disciplinas:
Introduo Pesquisa Operacional (Obrigatria)
Programao Linear (Obrigatria)
Programao Inteira
Programao No-Linear
Algoritmos em Grafos
Econometria
Gerncia de Operaes e Logstica
Meta-Heursticas em Otimizao Combinatria
Mtodos Estocsticos
Mtodos Multicritrios de Apoio Deciso
Modelagem de Investimentos e Riscos
Simulao
OBSERVAO

Este material refere-se s notas de aula do curso


PO-201 (Introduo a Pesquisa Operacional) do
Instituto Tecnolgico de Aeronutica (ITA). No
substitui o livro texto, as referncias
recomendadas e nem as aulas expositivas. Este
material no pode ser reproduzido sem autorizao
prvia do autor. Quando autorizado, seu uso
exclusivo para atividades de ensino e pesquisa em
instituies sem fins lucrativos.

Vous aimerez peut-être aussi