Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1) INTRODUÇÃO
RSV
RSV
3) BRANCH-AND-BOUND
dividi-lo em sub-problemas cada vez menores, até que estes possam ser
solucionados. Sendo assim, a idéia é desenvolver uma enumeração inteligente
dos pontos candidatos (nós) em busca da solução ótima inteira do problema,
por meio da partição do espaço e avaliação progressiva das soluções.
Variantes Híbridas
Solução:
Quando se lida com variáveis binárias, a forma mais simples de
particionar o problema é fixar o valor de uma das variáveis, como por
exemplo, x1=0 e x1=1
Fazendo-se a substituição de x1 no problema inicial obtém-se dois novos
sub-problemas. Estes novos problemas são mais simples (ou
menores...) do que o inicial.
Z
1
Por exemplo:
a) Para o caso de maximização, conforme o item e.1 anterior:
f(X) ≤ 8.77
Fonte: Silva (s/d)
f(X) ≥ 24.8
Fonte: Silva (s/d)
Portanto Z deve ser menor ou igual a 16,5. Como Z deve ser um número
inteiro, arredonda-se a solução para 16. Tomando-se agora os dois sub-
problemas (x1=0 e x1=1) propostos anteriormente, chega-se a seguinte solução:
Para x1=0: x2=1; x3=0; x4=1; Z=9 (Figura a seguir com a solução no software
Lindo). Portanto Z ≤ 9
Para x1=1: x2=0,8; x3=0; x4=0,8; Z=16,2 (Figura a seguir com a solução no
software Lindo). Portanto Z ≤ 16 (valor inteiro).
A solução relaxada do nó x1=0 é inteira, portanto, esta deve fazer parte como
solução ótima do sub-problema em questão e candidata para solução ótima
final (Z*=9). Como 9 é o valor máximo neste ramo, as outras soluções
derivadas conduzirão à respostas inferiores, o que não é interessante. Sendo
assim, este ramo não deverá servir para a continuidade da solução do
problema. X1
0
9
Z (0,1,0,1)
16 1
(0.83,1,0,1)
16
(1,0.8,0,0.8)
Para x1=1 e x2=0: x3=0.8; x4=0; Z=13,8 (Figura a seguir com a solução no
software Lindo). Portanto Z ≤ 13 (valor inteiro).
Para x1=1 e x2=1: x3=0; x4=0,5; Z=16 (Figura a seguir com a solução no
software Lindo). Portanto Z ≤ 16.
Para x1=1, x2=1 e x3=0: x4=0.5; Z=16 (Figura a seguir com a solução no
software Lindo). Portanto Z ≤ 16.
0 X2
9 0 X3
Z (0,1,0,1)
13 0
16 1 (1,0,0.8,0)
(0.83,1,0,1) 16
16 1 (1,1,0,0.5)
(1,0.8,0,0.8)
16 1
(1,1,0,0.5)
Pela fixação dos valores de x4 (x4=0 e x4=1) gera-se uma solução única, sem
criar outros subproblemas. A árvore final fica:
X4
0 X2
9 0
Z 0 X3
(0,1,0,1) 14
13 0
16 (1,1,0,0)
1 (1,0,0.8,0)
(0.83,1,0,1) 16
16 1
1 (1,1,0,0.5)
(1,0.8,0,0.8) Impossível
16 1
(1,1,0,0.5)
Esta última solução candidata é melhor que a solução anterior (Z*=14). Como
não há mais condições de criar sub-problemas, esta é a solução ótima.
X2≥3 3
12.9 Impossível
(1.7,2.9)
Z
X2≤2
2
11
(3,2)
Prof. Marcelo Sucena Página 13 de 56
Engenharia de Produção
Pesquisa Operacional II - 2012/2
X2≥3 3
X1 Impossível
2
X2≤2
X1≥2 12.7
(2,2.7) 2 Solução ótima
11
12.9 (3,2)
(1.7,2.9)
Z
X2
X1≤1 X2≥3 3
X1
Impossível
1
X2≤2
11
(1,2.5)
2
9
(1,2)
X1
X1
X1≥4 4
X1≥5 5 X2 X2
48
42 46 X2≥3 3 (4,3) X2≥4
(4.3,2)
Z (5,2) X1≤3 4 Solução ótima
43
X1≤4 44
4 (3.2,3)
X2≤2 3 X2≤3 (2,4)
42.3
2 43.1
(4,2.3)
(3,3.1) 3
Impossível
Impossível
Área contida na Pesquisa Operacional. Pode ser considerada como uma teoria
baseada na interligação de pontos e linhas, utilizada principalmente na solução
de problemas de roteamento.
V1 V2
V3
V4
V3
V4 α23
α4 α34
α3
1.1.Algoritmo de PRIM
Exemplo: Considere o grafo a seguir e avalie quais ligações que deverão ser
implantadas visando a interligação de todos os nós, porém, considerando uma
quilometragem total mínima. Os atributos dos arcos representam as distâncias
entre as regiões.
2 9 6
3
3 6
2
1 3 3 5
7
1
3 5
4
2 6
3
3
2
1 3 3 5
1.2.Algoritmo de Kruskal
Passo 1 A* = {(3,4),(3,2),(1,2),(3,5),(6,5),(1,4),(4,5),(3,6),(3,1),(2,6)}
A=
Passo 2 A = {(3,4)}
A* = {(3,2),(1,2),(3,5),(6,5),(1,4),(4,5),(3,6),(3,1),(2,6)}
Passo 3 n = 6 e n-1 = 5
O número de elementos de A é igual a 1, e como n(A) < 5, deve-
se retornar ao passo 2.
2 6
3
3
2
1 3 3 5
2. CAMINHO MÍNIMO
3
1 2 2
4
O 3 2 D
3
3 4 2
3
2. i = 2, ou seja, 2ª iteração.
d(1)2 = min{d(1)1, d(2) + d(2,1)} = min { 4, 3+} = 4
d(3)2 = min{d(3)1, d(2) + d(2,3)} = min { 3, 3+} = 3
d(4)2 = min{ , 3+} =
d(D)2 = min{ , 3+2} = 5
3. Mínimo entre as distâncias 4,3, e 5 é 3, ou seja, y = 3. O nó y é diferente
de D, então continuar do passo 2.
2. i = 3, ou seja, 3ª iteração.
d(1)3 = min{d(1)2, d(3) + d(3,1)} = min { 4, 3+} = 4
d(4)3 = min{d(4)2, d(3) + d(3,4)} = min { , 3+3} = 6
Prof. Marcelo Sucena Página 23 de 56
Engenharia de Produção
Pesquisa Operacional II - 2012/2
2. i = 4, ou seja, 4ª iteração.
d(4)4 = min{d(4)3, d(1) + d(1,4)} = min {6, 4+2} = 6
d(D)4 = min{ 5, 4+} = 5
3. Mínimo entre as distâncias 6 e 5 é 5, ou seja, y = D. O nó y agora é igual a
D, então deve-se parar o processo de avaliação.
Pergunta-se:
Em qual iteração foi encontrado o primeiro valor de D (d(D) = 5)? Na 2ª
iteração.
Qual era o valor de y nessa iteração? Na 2ª iteração, y é igual a 2.
Identificou-se o nó anterior ao destino: nó 2.
Em qual iteração foi encontrado o primeiro valor de 2 (d(2) = 3)? Na 1ª
iteração.
Qual era o valor de y nessa iteração? Na 1ª iteração, y é igual a O.
2 2
O 3
D
ai b j
1 1
O modelo matemático para este problema pode ser expresso da seguinte
forma:
m n
Minimizar: z Cij X ij
i 1 j 1
n
X
j 1
ij ai ( i 1,..., m )
Sujeito a:
m
X
i 1
ij bj ( j 1,..., n )
DESTINOS
1 2 3 ... n Oferta
1 C11 C12 C13 ... C1n a1
O X11 X12 X13 X1n
R
2 C21 C22 C23 ... C2n a2
I
X21 X22 X23 X2n
G
... ... ... ... ... ... ...
E
N m Cm1 Cm2 Cm3 ... Cmn am
S Xm1 Xm2 Xm3 Xmn
Demanda b1 b2 b3 ... bn
Exemplo: Uma empresa tem fábricas em três locais diferentes, que abastecem
quatro armazéns distantes uns dos outros. As capacidades das fábricas em um
certo período de tempo são 70, 90 e 115 e as necessidades dos armazéns, no
Prof. Marcelo Sucena Página 25 de 56
Engenharia de Produção
Pesquisa Operacional II - 2012/2
mesmo período de tempo, são 50, 60, 70 e 95. Os custos unitários para cada
encaminhamento fábrica-armazém estão expostos na tabela a seguir.
Tabela 1.2 - Tabela dos custos unitários de transporte das origens para os
destinos
Destinos
A B C D
1 17 20 13 12
Origens
2 15 21 26 25
3 15 14 15 17
Disponibilidades
Disponibilidades
das origens
dos destinos
1 C1A=17
70
50
C1B=20 A
C2A=15
90 2 C2B=21
C2C=26
B 60
C2D=25
C3A=15
C3B=14 C1C=13
115 3
C 70
C3C=15
Total = 275 C3D=17
C1D=12
D 95
Total = 275
A solução dos Problemas de Transporte passa por quatro etapas:
A B C D Oferta
1 17 20 13 12 70
50 20
2 15 21 26 25 90
40 50
3 15 14 15 17 115
20 95
Demanda 50 60 70 95
A B C D Oferta Penalidade
1 17 20 13 12 70 1
(13-12)
2 15 21 26 25 90 6
(21-15)
3 15 14 15 17 115 1
(15-14)
Demanda 50 60 70 95
Penalidade 0 6 2 5
(15-15) (20-14) (15-13) (17-12)
A B C D Oferta Penalidade
1 17 20 13 12 70 1
(13-12)
2 15 21 26 25 90 4
50 (25-21)
3 15 14 15 17 115 1
(15-14)
Demanda 50 60 70 95
Penalidade 0 6 2 5
(15-15) (20-14) (15-13) (17-12)
A B C D Oferta Penalidade
1 17 20 13 12 70 1
(13-12)
2 15 21 26 25 90 1
50 (26-25)
3 15 14 15 17 115 2
60 (17-15)
Demanda 50 60 70 95
Penalidade 0 6 2 5
(15-15) (20-14) (15-13) (17-12)
A B C D Oferta Penalidade
1 17 20 13 12 70 1
70 (13-12)
2 15 21 26 25 90 1
50 (26-25)
3 15 14 15 17 115 2
60 (17-15)
Demanda 50 60 70 95
Penalidade 0 6 11 8
(15-15) (20-14) (26-15) (25-17)
A B C D Oferta Penalidade
1 17 20 13 12 70 1
70 (13-12)
2 15 21 26 25 90 1
50 (26-25)
3 15 14 15 17 115 2
60 55 (17-15)
Demanda 50 60 70 95
Penalidade 0 6 26 25
(15-15) (20-14) (26) (25)
A B C D Oferta Penalidade
1 17 20 13 12 70 1
70 (13-12)
2 15 21 26 25 90 1
50 15 (26-25)
3 15 14 15 17 115 2
60 55 (17-15)
Demanda 50 60 70 95
Penalidade 0 6 26 25
(15-15) (20-14) (26) (25)
A B C D Oferta Penalidade
1 17 20 13 12 70 1
70 (13-12)
2 15 21 26 25 90 1
50 15 25 (26-25)
3 15 14 15 17 115 2
60 55 (17-15)
Demanda 50 60 70 95
Penalidade 0 6 26 25
(15-15) (20-14) (26) (25)
A B C D Oferta
1 17 20 13 12 70
70
2 15 21 26 25 90
50 15 25
3 15 14 15 17 115
60 55
Demanda 50 60 70 95
Observa-se na tabela 2.3 que as variáveis básicas são: 1D, 2A, 2C, 2D, 3B e
3C. As variáveis não-básicas são: 1A, 1B, 1C, 2B, 3A e 3D. A seguir serão
descritos os passos para avaliação da existência de uma solução melhorada.
A B C D Oferta Pesos
1 17 20 13 12 70 0
70
2 15 21 26 25 90
50 15 25
3 15 14 15 17 115
60 55
Demanda 50 60 70 95
Pesos 12
A B C D Oferta Pesos
1 17 20 13 12 70 0
70
2 15 21 26 25 90 13
50 15 25
3 15 14 15 17 115
60 55
Demanda 50 60 70 95
Pesos 12
A B C D Oferta Pesos
1 17 20 13 12 70 0
70
2 15 21 26 25 90 13
50 15 25
3 15 14 15 17 115 2
60 55
Demanda 50 60 70 95
Pesos 2 12 13 12
2º passo: utilizando-se os valores dos pesos, calcula-se para cada variável não
básica a quantidade expressa pela seguinte fórmula:
A B C D
1 17-0-2=15 20-0-12=8 13-0-13=0
2 21-13-12=-4
3 15-2-2=11 17-2-12=3
3º passo: para saber quais das variáveis básicas devem ser substituídas pela
variável não básica 2B, deve-se montar um circuito de compensação entre as
variáveis básicas, a partir da variável que deverá entrar e seguindo
alternadamente na direção da linha e na direção da coluna, subtraindo-se e
somando-se o valor de entrada (a princípio um valor X), até o retorno à variável
de entrada. Com este procedimento as restrições de linha e coluna ficam
satisfeitas.
A B C D Oferta Pesos
1 17 20 13 12 70 0
70
2 15 21 26 25 90 13
50 X 15-X 25
3 15 14 15 17 115 2
60-X 55+X
Demanda 50 60 70 95
Pesos 2 12 13 12
A B C D Oferta
1 17 20 13 12 70
70
2 15 21 26 25 90
50 15 25
3 15 14 15 17 115
45 70
Demanda 50 60 70 95
A B C D Oferta Pesos
1 17 20 13 12 70 0
70
2 15 21 26 25 90 13
50 15 25
3 15 14 15 17 115 6
45 70
Demanda 50 60 70 95
Pesos 2 8 9 12
A B C D
1 17-0-2=15 20-0-8=12 13-0-9=4
2 26-13-9=4
3 15-6-2=7 17-6-12=-1
Montagem do circuito
A B C D Oferta Pesos
1 17 20 13 12 70 0
70
2 15 21 26 25 90 13
50 15+X 25-X
3 15 14 15 17 115 6
45-X 70 X
Demanda 50 60 70 95
Pesos 2 8 9 12
A B C D Oferta Pesos
1 17 20 13 12 70 0
70
2 15 21 26 25 90 12
50 40
3 15 14 15 17 115 5
20 70 25
Demanda 50 60 70 95
Pesos 3 9 10 12
A B C D
1 17-0-3=14 20-0-9=11 13-0-10=3
2 26-12-10=4 25-12-12=1
3 15-5-3=7
A B C D Oferta
1 17 20 13 12 70
70
2 15 21 26 25 90
50 40
3 15 14 15 17 115
20 70 25
Demanda 50 60 70 95
2. PROBLEMAS DE DESIGNAÇÃO
D1 D2 D3 D4
O1 10 12 15 16
O2 14 12 13 18
O3 10 16 19 15
O4 14 12 13 15
D1 D2 D3 D4
O1 0 2 5 6
O2 2 0 1 6
O3 0 6 9 5
O4 2 0 1 3
D1 D2 D3 D4
O1 0 2 4 3
O2 2 0 0 3
O3 0 6 8 2
O4 2 0 0 0
D1 D2 D3 D4
O1 0 2 4 3
O2 2 0 0 3
O3 0 6 8 2
O4 2 0 0 0
D1 D2 D3 D4
O1 0 2 4 3
O2 2 0 0 3
O3 0 6 8 2
O4 2 0 0 0
D1 D2 D3 D4
O1 0 2-2=0 4-2=2 3-2=1
O2 2+2=4 0 0 3
O3 0 6-2=4 8-2=6 2-2=0
O4 2+2=4 0 0 0
D1 D2 D3 D4
O1 0 0 2 1
O2 4 0 0 3
O3 0 4 6 0
O4 4 0 0 0
% R1 R2 R3 R4
V1 70 60 80 90
V2 70 80 70 90
V3 60 90 60 70
V4 70 80 70 80
%x$ R1 R2 R3 R4
V1 70 x 100 60 x 80 80 x 60 90 x 90
V2 70 x 100 80 x 80 70 x 60 90 x 90
V3 60 x 100 90 x 80 60 x 60 70 x 90
V4 70 x 100 80 x 80 70 x 60 80 x 90
%x$ R1 R2 R3 R4
V1 70 48 48 81
V2 70 64 42 81
V3 60 72 36 63
V4 70 64 42 72
Minimização R1 R2 R3 R4
V1 11 33 33 0
V2 11 17 39 0
V3 21 9 45 18
V4 11 17 39 9
R1 R2 R3 R4
V1 11 33 33 0
V2 11 17 39 0
V3 21-9=12 9-9=0 45-9=36 18-9=9
V4 11-9=2 17-9=8 39-9=30 9-9=0
R1 R2 R3 R4
V1 11-2=9 33 33-30=3 0
V2 11-2=9 17 39-30=9 0
V3 12-2=10 0 36-30=6 9
V4 2-2=0 8 30-30=0 0
R1 R2 R3 R4
V1 9 33 3 0
V2 9 17 9 0
V3 10 0 6 9
V4 0 8 0 0
R1 R2 R3 R4
V1 9 33 3 0
V2 9 17 9 0
V3 10 0 6 9
V4 0 8 0 0
R1 R2 R3 R4
V1 6 30 0 0
V2 6 14 6 0
V3 10 0 6 12
V4 0 8 0 3
R1 R2 R3 R4
V1 6 30 0 0
V2 6 14 6 0
V3 10 0 6 12
V4 0 8 0 3
3. PROBLEMAS DE TRANSBORDO
Produção 1 Produção 2
Custo Unitário de
Movimentação: $5
Custo Unitário de Custo Unitário de
Movimentação: $10 Movimentação: $3
Consumo
$25
UP 1 = 10 un. PC 1 = 7 un.
$20
$6
Nó central
$7 $10
$5 $18
UP 2 = 10 un. PC 2 = 18 un.
$25
Considerações:
Como não há ligação direta entre a UP1 e o PC2, como também
entre a UP2 e o PC1, utilizou-se um artifício no uso do custo
MUITO GRANDE (M);
Nos pontos de transbordo se considerou movimentação nula
entre os próprios, individualmente.
Como há desequilíbrio entre o somatório das linhas e das colunas
deve-se incluir uma variável fictícia com custo nulo de
movimentação.
a) UP1:
o Movimenta 25 unidades para a própria, o que significa que o buffer não
foi utilizado, ou seja, este nó não foi usado como transbordo.
o Movimenta 10 unidades para UP2.
b) UP2:
o Movimenta 15 unidades para a própria, o que significa que foram
utilizadas 10 unidades do buffer, ou seja, este nó foi usado como
transbordo de 10 unidades.
o Movimenta 20 unidades para o Ponto Central, ou seja, 10 unidades de
estoque mais 10 unidades de transbordo.
c) Nó Central:
o Movimenta 5 unidades para o próprio, o que significa que foram
utilizadas 20 unidades do buffer, ou seja, este nó foi usado como
transbordo de 20 unidades.
o Movimenta 20 unidades para o PC1, que na verdade são 20 unidades de
transbordo da UP2.
d) PC1:
o Movimenta 12 unidades para o próprio, o que significa que foram
utilizadas 13 unidades do buffer, ou seja, este nó foi usado como
transbordo de 13 unidades.
o Movimenta 13 unidades para o PC2 (deduzidas 20 unidades que vieram
do Ponto Central, fica ainda com 7 unidades encomendadas).
e) PC2:
o Movimenta 25 unidades para o próprio, o que significa que não foram
utilizadas 25 unidades do buffer, ou seja, este nó não foi usado como
transbordo.
o Recebe 13 unidades de encomenda do PC1.
UP 1 = 10 un. PC 1 = 7 un.
20 un.
Nó central
10 un. 13 un.
20 un.
UP 2 = 10 un. PC 2 = 18 un.
4. FLUXO MÁXIMO
Capacidade
12/1 12/20
Fluxo Limitador 12/16 A C
2
D
O 10 9
4 7 4
13 B E
14
12/1 12/20
16/16 A C
2
D
O 4/10 4+4 9 7 4/
13 4
B E
4/14
12/1 19/20
16/16 A C
2 23
23 D
O 4/10 9
8 7/7 4/
4
7/13 B E
11/14
5.PERT-CPM
Atividades
Dependência Duração
Código Descrição
A Fazer isso - 10
B Fazer aquilo - 6
C Fazer isso A 7
D Fazer aquilo B 5
E Fazer isso B 9
F Fazer aquilo C/D 5
G Fazer isso E 4
A F
B
G
A A B
1 2 1 2 1 2
B OU
B A A*
B*
3 3
Exemplo 1:
Tempo Crítico = 22 u.t 17/17 11/
10/10 C
2 4
Cedo/tarde 7 F
A
10 5
D
1 6 22/22
0/0 5
19/
B
G
6
E 4
3 5
9
6/6 /12 15/18
.
Exemplo 2:
Tempo Crítico = 13 u.t. 3/3 /8
2
Cedo/tarde A E
3 5
D
1 5 13/13
0/0 7
8/
B
F
3
C 3 Caminho crítico
3 4
2
3/8 10/10
5/
Exemplo 3: 3/3
Tempo Crítico = 22 u.t.
2 Caminho crítico
Cedo/tarde A
3 C 15/15
4
0/0 1
4 20/20
3
/3 B H I
D F 6 7 8
4 8 G 2 2
E 5 3 18/18 22/22
3
5 15/
7/7 12/15
Tempos de Folga (TF):
1. INTRODUÇÃO
A B C D E
A 16 12 18 16
B 10 18 20 20
C 18 20 18 16
D 14 18 10 8
E 8 12 12 12
Seleciona-se o nó inicial: A
O nó mais próximo de A que ainda não foi selecionado? C (12Km)
O nó mais próximo de C que ainda não foi selecionado? E (16Km)
O nó mais próximo de E que ainda não foi selecionado? B (12Km)
O nó mais próximo de B que ainda não foi selecionado? D (20Km)
O nó mais próximo de D que ainda não foi selecionado? A (14Km)
O circuito inicial então teria a seguinte configuração: A > C > E > B > D > A
com a distância total de 74Km.
A B C D E
A 16 12 18 16
B 10 18 20 20
C 18 20 18 16
D 14 18 10 8
E 8 12 12 12
A B C D E
A ABA=26Km ACA=30Km ADA=32Km AEA=24Km
B BCB=38Km BDB=38Km BEB=32Km
C CDC=28Km CEC=28Km
D DED=20Km
E
8K 12Km
D E D
m
Opções entre D e E:
Opções entre E e D
8K 8K 18Km
D E A D
m m
Opções entre D e E:
Opções entre E e A:
Opções entre A e D:
D > 8Km > E > 8Km > A > 12Km > C > 18Km > D
Opções de inserção:
DBEACD = 76Km
DEBACD = 60Km
DEABCD = 68Km
DEACBD = 68Km
3-No subciclo atual, calcular para cada ligação do tipo (u,v) a inserção
do nó "k", selecionado anteriormente, a que corresponda o
aumento mínimo de distância dado por Min {Cuk+Ckv-Cuv}.
4-Selecionar novo nó até que todos estejam na solução inicial.
A B C D E
A 16 12 18 16
B 10 18 20 20
C 18 20 18 16
D 14 18 10 8
E 8 12 12 12
A B C D E
A ABA=26Km ACA=30Km ADA=32Km AEA=24Km
B BCB=38Km BDB=38Km BEB=32Km
C CDC=28Km CEC=28Km
D DED=20Km
E
18Km 20Km
B C B
Distância entre os
nós
A E
B 10 20
C 18 16
D 14 8
Min. entre linhas 10 8
Máx. entre colunas 10
20Km D
10K 20K
B C B
m m
10Km 18Km 14Km 12Km 18Km 16Km
A A A
Opções de inserção:
Opções de inserção:
1-BEADCB = 20+8+18+10+20 = 76Km
2-BAEDCB = 10+16+12+10+20 = 68Km
3-BADECB = 10+18+8+12+20 = 68Km
4-BADCEB = 10+18+10+16+12 = 66Km
BIBLIOGRAFIA