po 201 introduÇÃo a pesquisa operacionalrodrigo/disciplinas/po201/slides.pdf · análise de...
TRANSCRIPT
PO – 201
INTRODUÇÃO A
PESQUISA OPERACIONAL
Professor: Rodrigo A. Scarpel
www.ief.ita.br/~rodrigo
“Pesquisa Operacional é o uso do método científico com o objetivo
de prover departamentos executivos de elementos quantitativos
para a tomada de decisões” Kittel ( 1947)
“A Pesquisa Operacional é a aplicação do método científico, por
equipes multidisciplinares, a problemas envolvendo o controle de
sistemas organizados de forma a fornecer soluções que melhor
interessam a determinada organização” Ackoff (1968)
Conceitos-chave:
a) uso ou aplicação para resolver problemas reais
b) apoio a tomada de decisões
c) multidisciplinariedade
Pesquisa Operacional
2
Durante a Segunda Guerra Mundial, os líderes militares solicitaram que
cientistas estudassem problemas como posicionamento de radares,
armazenamento de munições e transporte de tropa, etc...
A aplicação do método científico e de ferramentas matemáticas em
operações militares passou a ser chamado de Pesquisa Operacional.
Pesquisa Operacional
A Pesquisa Operacional é uma ciência aplicada voltada para a
resolução de problemas reais, tendo como foco a tomada de
decisões.
3
Modelagem e Simulação:
Conceptualization: decisions
about the variables that need to
be included in the model, and the
scope of the problem and model
to be addresses.
Modeling: build the quantitative
model by defining causal
relationships between the variables.
OBS: The research cycle can arguably
begin and end at any of the phases
in the cycle (according to the
selected research type)
Definição do problema:
1. Quais são as alternativas para a decisão?
2. Sob quais restrições a decisão é tomada?
3. Qual seria um critério objetivo para avaliar as
alternativas?
Construção do modelo:
Resolução do modelo:
1. Utilização de algoritmos ou métodos de
resolução
2. Análise de sensibilidade
Validação do modelo:
1. Formulação está adequada?
2. Resolve o problema?
Implementação da solução
Construção do modelo:
Relacionamento
funcional f(•)
Valores das variáveis
independentes
Técnicas de Pesquisa
Operacional
Conhecido,
bem definido
Desconhecido,
mal definido
Conhecido,
bem definido
Conhecido ou sob o
controle do tomador
de decisão
Conhecido ou sob o
controle do tomador
de decisão
Desconhecido ou
incerto
Programação linear,
não linear, inteira,
Redes, Combinatória,
entre outras
Prescritivos
(determinísticos)
Preditivos
Descritivos
(estocásticos)
Análise de regressão,
Análise de séries
temporais, entre outras
Simulação, teoria de
filas, otimização
robusta, entre outros
M
O
D
E
L
O
S
Categorias de modelos:
5
Problema 1: Mix de Produção
Giapetto Woodcarving, Inc fabrica dois tipos de brinquedos de madeira:
soldados e trens. Um soldado é vendido por $27 e usa $10 de matéria-prima.
Cada soldado fabricado incrementa os custos variáveis de trabalho e
"overhead" por $14. Um trem é vendido por $21 e usa $9 de matéria-prima.
Cada trem produzido incrementa os custos variáveis de trabalho e "overhead"
por $10. A fabricação 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 matéria prima necessária, mas dispõe de
somente 100 horas de trabalho de acabamento e 80 horas de trabalho de
carpintaria. A demanda para os trens é ilimitada, mas no máximo 40 soldados
são vendidos a cada semana. A Giapetto deseja determinar seu mix de
produção de forma a maximizar seu lucro semanal (faturamento menos custos). 6
Problema 2: Problema da Mistura
Um fabricante de bebidas pretende lançar um novo refrigerante que é obtido
misturando refrigerante sabor laranja e suco de laranja. Análises executadas
pelo fabricante mostraram que cada ml de refrigerante sabor laranja tem 5 mg
de açúcar e 1 mg de vitamina C e que cada 1 ml de suco de laranja tem 2 mg
de açúcar e 3 mg de vitamina C. O custo de produção 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 mínimo 600 mg de vitamina C e no
máximo 1.200 mg de açúcar. O fabricante deseja determinar a composição do
novo refrigerante de forma a minimizar o custo para produzir o produto.
7
Uma empresa geradora de energia possui 3 usinas termoelétricas (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
geração de cada usina é dada na tabela abaixo:
Formule o problema que determine a quantidade de energia que será
enviada de cada usina para cada cidade ao mínimo custo.
ORIGENS DESTINOS CAPACIDADE
(kWh) CIDADE 1 CIDADE 2 CIDADE 3
PLANTA A 24 18 27 700
PLANTA B 16 11 7 340
PLANTA C 30 10 4 400
DEMANDA (kWh) 650 450 340
Problema 4: Distribuição de energia elétrica
Uma empresa de transporte urbano de passageiros quer determinar a
quantidade mínima de ônibus necessários para atender sua programação.
Dados:
1. Devido à manutenção diária obrigatória, cada ônibus só pode circular
apenas 8 horas sucessivas por dia
2. Necessidade:
10
Problema 5: Dimensionamento de recursos
Uma empresa fabrica rolos de papel com 20 pés de comprimento (diâmetro
padrão). Em uma certa semana recebeu 3 pedidos:
Como fazer os cortes de forma a minimizar a perda? 11
Problema 6: Corte e empacotamento
Programação da disciplina:
Semana Conteúdo
1 Apresentação da disciplina. Introdução à Programação Linear (PL). Resolução gráfica de problemas de PL.
2 Resolução de Problemas de PL pelo método simplex. A matemática do método simplex.
3 Feriado
4 Análise de Sensibilidade. Problemas com soluções iniciais (Métodos das 2 fases e o do Big-M). Degeneração,
ciclagem e convergência do método simplex.
5 O problema dual. Formulação e Interpretação econômica do problema dual. Teoremas da dualidade.
6 Prova 1 (26/3)
7 Algoritmos simplex adicionais. Análise pós-otimização.
8 Otimização multiobjetivo. Programação por metas.
9 (1) O Problema do transporte.
10 (2) O problema do transbordo e o problema da atribuição.
11 (3) Programação Linear Inteira (PLI). Métodos de resolução de PLI: Branch and Bound (B&B) e planos de corte.
12 (4) Prova 2 (14/5).
13 (5) Formulação e resolução de problemas de otimização combinatória.
14 (6) Otimização em Redes (formulação e resolução utilizando métodos exatos e heurísticos): os problemas do caixeiro
viajante e do caminho mínimo.
15 (7) Otimização em Redes (formulação e resolução utilizando métodos exatos e heurísticos): os problemas do caminho
crítico, do fluxo máximo e da árvore geradora mínima.
16 (8) Fechamento do curso.
Avaliação:
• 3 provas (1o Bimestre, 2o Bimestre e Exame Obrigatório)
13
Bibliografia:
Taha, H. A., Pesquisa Operacional, 8a edição. 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 edição. Prentice-Hall
do Brasil, 1986.
Hillier, F.S. and Lieberman, G.J., Introduction to Operations
Research, McGraw Hill, 2000.
PO – 201
PROGRAMAÇÃO
LINEAR
Professor: Rodrigo A. Scarpel
www.ief.ita.br/~rodrigo 14
Problemas de programação linear (PPL):
Z: função objetivo
ai: coeficientes da função objetivo, i = 1,…,n
xi: variáveis de decisão, i = 1,…,n
bji: coeficientes tecnológicos, i = 1,…,n e j = 1,…,k
cj: constantes do lado direito (right-hand-side), j = 1,…,k
0 x, .... ,x ,x
...b
...b
...b :a
... )/(
n21
221k1
22222121
11212111
2211
knknk
nn
nn
nn
cxbxbx
cxbxbx
cxbxbxSujeito
xaxaxaZMinimizarMaximizar
15
...
...
...
...
Hipóteses em Programação Linear:
Proporcionalidade: todos os retornos / custos e recursos
utilizados variam proporcionalmente a variável de decisão (não há
economia de escala);
Aditividade: o efeito total de quaisquer duas variáveis é a soma
dos efeitos individuais (não há sinergia ou efeito de substituição).
Exemplo: o custo total é a soma dos custos individuais;
Divisibilidade: as variáveis de decisão podem assumir valores
fracionados. Se essas variáveis só puderem assimir valores
inteiros o problema é de programação inteira (PI);
Certeza (Determinístico): todos os parâmetros do modelo são
constantes conhecidas (não são variáveis aleatórias);
16
Problema 1: Mix de Produção
Giapetto Woodcarving, Inc fabrica dois tipos de brinquedos de madeira:
soldados e trens. Um soldado é vendido por $27 e usa $10 de matéria-prima.
Cada soldado fabricado incrementa os custos variáveis de trabalho e
"overhead" por $14. Um trem é vendido por $21 e usa $9 de matéria-prima.
Cada trem produzido incrementa os custos variáveis de trabalho e "overhead"
por $10. A fabricação 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 matéria prima necessária, mas dispõe de
somente 100 horas de trabalho de acabamento e 80 horas de trabalho de
carpintaria. A demanda para os trens é ilimitada, mas no máximo 40 soldados
são vendidos a cada semana. A Giapetto deseja determinar seu mix de
produção de forma a maximizar seu lucro semanal (faturamento menos custos). 17
Formas de Representação:
Formato padão: todas as restrições são igualdades e todas as
variáveis são não-negativas.
Formato canônico: (problema de minimização) todas as
variáveis são não-negativas e todas as restrições são do tipo .
18
Método Simplex – Formalização (Problema de Maximização):
Inicialização:
Encontrar uma solução básica viável ( B).
Passo principal:
Seja zk - ck = Mínimo {zj - cj: j R}. Se zk - ck 0 pare - a solução é ótima.
Caso contrário examine yk.
Se yk 0 pare – a solução ótima é ilimitada.
Se yk > 0 determine o índice r como:
Atualize o tableau pivotando em yik (atualize as variáveis básicas e as não
básicas com xk que entra na base e xi que sai).
Repita o passo principal
0:1
ikik
i
miy
y
bMinimor
19
B R
Em cada iteração: xB = B-1.b
w = cBT.B-1
z = w.b = cB.B-1.b
zj - cj = w.aj - cj
yj = B-1. aj
A matemática do método simplex:
1000aa
010aa
001aa
A
m,nm,1
2,n2,1
1,n1,1
m
1
b
b
b ,
m
1
n
1
f
f
x
x
x
,
0
0
c
c
cn
1
,
20
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Problema 2: Problema da Mistura
Um fabricante de bebidas pretende lançar um novo refrigerante que é obtido
misturando refrigerante sabor laranja e suco de laranja. Análises executadas
pelo fabricante mostraram que cada ml de refrigerante sabor laranja tem 5 mg
de açúcar e 1 mg de vitamina C e que cada 1 ml de suco de laranja tem 2 mg
de açúcar e 3 mg de vitamina C. O custo de produção 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 mínimo 600 mg de vitamina C e no
máximo 1.200 mg de açúcar. O fabricante deseja determinar a composição do
novo refrigerante de forma a minimizar o custo para produzir o produto.
21
Inicialização:
Encontrar uma solução básica viável ( B).
Alternativas (se a origem não for uma solução viável): Método das 2 fases / Big-M
Passo principal:
Seja zk - ck = Máximo {zj - cj: j R}. Se zk - ck 0 pare - a solução é ótima.
Caso contrário examine yk.
Se yk 0 pare – a solução ótima é ilimitada.
Se yk > 0 determine o índice r como:
Atualize o tableau pivotando em yik (atualize as variáveis básicas e as não
básicas com xk que entra na base e xi que sai).
Repita o passo principal
0:1
ikik
i
miy
y
bMinimor
Método Simplex – Formalização (Problema de Minimização):
22
PO –201
DEGENERAÇÃO,
CICLAGEM E
CONVERGÊNCIA DO
SIMPLEX
Professor: Rodrigo A. Scarpel
www.ief.ita.br/~rodrigo 23
Degeneração em programação linear:
Definição: Um PPL é degenerado se há pelo menos uma solução
básica viável com uma variável básica com valor zero (=0). Se há,
essa solução é uma solução básica viável degenerada.
A degeneração ocorre quando há empate na saída (regra da razão).
Consequências da degeneração:
Se um PPL é degenerado o simplex pode apresentar
inconsistências.
Se um PPL tem muitas soluções básicas viáveis
degeneradas o simplex costuma ser ineficiente.
Se um PPL é degenerado pode haver ciclismo, o que pode
interferir na convergência do algoritmo.
24
Exemplo de PPL degenerado, inconsistente e ineficiente:
FO: Max Z = 5*x1 + 3*x2
S.A. 4*x1 + 2*x2 12
4*x1 + 1*x2 10
1*x1 + 1*x2 4
x1, x2 0
x1
x2
x1 x2 x3 x4 x5 RHS
Z -5 -3 0 0 0 0
x3 4 2 1 0 0 12
x4 4 1 0 1 0 10
x5 1 1 0 0 1 4
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
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
25
Exemplo de ciclagem:
FO: Min -¾ x1+20x2 –½ x3+6x4
S.A. ¼ x1 – 8x2 – x3 + 9x4 0
½ x1 –12x2 –½ x3 +7x4 0
x3 1
x1, x2 , x3 , x4 0
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
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
x1 1 -32 -4 36 4 0 0 0
x6 0 4 3/2 -15 -2 1 0 0
x7 0 0 1 0 0 0 1 1
Z 0 0 2 -18 -1 -1 0 0
x1 1 0 8 -84 -12 8 0 0
x2 0 1 3/8 -15/4 -1/2 1/4 0 0
x7 0 0 1 0 0 0 1 1
Z -1/4 0 0 3 2 -3 0 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 Lexicográfica:
Passo principal:
Seja zk-ck = Max {zj-cj: jR}. Se zk - ck 0 pare - a solução é ótima.
Caso contrário examine yk.
Se yk 0 pare – a solução ótima é ilimitada.
Se yk > 0 determine o índice r como:
Em caso de empate, deixará a base a variável com o menor yik
Atualize o tableau pivoteando em yik (atualize as variáveis básicas e as
não básicas com xk que entra na base e xi que sai).
Repita o passo principal
0:1
ikik
i
miy
y
bMinimor
27
FO: Max Z = 5*x1 + 3*x2
S.A. 4*x1 + 2*x2 12
4*x1 + 1*x2 10
1*x1 + 1*x2 4
x1, x2 0
x1
x2
x1 x2 x3 x4 x5 RHS
Z -5 -3 0 0 0 0
x3 4 2 1 0 0 12
x4 4 1 0 1 0 10
x5 1 1 0 0 1 4
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
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
Exemplo de PPL degenerado, inconsistente:
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 solução é
ótima.
Caso contrário examine yk.
Se yk 0 pare – a solução ótima é ilimitada.
Se yk > 0 determine o índice r como:
Em caso de empate, deixará a base a variável com o menor (maior) yik
Atualize o tableau pivoteando em yik (atualize as variáveis básicas e as
não básicas com xk que entra na base e xi que sai).
Repita o passo principal
0:1
ikik
i
miy
y
bMinimor
29
FO: Max Z = 5*x1 + 3*x2
S.A. 4*x1 + 2*x2 12
4*x1 + 1*x2 10
1*x1 + 1*x2 4
x1, x2 0
x1
x2
x1 x2 x3 x4 x5 RHS
Z -5 -3 0 0 0 0
x3 4 2 1 0 0 12
x4 4 1 0 1 0 10
x5 1 1 0 0 1 4
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
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
Exemplo de PPL degenerado, inconsistente:
30
Convergência do método simplex:
Teorema: se todas as soluções básicas viáveis de um PPL
forem não degeneradas, o método simplex é finito.
Implicações:
Número máximo de soluções básicas viáveis: n! / (n-m)!m!
Na prática observa-se que o número máximo de iterações
não passa de 3m/2. Assim, este pode ser considerado um
bom ponto de parada.
Como se houver degeneração, no caso extremo pode
haver ciclismo, se houver degeneração o método simplex
pode não ser finito.
31
PO – 201
O PROBLEMA DUAL
Professor: Rodrigo A. Scarpel
www.ief.ita.br/~rodrigo
Problemas Primal e Dual:
Para cada problema de programação linear que
resolvemos, existe um outro problema associado que
também é resolvido simultâneamente.
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.
Primal Dual
Maximizar Minimizar
Função 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 relação I-ésima variável não negativa
I-ésima relação de = I-ésima variável irrestrita
I-ésima variável não negativa Restrição
I-ésima variável irrestrita Restrição de =
Problemas Primal e Dual:
SIMETRIA: O dual do problema dual é o problema primal.
Propriedades do problema Dual:
0
,
j
ij
m
1j
ij
j
m
1j
j
y
n1,...,i cya
:S.A.
yb (v) Min
DUAL
0
,...,1,
i
j
n
1i
iij
i
n
1i
i
x
mj bxa
:S.A.
xc (z) Max
PRIMAL
TEOREMA FRACO DA DUALIDADE
Se x e y são soluções viáveis dos problemas maximização
(primal) e minimização (dual), respectivamente, então:
cT x bT y
Implicações práticas: o valor da função objetivo de
qualquer solução viável de um problema dual de
minimização (maximização) fornece um limitante superior
(inferior) para o valor ótimo do problema primal de
maximização (minimização).
Propriedades do problema Dual:
TEOREMA FORTE (FUNDAMENTAL) DA DUALIDADE
Se o problema primal (dual) tem uma solução ótima finita, então o
dual (primal) também tem uma solução finita e ótima e o valor da
função objetivo de ambos problemas é igual. Assim, uma das
seguintes situações é verdadeira:
i) Ambos os problemas têm solução ótima x* ey* com z* = v*;
ii) Um problema é ilimitado e o outro é inviável;
iii) Ambos os problemas são inviáveis.
Propriedades do problema Dual:
TEOREMA DAS FOLGAS COMPLEMENTARES
Sendo x* e y* as soluções ótimas dos problemas primal e dual:
Possibilidades:
Propriedades do problema Dual:
j e i ,0 cyax e 0 xaby j
m
1j
jiji
n
1i
iijjj
****
0 cya ou x
e
0 xab ou y
j
m
1j
jiji
n
1i
iijjj
**
**
0
0
Exemplo de aplicação do teorema das folgas complementares:
Min Z = 2*x1 + 5*x2 + 2*x3 + 3*x4
S.A. 1*x1 + 2*x2 + 1*x3 + 3*x4 4
2*x1 + 3*x2 + 1*x3 + 1*x4 3
x1, x2 , x3 , x4 0 j e i ,0 cyax
e 0 xab-y
j
m
1j
jiji
n
1i
iijjj
**
**
Z x1 x2 x3 x4 x5 RHS
1 -4 -6 0 0 0 0
x3 1,5 4 1 0 0 24 x4 3 1,5 0 1 0 21
x5 1 1 0 0 1 8
1 -7/4 0 3/2 0 0 36
x2 3/8 1 1/4 0 0 6 x4 39/16 0 -3/8 1 0 12
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
Max Z = 4,0*xmad + 6,0*xalu
S.A. 1,5*xmad + 4,0*xalu 24
3,0*xmad + 1,5*xalu 21
1,0*xmad + 1,0*xalu 8
xmad, xalu 0
Método simplex (problema primal):
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
Z ycorte ymont yacabam x4 x5 a1 a2RHS
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
a13/2 3 1 -1 0 1 0 4
a24 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
a10 39/16 10/16 -1 6/16 1 -6/16 28/16
ycorte1 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
ymont0 1 10/39 -16/39 6/39 16/39 -6/39 28/39
ycorte1 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
yacabam0 39/10 1 -16/10 6/10 16/10 -6/10 28/10 = 2,8
ycorte1 -3/5 0 26/65 -26/65 -26/65 26/65 52/65 = 0,8
Método simplex (problema dual):
Problemas da alocação de recursos:
Uma empresa de transporte urbano de passageiros quer determinar a
quantidade mínima de ônibus necessários para atender sua programação.
Dados:
1. Devido à manutenção diária obrigatória, cada ônibus só pode circular
apenas 8 horas sucessivas por dia
2. Necessidade:
42
Uma empresa fabrica rolos de papel com 20 pés de comprimento (diâmetro
padrão). Em uma certa semana recebeu 3 pedidos:
Como fazer os cortes de forma a minimizar a perda? 43
Problemas de corte e empacotamento:
Interpretação Econômica do problema dual:
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 alumínio)
ycorte, ymont, yacab 0
ycorte : preço pago por 1 hora de corte
ymont : preço pago por 1 hora de montagem
yacab : preço pago por 1 hora de acabamento
V: preço total pago pelo
recursos (shadow price)
Função objetivo: Minimizar o preço total pago pelos recursos.
Restrições: Mínimo a ser pago pela combinação das variáveis de decisão
(pois com essa combinação gera-se uma unidade do produto).
1. Interpretação econômica das variáveis duais:
Interpretação Econômica do problema dual:
2. Interpretação econômica do teorema das folgas complementares:
j e i ,0 cyax e 0 xaby j
m
1j
jiji
n
1i
iijjj
****
Sendo x* e y* as soluções ótimas dos problemas primal e dual:
NA SOLUÇÃO, SE HÁ FOLGA DE ALGUM RECURSO SEU VALOR
(PREÇO DUAL) NECESSARIAMENTE É ZERO
NA SOLUÇÃO, SE UM DETERMINADO RECURSO TEM VALOR (>0)
NECESSARIAMENTE A FOLGA É ZERO
Interpretação Econômica do problema dual:
3. Interpretação econômica das restrições duais:
n1,...,i ,cya
0y
:S.A.
yb (v)Min
ij
m
1j
ij
j
j
m
1j
j
Utilização dos recursos
Valor dos recursos
Ganho proporcionado
Um novo produto só
será fabricado se
ij
m
1j
ij cya
Todo produto fabricado
ij
m
1j
ij cya
A teoria da dualidade proporciona um suporte teórico que
permite:
Calcular limites superiores (em problemas de
maximização) e inferiores (em problemas de
minimização) para o valor da função objetivo.
Interpretação econômica dos resultados da
otimização.
Desenvolvimento de métodos mais eficientes para
resolver problemas reais.
Dualidade:
PO – 201
ALGORITMOS SIMPLEX
ADICIONAIS
Professor: Rodrigo A. Scarpel
www.ief.ita.br/~rodrigo
Método Simplex:
• Condições de Viabilidade X Condições de Otimalidade
• Opção A: O simplex pode ser visto como um método que
busca atender as condições de otimalidade mantendo as
condições de viabilidade.
• Opção B: O simplex pode ser visto como um método que
busca a viabilidade do problema dual mantendo a
viabilidade do problema primal.
Problema 2: Problema da Mistura
Um fabricante de bebidas pretende lançar um novo refrigerante que é obtido
misturando refrigerante sabor laranja e suco de laranja. Análises executadas
pelo fabricante mostraram que cada ml de refrigerante sabor laranja tem 5 mg
de açúcar e 1 mg de vitamina C e que cada 1 ml de suco de laranja tem 2 mg
de açúcar e 3 mg de vitamina C. O custo de produção 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 mínimo 600 mg de vitamina C e no
máximo 1.200 mg de açúcar. O fabricante deseja determinar a composição do
novo refrigerante de forma a minimizar o custo para produzir o produto.
Método Dual Simplex (PPL primal de Maximização):
Inicialização:
Encontrar uma solução básica que atenda as condições de otimalidade,
mas que não atenda as condições de viabilidade.
Passo principal:
Seja xB a solução corrente. Se o termo de xB 0 pare - a solução é ótima.
Caso contrário escolha o termo de xB mais negativo para sair da base.
Determine a variável que vai entrar na base por
Se todos yik 0 pare o problema não tem solução viável
Atualize o tableau pivotando em yik (atualize as variáveis básicas e as não
básicas com xk que entra na base e xi que sai).
Repita o passo principal
0,
1ik
ik
ii
miy
y
czmínimo
Generalização do Método Simplex:
• Opção A: O simplex pode ser visto como um método que
busca atender as condições de otimalidade mantendo as
condições de viabilidade.
• Opção B: O simplex pode ser visto como um método que
busca a viabilidade do problema dual mantendo a viabilidade
do problema primal.
• Opção C: O simplex pode ser visto como um método que
busca atender as condições de viabilidade mantendo as
condições de otimalidade.
Essas opções podem ser combinadas de acordo com
a necessidade para “talhar” novos métodos
(exemplos: método primal-dual, método simétrico,
método entrecruzado e método multiplex).
PO – 201
ANÁLISE PÓS-
OTIMIZAÇÃO
Professor: Rodrigo A. Scarpel
www.ief.ita.br/~rodrigo
Princípios:
• Em problemas reais as alterações (disponibilidade dos
recursos, preço dos insumos,…) demandam o recálculo
periódico da solução ótima.
• A análise de pós-otimização auxilia na determinação da nova
solução de modo eficiente.
ALTERNATIVAS POSSÍVEIS MOTIVOS AÇÃO RECOMENDADA
SOLUÇÃO ATUAL (BASE)
PERMANECE ÓTIMA E VIÁVEL- NENHUMA
ALTERAÇÕES NO RHS (RECURSOS)
ADIÇÃO DE NOVAS RESTRIÇÕES
ALTERAÇÕES NOS COEFIC. DA F.O.
ADIÇÃO DE UMA NOVA ATIVIDADE
SOLUÇÃO ATUAL SE TORNA
NÃO-ÓTIMA E INVIÁVELCOMBINAÇÃO DOS ITENS ANTERIORES
USAR, SE POSSÍVEL, O SIMPLEX
GENERALIZADO PARA OBTER NOVA
SOLUÇÃO
SOLUÇÃO ATUAL SE
TORNA INVIÁVEL
USAR O DUAL SIMPLEX PARA
RECUPERAR A VIABILIDADE
SOLUÇÃO ATUAL SE
TORNA NÃO-ÓTIMA
USAR O SIMPLEX (PRIMAL) PARA
RECUPERAR A OTIMALIDADE
Alterações no RHS (recursos):
Recurso gargalo:
A base fica inalterada: -7 A 8
Função objetivo:
(B e C: ctes)
208/5 + 4/5 A + 0 B + 14/5 C
xmadeira 5
xalu
mín
io
5
A = +10 (há alteração na base)
Z x1 x2 x3 x4 x5 RHS
1 0 0 4/5 0 14/5 208
/5 + 4/5 A + 0 B +
14/5 C
x2 0 1 2/5 0 -3/5 24
/5 + 2/5 A + 0 B -
3/5 C
x4 0 0 3/5 1 -39/10 21
/5 + 3/5 A + 1 B -
39/10 C
x1 1 0 -2/5 0 8/5 16
/5 - 2/5 A + 0 B +
8/5 C
Alterações no RHS (recursos):
Z x1 x2 x3 x4 x5 RHS
1 0 0 4/5 0 14/5 248
/5
x2 0 1 2/5 0 -3/5 44
/5
x4 0 0 3/5 1 -39/10 51
/5
x1 1 0 -2/5 0 8/5 -4
/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
xalu
mín
io
5
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
FO: Maximizar Z = 4,0*xmadeira + 6,0*xalumínio
S.A. 1,5*xmadeira + 4,0*xalumínio 24
3,0*xmadeira + 1,5*xalumínio 21
1,0*xmadeira + 1,0*xalumínio 8
xmadeira, xalumínio 0
Adição de novas restrições:
• Quando novas restrições são adicionadas, há 2 possibilidades:
• A restrição ser redundante
• A solução atual se tornar inviável
Nova restrição: Demanda xmadeira 4 (Restrição é redundante)
xmadeira 3 (Solução atual é inviável)
Solução ótima:
x1 (madeira) = 16/5 = 3,2
x2 (alumínio) = 24/5 = 4,8
Lucro = 208/5 = 41,6
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
Adição de novas restrições:
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
Adição de novas restrições:
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
x2 0 1 1/4 0 0 -3/8 195/40
x4 0 0 -15/40 1 0 -195/80 375/80
x1 1 0 0 0 0 1 3
x5 0 0 -1/4 0 1 -5/8 1/8
Solução ótima:
x1 (madeira) = 3
x2 (alumínio) = 4,875
Lucro = 208/5 = 41,25
xmadeira(x1) 5 x
alu
mín
io(x
2)
5
PO – 201
O PROBLEMA DO
TRANSPORTE
Professor: Rodrigo A. Scarpel
www.ief.ita.br/~rodrigo
O problema do transporte:
Problema do transporte (ou de distribuição) Otimização de redes lineares
Decisões estratégicas: selecionar rotas de transporte (para distribuir a
produção de várias fábricas a vários depósitos ou pontos terminais)
Utilidade: planejamento (criação de planos de distribuição)
Fábricas Depósitos
S1
S2
S3
Sm ...
D1
D2
D3
Dn
...
Fornecimentos
disponíveis
(capacidade)
Demandas
Formulação do problema do transporte:
m
i
n
j
ijij xc Minimizar1 1
cij é o custo unitário de transporte da origem i para o destino j
Var. decisão: xij quantidade a ser transportada da origem i para o destino j
j e i todos para x
(demanda) n1,...,j para Dx
(oferta) m1,...,i para Sx
AS
ij
j
m
i
ij
i
n
j
ij
0
..
1
1
Balanceamento no problema do transporte:
Se o problema não for balanceado (a soma das capacidades de oferta for
igual à soma das demandas) este deve ser balanceado.
j
j
i
i DS PROBLEMA BALANCEADO
j
j
i
i DS PROBLEMA COM SOLUÇÃO INVIÁVEL
j
j
i
i DS PROBLEMA DEVE SER BALANCEADO
CRIA-SE UM PONTO FICTÍCIO DE DEMANDA
COM CUSTO DE TRANSPORTE = 0
Exemplo - problema do transporte:
Uma empresa geradora de energia possui 3 usinas termoelétricas (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
geração de cada usina é dada na tabela abaixo:
Formule o problema que determine a quantidade de energia que será
enviada de cada usina para cada cidade ao mínimo custo.
ORIGENS DESTINOS CAPACIDADE
(kWh) CIDADE 1 CIDADE 2 CIDADE 3
PLANTA A 24 18 27 700
PLANTA B 16 11 7 340
PLANTA C 30 10 4 400
DEMANDA (kWh) 650 450 340
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 método simplex para o problema do transporte:
PASSO 1: Selecionar até m+n-1 rotas que resultem em uma
solução básica inicial factível.
PASSO 2: Verifique se a solução pode ser melhorada,
introduzindo xij não básica na base (nova rota). Se
puder vá para o passo 3, caso contrário, PARE
(solução ótima).
PASSO 3: Determine qual rota deve sair da base quando xij
entrar.
PASSO 4: Ajuste os fluxos das outras variáveis básicas e
volte para o passo 2.
Formulação do dual do problema do transporte:
m
i
n
j
ijij xc Minimizar1 1
j e i todos para x
(demanda) n1,...,j para Dx
(oferta) m1,...,i para Sx
AS
ij
j
m
i
ij
i
n
j
ij
0
..
1
1
m
i
n
j
jjii wDvS Maximizar1 1
sirrestrito wv
n1,...,j e m1,...,i para cwv
AS
ji
ijji
,
..
DUAL
m
i
n
j
jjii wDvS Maximizar1 1
sirrestrito wv
n1,...,j e m1,...,i para cwv
AS
ji
ijji
,
..
Formulação do dual do problema do transporte:
SE NO PROBL. PRIMAL xij > 0 (básica) NO PROBL. DUAL vi + wj = cij
SE NO PROBL. PRIMAL xij = 0 (não básica) NO DUAL vi + wj < cij
Variações do problema do transporte:
O problema do transporte com custo fixo (fixed charge transportation
problem)
Exemplo:
Capacidade das fábricas: 350 unidades/mês
1
2 3
4 5
6
7
A
B
Variações do problema do transporte:
O problema do planejamento agregado da produção:
Exemplo:
Um fabricante de barcos deve decidir quantas unidades serão fabricadas
nos próximos 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, porém o custo
unitário vai para $45.000.
O custo de carregamento (manter um barco estocado) é de $2.000.
Faça o planejamento da produção objetivando minimizar o custo total nos
próximos 4 trimestres.
Decisões estratégicas: selecionar rotas de transporte (para distribuir a
produção de várias fábricas a vários depósitos ou pontos terminais passando
ou não por pontos de transbordo)
Utilidade: planejamento (criação de planos de distribuição)
Variações do problema do transporte:
O problema do transbordo:
Exemplo - problema do transbordo:
Uma empresa possui 2 plantas (unidades de produção) 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
PO – 201
PROBLEMA DA
ATRIBUIÇÃO
Professor: Rodrigo A. Scarpel
www.ief.ita.br/~rodrigo
O problema da atribuição:
Problema da atribuição Otimização de redes lineares
Descrição: 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.
Decisão: designar um agente para cada tarefa de forma a minimizar o custo total
TAREFAS AGENTES
Formulação do problema da atribuição:
m
i
n
j
ijij xc Minimizar1 1
cij é o custo da tarefa sendo executada pelo agente j
Var. decisão: xij = 1, se a tarefa i for executada pelo agente j
0, caso contrário para i=1,…,n e j=1,…,n
j e i os todos para 1ou 0x
n1,...,j para x
n1,...,i para x
AS
ij
n
i
ij
n
j
ij
1
1
..
1
1
Exemplo - problema da atribuição:
Machineco possui 4 máquinas e 4 tarefas a serem realizadas.
Dependendo da atribuição das tarefas, o tempo de execução é diferente:
Formule o problema que determine qual máquina fará qual tarefa se o
objetivo é minimizar o tempo total de execução.
Tempo de Execução
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
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}
Exemplo - problema da atribuição:
O método húngaro para resolução do probl. da atribuição:
PASSO 1: Encontre o mínimo de cada linha na matriz de custo n x n.
Construa uma nova matriz subtraindo o valor do mínimo da
linha. Nesta nova matriz, encontre o mínimo de cada coluna.
Construa uma nova matriz (matriz de custos reduzidos)
subtraindo o mínimo da coluna.
PASSO 2: Desenhe o número mínimo de linhas (horizontais e verticais)
para que todos os zeros sejão cobertos. Se n linhas são
necessárias, então a solução é ótima (são os n zeros
cobertos). Se um número menor que n linhas são
necessárias, vá para o passo 3.
PASSO 3: Encontre o menor valor não zero (k) na matriz de custos
reduzidos que não esteja coberto pelas linhas desenhadas
no passo 2. Agora subtraia k de cada elemento não coberto
e some k em cada elemento coberto por 2 linhas. Volte para
o passo 2.
O método húngaro para resolução do probl. da atribuição:
PASSO 1: Encontre o mínimo de cada linha na matriz de custo n x n.
Construa uma nova matriz subtraindo o valor do mínimo da
linha. Nesta nova matriz, encontre o mínimo de cada coluna.
Construa uma nova matriz (matriz de custos reduzidos)
subtraindo o mínimo da coluna.
10 6 4 2
9 3 8 7
5 6 12 2
7 8 5 14 -5
-2
-3
-2
9 0 3 2
0 10 4 3
4 5 0 6
0 2 4 8
0 -2 0 0
9 0 3 0
0 10 4 1
4 5 0 4
0 2 4 6
O método húngaro para resolução do probl. da atribuição:
PASSO 2: Desenhe o número mínimo de linhas (horizontais e verticais)
para que todos os zeros sejão cobertos. Se n linhas são
necessárias, então a solução é ótima (são os n zeros
cobertos). Se um número menor que n linhas são
necessárias, vá para o passo 3.
9 0 3 0
0 10 4 1
4 5 0 4
0 2 4 6
9 0 3 0
0 10 4 1
4 5 0 4
0 2 4 6
O método húngaro para resolução do probl. da atribuição:
PASSO 3: Encontre o menor valor não zero (k) na matriz de custos
reduzidos que não esteja coberto pelas linhas desenhadas
no passo 2. Agora subtraia k de cada elemento não coberto
e some k em cada elemento coberto por 2 linhas. Volte para
o passo 2.
9 0 3 0
0 10 4 1
4 5 0 4
0 2 4 6
1
9+1 0 3 0
0 10-1 4-1 1-1
4 +1 5 0 4
0 2-1 4-1 6-1
O método húngaro para resolução do probl. da atribuição:
PASSO 2: Desenhe o número mínimo de linhas (horizontais e verticais)
para que todos os zeros sejão cobertos. Se n linhas são
necessárias, então a solução é ótima (são os n zeros
cobertos). Se um número menor que n linhas são
necessárias, vá para o passo 3.
10 0 3 0
0 9 3 0
5 5 0 4
0 1 3 5
10 0 3 0
0 9 3 0
5 5 0 4
0 1 3 5
O método húngaro para resolução do probl. da atribuição:
PASSO 2: Desenhe o número mínimo de linhas (horizontais e verticais)
para que todos os zeros sejão cobertos. Se n linhas são
necessárias, então a solução é ótima (são os n zeros
cobertos). Se um número menor que n linhas são
necessárias, vá para o passo 3.
10 0 3 0
0 9 3 0
5 5 0 4
0 1 3 5
X
X
X
X
Maq A
Maq B
Maq C
Maq D
Tar 1 Tar 2 Tar 3 Tar 4
PO – 201
PROGRAMAÇÃO
LINEAR INTEIRA
Professor: Rodrigo A. Scarpel
www.ief.ita.br/~rodrigo
Hipóteses em PL (suposições tecnológicas e econômicas):
Proporcionalidade: todos os retornos / custos e recursos
utilizados variam proporcionalmente a variável de decisão (não
há economia de escala);
Aditividade: o efeito total de quaisquer duas variáveis é a soma
dos efeitos individuais (não há sinergia ou efeito de
substituição). Exemplo: o custo total é a soma dos custos
individuais;
Divisibilidade: as variáveis de decisão podem assumir valores
fracionados. Se essas variáveis só puderem assimir valores
inteiros o problema é de programação inteira (PI);
Certeza (Determinístico): todos os parâmetros do modelo são
constantes conhecidas (não são variáveis aleatórias);
Problema de programação inteira:
Considere o seguinte problema:
em que xj é inteiro para j = 1,2,…,p (n)
Quando p = n : todas as variáveis devem ter valor inteiro
Problema de Programação Inteira Pura
Quando p < n : algumas variáveis não precisam ter valor inteiro
Problema de Programação Inteira Mista
0 x, .... ,x ,x
...b
...b
...b :a
... )/(
n21
221k1
22222121
11212111
2211
knknk
nn
nn
nn
cxbxbx
cxbxbx
cxbxbxSujeito
xaxaxaZMaximizarMinimizar
Resolução de problemas de Programação Inteira:
Espaço de busca discreto X Espaço de busca contínuo
Computacionalmente é mais fácil tratar o caso contínuo
Abordagem inicialmente sugerida: ARREDONDAMENTO
• Ignore a restrição que faz xi inteiro e resolva como se fosse um PPL
• Se a resposta satisfizer as restrições de inteiros solução do PPI
• Caso contrário, obtenha uma solução inteira arredondando a
resposta do PPL a números inteiros.
Resolução de problemas de Programação Inteira:
Exemplo do método de resolução por ARREDONDAMENTO
Maximizar 21*x1 + 11*x2
Sujeito a: 7*x1 + 4*x2 13, x1,x2 são números inteiros e não-negativos
x1
x2
x1 = 13/7
x2 = 0 Z = 39
ARREDONDAMENTO:
x1 = 2 e x2 = 0 SOLUÇÃO INVIÁVEL
x1 = 1 e x2 = 0 SOLUÇÃO VIÁVEL, MAS NÃO ÓTIMA
SOLUÇÃO ÓTIMA: x1 = 0 e x2 = 3 (Z=33)
Resolução de problemas de Programação Inteira:
CRÍTICAS À ABORDAGEM POR ARREDONDAMENTO:
• É difícil pensar em um procedimento sistemático que seja prático para
arredondar uma solução não-inteira em um problema de médio ou
grande porte
• Mesmo que o arredondamento funcione em alguns casos, é difícil
esperar que esta abordagem funcione sempre.
Abordagem sugerida posteriormente: ENUMERAÇÃO (SOLUÇÕES VIÁVEIS)
• Enumere todas as soluções viáveis e, então, tome a melhor.
Resolução de problemas de Programação Inteira:
Exemplo do método de resolução por ENUMERAÇÃO
Maximizar 21*x1 + 11*x2
Sujeito a: 7*x1 + 4*x2 13, x1,x2 são números inteiros e não-negativos
x1
x2 SOLUÇÕES VIÁVEIS:
x1 = 0 e x2 = 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
SOLUÇÃO ÓTIMA: x1 = 0 e x2 = 3 (Z=33)
Resolução de problemas de Programação Inteira:
CRÍTICAS À ABORDAGEM POR ENUMERAÇÃO DAS SOLUÇÕES VIÁVEIS:
• Essa alternativa torna-se impraticável já em problemas médios:
Exemplo: 100 variáveis de decisão que podem assumir valores 0 ou 1
2100 soluções viáveis
ALTERNATIVA:
• Desenvolvimento de algorítmos que enumeram parcialmente um
número tratável de possibilidades e implicitamente todo o resto
(métodos parcialmente enumerativos)
• OBS: O método simplex emprega o mesmo princípio para resolver
PPLs pois examina sistematicamente somente um sub-conjunto das
soluções básicas possíveis.
Resolução de problemas de Programação Inteira:
MÉTODO BRANCH-AND-BOUND:
• É um método de resolução que se baseia na idéia de desenvolver uma
enumeração inteligente dos pontos candidatos à solução ótima inteira
de um problema, por meio da partição do espaço de soluções e
avaliação progressiva das soluções.
• O termo branch refere-se às partições feitas pelo método e o termo
bound às novas restrições adicionadas.
FO: Maximizar Z = 4,0*xmadeira + 6,0*xalumínio
S.A. 1,5*xmadeira + 4,0*xalumínio 24
3,0*xmadeira + 1,5*xalumínio 21
1,0*xmadeira + 1,0*xalumínio 8
xmadeira, xalumínio inteiros não-negativos
ILUSTRAÇÃO DO MÉTODO:
Método branch-and-bound:
PASSO 1: resolver o problema como se fosse um PPL (LP relaxation)
xalu
mín
io
xmadeira 5 3,2
4,8
Z = 41,6
Método branch-and-bound:
PASSO 2: particionar o problema em 2 adicionando restrições
SUB-PROBLEMA 1:
FO: Maximizar Z = 4,0*xmadeira + 6,0*xalumínio
S.A. 1,5*xmadeira + 4,0*xalumínio 24
3,0*xmadeira + 1,5*xalumínio 21
1,0*xmadeira + 1,0*xalumínio 8
1,0*xmadeira 3
xmadeira, xalumínio inteiros não-negativos
SUB-PROBLEMA 2:
FO: Maximizar Z = 4,0*xmadeira + 6,0*xalumínio
S.A. 1,5*xmadeira + 4,0*xalumínio 24
3,0*xmadeira + 1,5*xalumínio 21
1,0*xmadeira + 1,0*xalumínio 8
1,0*xmadeira 4
xmadeira, xalumínio inteiros não-negativos
Método branch-and-bound:
PASSO 2: particionar o problema em 2 adicionando restrições
xalu
mín
io
xmadeira 5
SU
B-P
RO
BL
EM
A 1
SU
B-P
RO
BL
EM
A 2
Método branch-and-bound:
PASSO 3: resolver os problemas como se fossem PPLs (LP relaxation)
xalu
mín
io
xmadeira 5
SU
B-P
RO
BL
EM
A 2
SUB-PROBLEMA 1:
SUB-PROBLEMA 2:
xMAD = 3
xALU = 4,875 Z = 41,25
xMAD = 4
xALU = 4 Z = 40
SU
B-P
RO
BL
EM
A 1
Método branch-and-bound:
PASSO 2: particionar o problema em 2 adicionando restrições
SUB-PROBLEMA 3:
FO: Maximizar Z = 4,0*xmadeira + 6,0*xalumínio
S.A. 1,5*xmadeira + 4,0*xalumínio 24
3,0*xmadeira + 1,5*xalumínio 21
1,0*xmadeira + 1,0*xalumínio 8
1,0*xmadeira 3
1,0*xalumínio 4
xmadeira, xalumínio inteiros
e não-negativos
SUB-PROBLEMA 4:
FO: Maximizar Z = 4,0*xmadeira + 6,0*xalumínio
S.A. 1,5*xmadeira + 4,0*xalumínio 24
3,0*xmadeira + 1,5*xalumínio 21
1,0*xmadeira + 1,0*xalumínio 8
1,0*xmadeira 3
1,0*xalumínio 5
xmadeira, xalumínio inteiros
e não-negativos
Método branch-and-bound:
PASSO 3: resolver os problemas como se fossem PPLs (LP relaxation)
SUB-PROBLEMA 3:
SUB-PROBLEMA 4:
xMAD = 3
xALU = 4 Z = 36
xMAD = 2,67
xALU = 5 Z = 40,67
xalu
mín
io
xmadeira 5
SU
B-P
RO
BL
EM
A 2
SU
B-P
RO
BL
EM
A 3
S-P 4
Método branch-and-bound:
PASSO 2: particionar o problema em 2 adicionando restrições
SUB-PROBLEMA 5:
FO: Maximizar Z = 4,0*xmadeira + 6,0*xalumínio
S.A. 1,5*xmadeira + 4,0*xalumínio 24
3,0*xmadeira + 1,5*xalumínio 21
1,0*xmadeira + 1,0*xalumínio 8
1,0*xmadeira 3
1,0*xalumínio 5
1,0*xmadeira 3
xmadeira, xalumínio inteiros
e não-negativos
SUB-PROBLEMA 6:
FO: Maximizar Z = 4,0*xmadeira + 6,0*xalumínio
S.A. 1,5*xmadeira + 4,0*xalumínio 24
3,0*xmadeira + 1,5*xalumínio 21
1,0*xmadeira + 1,0*xalumínio 8
1,0*xmadeira 3
1,0*xalumínio 5
1,0*xmadeira 2
xmadeira, xalumínio inteiros
e não-negativos
Método branch-and-bound:
PASSO 3: resolver os problemas como se fossem PPLs (LP relaxation)
SUB-PROBLEMA 5: NÃO HÁ SOLUÇÃO VIÁVEL
SUB-PROBLEMA 6: xMAD = 2
xALU = 5,25 Z = 39,5 x
alu
mín
io
xmadeira 5
SU
B-P
RO
BL
EM
A 2
SU
B-P
RO
BL
EM
A 3
S-P 6
Método branch-and-bound:
SOLUÇÃO DO PROBLEMA DE PROGRAMAÇÃO INTEIRA:
SUB-PROBLEMA 5: NÃO HÁ SOLUÇÃO VIÁVEL
SUB-PROBLEMA 6: xMAD = 2
xALU = 5,25 Z = 39,5 x
alu
mín
io
xmadeira 5
SU
B-P
RO
BL
EM
A 2
SU
B-P
RO
BL
EM
A 3
S-P 6
SUB-PROBLEMA 2: xMAD = 4
xALU = 4 Z = 40
Método branch-and-bound:
PROBLEMA:
Z = 41,60
xMAD = 3,2
xALU = 4,8
SUB-PROBLEMA 1:
Z = 41,25
xMAD = 3
xALU = 4,875
SUB-PROBLEMA 2:
Z = 40,00
xMAD = 4
xALU = 4
xMAD 3 xMAD 4
SUB-PROBLEMA 3:
Z = 36,00
xMAD = 3
xALU = 4
xALU 4
SUB-PROBLEMA 4:
Z = 40,68
xMAD = 2,67
xALU = 5
xALU 5
SUB-PROBLEMA 5:
NÃO HÁ
SOLUÇÃO
VIÁVEL
xMAD 3
SUB-PROBLEMA 6:
Z = 39,50
xMAD = 2
xALU = 5,25
xMAD 2
Método dos planos de corte de Gomory:
Objetivo: obter uma aproximação da envoltória convexa da região viável de
um PLI que contenha um ponto extremo correspondente a uma
solução ótima.
Passos: 1. Resolver o PLI relaxado (como um PPL)
2. Se a solução for inteira, então é a solução ótima do PLI. Caso
contrário, vá para o passo 3
3. Escolha uma linha do tableau com solução não inteira e construa o
corte de Gomory. Resolva o PPL com a nova restrição.
PO – 201
OTIMIZAÇÃO
COMBINATÓRIA
Professor: Rodrigo A. Scarpel
www.ief.ita.br/~rodrigo
Problemas de otimização combinatória:
Objetivo: encontrar, dentre todos os possíveis subconjuntos, aquele cuja
função objetivo seja a melhor possível.
Algumas aplicações práticas:
1. Problemas de produção: set-up, novos equipamentos, …
2. Problemas de alocação de recursos: mão-de-obra, equipamentos,…
3. Problemas de corte e empacotamento
4. Problemas de localização de facilidades
5. Problemas de distribuição de bens de consumo
6. Problemas de roteamento (otimização de redes: TSP)
Problemas de Produção (set-up, novos equipamentos):
CORTE
MONTAGEM
MADEIRA ALUMÍNIO
ACABAMENTO
PORTA
DE
MADEIRA
L=$4,00
PORTA DE
ALUMÍNIO
L=$6,00
EXPANSÃO DA PRODUÇÃO:
MÁQUINA CORTE:
+5h (INVEST=$50) / +15h (INVEST=$80)
MÁQUINA MONTAGEM:
+6h (INVEST=$30) / +15h (INVEST=$50)
NOVAS RESTRIÇÕES:
INVESTIMENTO NÃO PODE EXCEDER $120
POSSÍVEIS RELAÇÕES DE PRECEDÊNCIA
ALTERNATIVAS MUTUAMENTE EXCLUSIVAS
NECESSIDADE DE SET-UP:
CORTE: +0,5h (MADEIRA) / +1h (ALUMÍNIO) 108
Uma empresa fabrica rolos de papel com 20 pés de comprimento (diâmetro
padrão). Em uma certa semana recebeu 3 pedidos:
Como fazer os cortes de forma a minimizar a perda? 109
Problemas de corte e empacotamento:
Caso 1: O problema da cobertura
Problema da cobertura: selecionar o menor número de colunas para atender
todas as linhas de uma matriz.
Utilidade: localização de instalações (postos de atendimento), divisão de regiões
para exploração da força de vendas, …
Pontos
pretos
indicam
que a
coluna
atende a
linha
110
O problema da localização:
111
O problema da localização:
Caso 1: O problema da cobertura
A
B
C
D
E
FH
I
G
J
K
LN
M
O
P
Q
S
R
X
U
V
T
Z
1,2
1,7
2,1 1,9
1,9
2,2
3,2
1,2
1,2
1,2
1,23,2
0,7
0,5
0,80,7
2,5
0,91,5
2,8
1,3
1,7
0,8
2,8
2,4
1,4
1,4
3,4
2,2
4,2
4,62,2
2,61,2
2,2 2,1
A
B
C
D
E
FH
I
G
J
K
LN
M
O
P
Q
S
R
X
U
V
T
Z
1,2
1,7
2,1 1,9
1,9
2,2
3,2
1,2
1,2
1,2
1,23,2
0,7
0,5
0,80,7
2,5
0,91,5
2,8
1,3
1,7
0,8
2,8
2,4
1,4
1,4
3,4
2,2
4,2
4,62,2
2,61,2
2,2 2,1
AA
BB
CC
DD
EE
FFHH
II
GG
JJ
KK
LLNN
MM
OO
PP
SS
RR
XX
UU
VV
TT
ZZ
1,2
1,7
2,1 1,9
1,9
2,2
3,2
1,2
1,2
1,2
1,23,2
0,7
0,5
0,80,7
2,5
0,91,5
2,8
1,3
1,7
0,8
2,8
2,4
1,4
1,4
3,4
2,2
4,2
4,62,2
2,61,2
2,2 2,1
Distância máxima: 3 km
A B C D E F G H I J K L M N O P Q R S T U V X Z
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
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
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
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 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
(x1;x2)
P1=(1,05;6,85)
P2=(1,1;3,55)
P3=(1,25;0,85)
P4=(4,0;6,65)
P5=(3,55;2,85)
P6=(6,3;7,25)
P7=(7,0;6,4)
P8=(5,05;3,55)
P9=(7,0;4,35)
P10=(6,4;1,2)
P11=(10,1;6,65)
P12=(9,9;4,85)
P13=(9,6;2,2)
P14=(10,75;0,5)
O problema da localização:
Caso 2: O problema das p-medianas
Resultados:
p = 1 9: (1,2,3,...,13,14)
p = 2 2: (1,2,3,5)
9: (4,6,7,8,9,10,11,12,13,14)
p = 3 5: (1,2,3,5,8,10)
7: (4,6,7,9,11)
13: (12,13,14)
p = 3 5: (1,2,3,5,8,10)
7: (4,6,7,9,11)
13: (12,13,14)
CD
Problemas de distribuição 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 disponível (por caminhão).
Decisões: Quantos caminhões serão necessários e qual caminhão fará qual
viagem
Exemplo: N=10 entregas (T = 8 h por caminhão)
V1 V2 V3
V4
V5
V7
V6
V8
V10
V9 t1 = 1,1 h t6 = 1,7 h
t2 = 1,3 h t7 = 2,9 h
t3 = 3,7 h t8 = 3,9 h
t4 = 2,3 h t9 = 5,1 h
t5 = 1,9 h t10 = 7,3 h
Solução: 4 caminhões
1 → V3, V4, V5 (T=7,9)
2 → V10 (T=7,3)
3 → V1, V2, V6, V8 (T=8,0)
4 → V7, V9 (T=8,0)
Problemas de distribuição 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 caminhão.
Decisões: Quantos caminhões serão necessários e qual varejista será visitado
por cada caminhão
Exemplo: N=10 entregas (T = 10 ton por caminhão)
t1 = 1,1 ton t6 = 1,7 ton
t2 = 1,3 ton t7 = 2,9 ton
t3 = 3,7 ton t8 = 3,9 ton
t4 = 2,3 ton t9 = 5,1 ton
t5 = 1,9 ton t10 = 7,3 ton CD
V1 V2 V3
V4
V5
V7
V6
V8
V10
V9
CD
V1 V2 V3
V4
V5
V7
V6
V8
V10
V9
Solução: 4 caminhões
1 → V8, V6, V4, V2 (T=9,2)
2 → V7, V5, V3, V1 (T=9,6)
3 → V10 (T=7,3)
4 → V9 (T=5,1)
PO – 201
OTIMIZAÇÃO EM
REDES
Professor: Rodrigo A. Scarpel
www.ief.ita.br/~rodrigo
Fluxo em Redes (Network Flows) :
Muitos problemas de otimização podem ser melhor analisados se
for utilizada uma representação gráfica ou em forma de redes.
Esses problemas são enquadrados como de otimização em redes
ou fluxo em redes (network flows)
Principais Problemas:
• Transporte (Transportation)
• Transbordo (Transshipment)
• Atribuição ou Designação (Assignment)
• Circuitos Hamiltonianos (TSP)
• Caminho Mínimo (Shortest-Path) / Máximo
• Máximo fluxo (Maximum-flow problems)
• Problema da árvore geradora mínima (Minimum Spanning Tree)
Fluxo em Redes (Network Flows) :
Definições:
Um grafo, ou rede, é definido por dois conjuntos de símbolos:
nós (ou vértices) e arcos.
Um arco consiste de um par ordenado de nós e representa uma
possível direção de movimento que pode ocorrer entre os nós.
Uma seqüência de arcos distintos que ligam nós é chamado de
caminho (path).
Uma árvore é uma rede conectada (todos os nós estão
conectados por no mínimo 1 caminho) sem ciclos.
O problema do caixeiro viajante:
O problema do caixeiro viajante é um problema de otimização associado à
determinação dos circuitos hamiltonianos num grafo qualquer.
Diz-se que um circuito é Hamiltoniano se passar uma e só uma vez por todos os
vértices de uma rede. A designação provém do islandês Hamilton que em 1857
propôs um jogo denominado “Around the World". Nesse jogo, os vértices
representavam as 20 cidades mais importantes do mundo na época. O objetivo
do jogo consistia em encontrar um percurso através dos vértices, com início e fim
no mesmo vértice e que passasse por cada vértice apenas uma vez.
0
1
2
3
4
5 6
0
1
2
3
4
5 6
O problema do caixeiro viajante:
Formulação de Dantzig-Fulkerson-Johnson:
Seja um grafo G = (V,A), em que V é o conjunto de vértices
(cidades) e A é o conjunto de arcos (ligações entre duas cidades).
Var. decisão: xij = 1, se o arco de i para j estiver no caminho
0, caso contrário
i j
ijijxdMinimizar
grafoSSx
ix
xAS
Sjiij
ij
ij
,1
,1
j ,1 ..
,
j
i
O problema do caixeiro viajante:
Exemplo:
5
1 2
4
3 5
1
4
6
2
3
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:
5
1 2
4
3 5
1
4
6
2
3
5
1 2
4
3 5
1
4
6
2
3
x1,2 + x2,1 + x2,3 + x3,2 + x3,4 + x4,3 + x4,1 + x1,4 3
x1,4 + x4,1 + x4,5 + x5,4 + x1,5 + x5,1 2
5
1 2
4
3 5
1
4
2
3
Solução:
x1,2 = x2,3 = x3,4 = x4,5 = x5,1 = 1
Distância percorrida = 15
5
1
2
4
3
O problema do caixeiro viajante:
Embora a formulação de Dantzig-Fulkerson-Johnson tenha conseguido
resolver o problema há uma dificuldade de implementação: colocar na
formulação de todos os subgrafos de um grafo complexo.
Exemplo:
O problema do caixeiro viajante:
Resolução por branch-and-bound:
Resolver o problema do caixeiro viajante como um problema de
atribuição (relaxado)
Se a solução do problema relaxado for viável para o problema do
caixeiro viajante, esta é ótima. Caso contrário adicione uma
restrição para bloquear o arco (xij = 0).
Repita o procedimento até encontrar uma solução ótima para o
problema relaxado e que atenda o problema de caixeiro viajante.
i j
ijijxdMinimizar
ix
xAS
ij
ij
,1
j ,1 ..
j
i
O problema do caixeiro viajante:
Resolução pela heurística do vizinho mais próximo:
Passo 1: selecione um ponto de partida.
Passo 2: Conecte este ponto ao seu vizinho mais próximo, desde
que esse não forme um subcircuito.
Repita o passo 2 até que todos os nós tenham sido escolhidos.
Exemplo:
5
1
2
4
3
1 – 5 – 2 – 4 – 3 – 1 D = 668
O problema do caixeiro viajante:
Teste da solução pela heurística da inversão:
É possível buscar melhorar a solução invertendo-se 2 a 2, 3 a 3,
…, n-1 a n-1, em que n é o número de nós de uma rede.
Exemplo:
1 – 2 – 5 – 4 – 3 – 1 D = 737
1 – 5 – 4 – 2 – 3 – 1 D = 962
1 – 5 – 2 – 3 – 4 – 1 D = 704
1 – 4 – 2 – 5 – 3 – 1 D = 964
1 – 5 – 3 – 4 – 2 – 1 D = 807
1 – 3 – 2 – 4 – 5 – 1 D = 962
1 – 5 – 2 – 4 – 3 – 1 D = 668
O problema do caminho mínimo / máximo:
Problema do caminho mínimo / máximo Otimização de redes lineares
Decisões estratégicas: selecionar o caminho mais curto / longo entre nós
Utilidade: caminho mais curto: rota de transporte, substituição de equipam, …
caminho mais longo: PERT, CPM e problema da mochila
Depósito 1 Cidade 1 1
2
3
4
5
6
4
3
3
4
2
2
2
Formulação do problema do caminho mínimo / máximo:
dij é a distância entre a origem i e o destino j
Var. decisão: xij = 1, se o arco (i,j) estiver no caminho mínino / máximo
0, caso contrário
ji,, 0
)( , 1
k outros os todospara 0,
)( , 1
..
ij
iik
jkj
x
sorvedourork
fontesk
xxAS
i j
ijijxdMaximizarMinimizar
Formulação do problema do caminho mínimo / máximo:
MIN / MAX Z = 4X12 + 3X13 + 3X24 + 2X25 + 4X35 + 2X46 + 2X56
S.A. X12 + X13 = 1 (fonte) - X46 - X13 = -1 (sorvedouro)
X12 = X24 + X25
X13 = X35
Var. decisão: xij = 1, se a ligação fizer parte do caminho mínimo / máximo
0, caso contrário
Depósito 1 Cidade 1 1
2
3
4
5
6
4
3
3
4
2
2
2
X46 = X24
X56 = X25 + X35
Resolução do problema do caminho mínimo:
Algoritmo Dijkstra:
Início: rotule o nó fonte de forma permanente com 0 e cada um dos nós
conectados a este, de forma temporária, com a distância do arco que une
1 a este. Todos os outros nós receberão um rótulo temporário .
Depósito 1 Cidade 1 1
2
3
4
5
6
4
3
3
4
2
2
2
1 4
1 3
0 0
*
Resolução do problema do caminho mínimo:
Algoritmo Dijkstra:
Passo 2: Selecione o nó com o menor rótulo temporário e faça-o
permanente. Então rotule cada um dos nós conectados a este, de forma
temporária, com a distância do arco que os une.
Repita o passo 2 até chegar no nó sorvedouro.
Depósito 1 Cidade 1 1
2
3
4
5
6
4
3
3
4
2
2
2
1 4
1 3
0 0
*
*
3 7
Resolução do problema do caminho mínimo:
Algoritmo Dijkstra:
Passo 2: Selecione o nó com o menor rótulo temporário e faça-o
permanente. Então rotule cada um dos nós conectados a este, de forma
temporária, com a distância do arco que os une.
Repita o passo 2 até chegar no nó sorvedouro.
Depósito 1 Cidade 1 1
2
3
4
5
6
4
3
3
4
2
2
2
1 4
1 3
0 0
*
*
2 6
* 2 7
Resolução do problema do caminho mínimo:
Algoritmo Dijkstra:
Passo 2: Selecione o nó com o menor rótulo temporário e faça-o
permanente. Então rotule cada um dos nós conectados a este, de forma
temporária, com a distância do arco que os une.
Repita o passo 2 até chegar no nó sorvedouro.
Depósito 1 Cidade 1 1
2
3
4
5
6
4
3
3
4
2
2
2
1 4
1 3
0 0
*
*
2 6
*
*
2 7
5 8
Resolução do problema do caminho mínimo:
Algoritmo Dijkstra:
Passo 2: Selecione o nó com o menor rótulo temporário e faça-o
permanente. Então rotule cada um dos nós conectados a este, de forma
temporária, com a distância do arco que os une.
Repita o passo 2 até chegar no nó sorvedouro.
Depósito 1 Cidade 1 1
2
3
4
5
6
4
3
3
4
2
2
2
1 4
1 3
0 0
*
*
2 6
*
*
2 7
5 8
*
Resolução do problema do caminho mínimo:
Algoritmo Dijkstra:
Passo 2: Selecione o nó com o menor rótulo temporário e faça-o
permanente. Então rotule cada um dos nós conectados a este, de forma
temporária, com a distância do arco que os une.
Repita o passo 2 até chegar no nó sorvedouro.
Depósito 1 Cidade 1 1
2
3
4
5
6
4
3
3
4
2
2
2
1 4
1 3
0 0
*
*
2 6
*
*
2 7
5 8
*
*
Resolução do problema do caminho mínimo:
Algoritmo Dijkstra:
Depósito 1 Cidade 1 1
2
3
4
5
6
4
3
3
4
2
2
2
1 4
1 3
0 0
*
*
2 6
*
*
2 7
5 8
*
*
Caminho mais curto: 1 – 2 – 5 – 6 : distância = 8
Exemplo - problema do caminho mínimo:
Um carro novo é comprado por US$12,000.00. O custo de manutenção e seu
preço de revenda dependem da idade do carro como segue:
Formule o problema que determine a política ótima de troca de veículos no
horizonte de 5 anos (leia-se política ótima aquela que minimiza a soma dos custos
de compra, manutenção e revenda).
0 1 2 3 4 5
Idade do carro (anos) Custo de Manutenção (US$) Idade do carro (anos) Preço 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
Exemplo (caminho máximo): CPM (critical path method)
0 1
2
3
5
4
6
7
8 9 10
Número Atividade Atividade de pré-requisito Duração
0 Início do Trabalho - 0
1 Projeto de Simulação 0 2
2 Treinamento de Pessoal 1 6
3 Construção das Instalações 1 4
4 Certificação das Instalações 3,6 1
5 Aquisição de material 1 1
6 Aferição dos instrumentos 5 3
7 Teste do material adquirido 2,4 3
8 Montagem da cabine de simulação 7 1
9 Execução da simulação 8 2
10 Fim 9 0
Problema do caminho máximo: Resolução
CPM (critical path method)
Os cálculos do caminho crítico envolvem dois passos:
Passo 1: Forward pass (tempo mais cedo de ocorrência)
Passo 2: Backward pass (tempo mais tarde de ocorrência)
Uma atividade estará no caminho crítico se:
Exemplo (caminho máximo): CPM (critical path method)
0 1
2
3
5
4
6
7
8 9 10
0 2
8
6
3 6
7
11
12
14
14
0 2
14
14
12
11
2
6
4
1
3
1
3
1
3 1
2 0
8
8
7 4
7
Caminho crítico: 0 – 1 – 2 – 7 – 8 – 9 – 10 : distância = 14
Exemplo (caminho máximo): CPM (critical path method)
Caminho crítico: 0 – 1 – 2 – 7 – 8 – 9 – 10 : distância = 14
0 1
2
3
5
4
6
7
8 9 1000 11
22
33
55
44
66
77
88 99 1010
00 22
88
66
33 66
77
1111
1212
1414
1414
00 22
1414
1414
1212
1111
2
6
4
1
3
1
3
1
3 1
2 0
88
88
7744
77
tempo
1
2
2
8
7
11
8
9
12 14
3
5
6
6
4
O problema da árvore geradora mínima:
Em uma rede com n nós, uma árvore geradora é um grupo de n-1 arcos
que conectam todos os nós de uma rede sem formar loopings.
A árvore geradora mínima é uma árvore geradora em que a soma dos n-
1 arcos é a menor possível
Exemplo:
O problema da árvore geradora mínima:
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
Xae + Xce + Xeg 2
Xdf + Xfg + Xfh 2
Xeg + Xfg + Xgh 1
Xfh + Xgh 1
1 Xab, Xac, Xae, ..., Xgh 0
Xab, Xac, Xae, ..., Xgh inteiras
a
b
c
d
e
f
g
h
a
b
c
d
e
f
g
h
Resolução do problema da árvore geradora mínima:
Algoritmo de resolução:
Seja N={1, 2, …, n} o conjunto de nós de uma rede, Ck o conjunto de nós
conectados de forma permanente na iteração k e Ĉk o conjunto de nós anda
não conectados de forma permanente na iteração k.
Passo 0: C0 = e Ĉ0 = N
Passo 1: Comece em qualquer nó i do conjunto Ĉ0, faça 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*}
Resolução do problema da árvore geradora mínima:
Solução:
Passo 0: C0 = e Ĉ0 = {a,b,c,d,e,f,g,h}
Passo 1: C1 = {e} e Ĉ1 = {a,b,c,d,f,g,h}
Passo 2: C2 = {e,c} e Ĉ1 = {a,b,d,f,g,h}
Passo 3: C3 = {e,c,a} e Ĉ1 = {b,d,f,g,h}
Passo 4: C4 = {e,c,a,d} e Ĉ1 = {b,f,g,h}
Passo 5: C5 = {e,c,a,d,b} e Ĉ5 = {f,g,h}
Passo 6: C5 = {e,c,a,d,b,f} e Ĉ5 = {g,h}
Passo 7: C5 = {e,c,a,d,b,f,g} e Ĉ5 = {h}
Passo 8: C5 = {e,c,a,d,b,f,g,h} e Ĉ5 =
Problema do fluxo máximo:
• O problema do fluxo máximo é um problema de enumeração 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.
Formulação do problema do fluxo máximo:
Var. decisão: xij = qtde (volume) que deve ir da origem i para o destino j
j)i,(, 0
j)i,(,
destinoouorigemj)i,(, 0 ..
ij
ijij
i
ik
j
kj
x
Cx
xxAS
cortei cortej
ijxZMaximizar
Resolução do problema do fluxo máximo:
• Resolução do problema de fluxo máximo por enumeração:
• Entre todos os possíveis cortes na rede, o que tiver a menor
capacidade dá o fluxo máximo na rede.
• Uma alternativa para determinar o fluxo máximo é enumerar
todos os cortes.
• Em grandes redes a enumeração pode ser uma tarefa difícil.
Assim, nestes casos, a necessidade de um algoritmo (ou
heurística) eficiente é imperativa.
• Alternativa: Algoritmo do fluxo máximo
PO – 201
FECHAMENTO
Professor: Rodrigo A. Scarpel
www.ief.ita.br/~rodrigo
Definição do problema:
1. Quais são as alternativas para a decisão?
2. Sob quais restrições a decisão é tomada?
3. Qual seria um critério objetivo para avaliar as
alternativas?
Construção do modelo:
Resolução do modelo:
1. Utilização de algoritmos ou métodos de
resolução
2. Análise de sensibilidade
Validação do modelo:
1. Formulação está adequada?
2. Resolve o problema?
Implementação da solução
Modelagem e Simulação:
Modelagem e Simulação:
PPG-PO (Programa de Pós-Graduação em Associação – ITA e UNIFESP)
Site: http://www.unifesp.br/campus/sjc/ppgpo
Disciplinas:
Introdução à Pesquisa Operacional (Obrigatória)
Programação Linear (Obrigatória)
Programação Inteira
Programação Não-Linear
Algoritmos em Grafos
Econometria
Gerência de Operações e Logística
Meta-Heurísticas em Otimização Combinatória
Métodos Estocásticos
Métodos Multicritérios de Apoio à Decisão
Modelagem de Investimentos e Riscos
Simulação
OBSERVAÇÃO
Este material refere-se às notas de aula do curso
PO-201 (Introdução a Pesquisa Operacional) do
Instituto Tecnológico de Aeronáutica (ITA). Não
substitui o livro texto, as referências
recomendadas e nem as aulas expositivas. Este
material não pode ser reproduzido sem autorização
prévia do autor. Quando autorizado, seu uso é
exclusivo para atividades de ensino e pesquisa em
instituições sem fins lucrativos.
153