PNV 2451 - Introduç - o A Heuristicas
PNV 2451 - Introduç - o A Heuristicas
PNV 2451 - Introduç - o A Heuristicas
PNV-2451
Prof. Dr. André Bergsten Mendes
Resolvendo um Modelo...
Modelo
Conceitual
Feedback
Modelo
Problema
Matemá-
Real Validação tico
Solução
Estratégias de Solução
Heurísticas Construtivas
Uma solução é construída adicionando-se, em cada
iteração, um elemento à solução;
Exemplo: Heurística de Inserção do Vizinho Mais
Próximo – a cada iteração, o cliente mais próximo do
anterior (ou, da base, na primeira iteração) é
adicionado (chamada de “greedy” ou “gulosa”)
A principal vantagem é a construção de soluções
viáveis (?) com pouco esforço computacional
A qualidade da solução pode ser baixa
Estratégias de Solução
Heurísticas Construtivas
Heurísticas desenvolvidas para problemas de
roteirização de veículos: Método das Economias de
Clarke & Wright, Método da Varredura
Outros métodos
Método Petal
Heurística de Designação Generalizada de Fisher-
Jaikumar
Método das Economias de Clarke &
Wright
Método das Economias de Clarke &
Wright
Premissa: há uma economia em colocar dois clientes
próximos em uma mesma rota
Procedimento (para frota homogênea):
1. Calcular todas as economias, dadas por sij=ci0+c0j-cij
2. Ordenar todos os arcos (i,j) por ordem decrescente de
economia
3. Adicionar os clientes (adjacentes, ver exemplo) em uma rota
por ordem decrescente de economia, enquanto houver
capacidade de carga no veículo
4. Ao estourar a capacidade, voltar ao Passo 3, até que todos
clientes tenham sido atendidos
Método das Economias de Clarke &
Wright
Ponto Demanda (t) X Y
0 0,0 9 15
1 6,0 4 17 Determinar as
2 3,0 7 25 rotas de entrega
3 4,0 12 22
considerando
4 4,0 21 21
5 5,0 25 22
veículos com
6 8,0 29 18 capacidade igual
7 3,0 23 27 a 15 toneladas
8 4,0 17 17
9 2,0 23 8
10 3,0 28 14
Método das Economias de Clarke &
Wright
Localização dos clientes
30
7
25 2
3 5
20 4
8 6
1
Y15 10
10
9
5
0
0 10 20 30
X
Método das Economias de Clarke &
Wright
Matriz de Distância
Destino
Origem 0 1 2 3 4 5 6 7 8 9 10
0 1000,0 5,4 10,2 7,6 13,4 17,5 20,2 18,4 8,2 15,7 19,0
1 5,4 1000,0 8,5 9,4 17,5 21,6 25,0 21,5 13,0 21,0 24,2
2 10,2 8,5 1000,0 5,8 14,6 18,2 23,1 16,1 12,8 23,3 23,7
3 7,6 9,4 5,8 1000,0 9,1 13,0 17,5 12,1 7,1 17,8 17,9
4 13,4 17,5 14,6 9,1 1000,0 4,1 8,5 6,3 5,7 13,2 9,9
5 17,5 21,6 18,2 13,0 4,1 1000,0 5,7 5,4 9,4 14,1 8,5
6 20,2 25,0 23,1 17,5 8,5 5,7 1000,0 10,8 12,0 11,7 4,1
7 18,4 21,5 16,1 12,1 6,3 5,4 10,8 1000,0 11,7 19,0 13,9
8 8,2 13,0 12,8 7,1 5,7 9,4 12,0 11,7 1000,0 10,8 11,4
9 15,7 21,0 23,3 17,8 13,2 14,1 11,7 19,0 10,8 1000,0 7,8
10 19,0 24,2 23,7 17,9 9,9 8,5 4,1 13,9 11,4 7,8 1000,0
Método das Economias de Clarke &
Wright
Economias
i j ci0 c0j cij Economia i-j
1 2 5,4 10,2 8,54 7,04
1 3 5,4 7,6 9,43 3,57
1 4 5,4 13,4 17,46 1,34
1 5 5,4 17,5 21,59 1,26
1 6 5,4 20,2 25,02 0,59
1 7 5,4 18,4 21,47 2,35
1 8 5,4 8,2 13,00 0,63
1 9 5,4 15,7 21,02 0,01
1 10 5,4 19,0 24,19 0,22
s ij = c i 0 + c 0 j − c ij
Método das Economias de Clarke &
Wright
i j sij i j sij i j sij
Economias 6
5
10
6
35,13
32,03
4
4
8
9
16,01
15,92
3
2
10
6
8,75
7,33
Decrescentes: 5 7 30,52 8 10 15,87 1 2 7,04
5 10 27,95 7 9 15,09 2 8 5,64
6 7 27,85 7 8 15,02 2 10 5,52
OBS: Em redes 9 10 26,87 3 7 13,97 3 9 5,46
simétricas sij = sji 4 5 26,76 8 9 13,08 1 3 3,57
4 7 25,53 2 7 12,51 2 9 2,51
a tabela apresenta 4 6 25,10 3 5 12,08 1 7 2,35
apenas sij 6 9 24,21 2 3 11,98 1 4 1,34
7 10 23,54 3 4 11,98 1 5 1,26
4 10 22,54 3 6 10,38 1 8 0,63
5 9 18,97 2 5 9,41 1 6 0,59
6 8 16,43 2 4 9,05 1 10 0,22
5 8 16,28 3 8 8,79 1 9 0,01
Método das Economias de Clarke &
Wright
Iteração 1
Identificar o arco de maior economia: (6, 10)
Adicionar à Rota 1: R1 = {6, 10}
dac = 8 + 3 = 11
Iteração 2
Identificar arco ligado aos clientes 6 e 10, de maior
economia, com demanda menor ou igual a (15–11=4):
(5, 6), (5, 10), (6, 7)
Ponto 0 1 2 3 4 5 6 7 8 9 10
Demanda (t) 0,0 6,0 3,0 4,0 4,0 5,0 8,0 3,0 4,0 2,0 3,0
Método das Economias de Clarke &
Wright
Iteração 2
Adicionar à Rota 1: R1 = {7, 6, 10}
dac = 11 + 3 = 14
Não há como adicionar novos clientes à R1, esta rota
está concluída
Distância R1= dist0,7 + dist7,6 + dist6,10 + dist10,0 = 52,4 km
Método das Economias de Clarke &
Wright
Localização dos clientes
30
7
25 2
3 5
20 4
8 6
1
Y15 10
10
9
5
0
0 10 20 30
X
Método das Economias de Clarke &
Wright
i j sij i j sij i j sij
Economias 6
5
10
6
35,13
32,03
4
4
8
9
16,01
15,92
3
2
10
6
8,75
7,33
Decrescentes: 5 7 30,52 8 10 15,87 1 2 7,04
5 10 27,95 7 9 15,09 2 8 5,64
6 7 27,85 7 8 15,02 2 10 5,52
OBS: Em redes 9 10 26,87 3 7 13,97 3 9 5,46
simétricas sij = sji 4 5 26,76 8 9 13,08 1 3 3,57
4 7 25,53 2 7 12,51 2 9 2,51
a tabela apresenta 4 6 25,10 3 5 12,08 1 7 2,35
apenas sij 6 9 24,21 2 3 11,98 1 4 1,34
7 10 23,54 3 4 11,98 1 5 1,26
4 10 22,54 3 6 10,38 1 8 0,63
5 9 18,97 2 5 9,41 1 6 0,59
6 8 16,43 2 4 9,05 1 10 0,22
5 8 16,28 3 8 8,79 1 9 0,01
Método das Economias de Clarke &
Wright
Iteração 3
Identificar o arco de maior economia: (4, 5)
Adicionar à Rota 2: R2 = {4, 5}
dac = 4 + 5 = 9
Iteração 4
Identificar
arco ligado aos clientes 4 e 5, de maior
economia, com demanda menor ou igual a (15–9=6):
(5, 9)
Ponto 0 1 2 3 4 5 6 7 8 9 10
Demanda (t) 0,0 6,0 3,0 4,0 4,0 5,0 8,0 3,0 4,0 2,0 3,0
Método das Economias de Clarke &
Wright
Iteração 4
Adicionar à Rota 2: R2 = {4, 5, 9}
dac = 9 + 2 = 11
Iteração 5
Identificararco ligado aos clientes 4 e 9, de maior
economia, com demanda menor ou igual a (15–11=4):
(4, 8)
Adicionar à Rota 2: R2 = {8, 4, 5, 9}
Ponto 0 1 2 3 4 5 6 7 8 9 10
Demanda (t) 0,0 6,0 3,0 4,0 4,0 5,0 8,0 3,0 4,0 2,0 3,0
Método das Economias de Clarke &
Wright
Iteração 5
dac = 11 + 4 = 15
Não há como adicionar novos clientes à R2; esta rota
está concluída
Distância R2= dist0,8 + dist8,4 + dist4,5 + dist5,9 + dist9,0 =
47,8 km
Método das Economias de Clarke &
Wright
Localização dos clientes
30
7
25 2
3 5
20 4
8 6
1
Y15 10
10
9
5
0
0 10 20 30
X
Método das Economias de Clarke &
Wright
i j sij i j sij i j sij
Economias 6
5
10
6
35,13
32,03
4
4
8
9
16,01
15,92
3
2
10
6
8,75
7,33
Decrescentes: 5 7 30,52 8 10 15,87 1 2 7,04
5 10 27,95 7 9 15,09 2 8 5,64
6 7 27,85 7 8 15,02 2 10 5,52
OBS: Em redes 9 10 26,87 3 7 13,97 3 9 5,46
simétricas sij = sji 4 5 26,76 8 9 13,08 1 3 3,57
4 7 25,53 2 7 12,51 2 9 2,51
a tabela apresenta 4 6 25,10 3 5 12,08 1 7 2,35
apenas sij 6 9 24,21 2 3 11,98 1 4 1,34
7 10 23,54 3 4 11,98 1 5 1,26
4 10 22,54 3 6 10,38 1 8 0,63
5 9 18,97 2 5 9,41 1 6 0,59
6 8 16,43 2 4 9,05 1 10 0,22
5 8 16,28 3 8 8,79 1 9 0,01
Método das Economias de Clarke &
Wright
Iteração 6
Identificar o arco de maior economia: (2, 3)
Adicionar à Rota 3: R3 = {2, 3}
dac = 3 + 4 = 7
Iteração 7
Identificar
arco ligado aos clientes 2 e 3, de maior
economia, com demanda menor ou igual a (15–7=8):
(1, 2)
Ponto 0 1 2 3 4 5 6 7 8 9 10
Demanda (t) 0,0 6,0 3,0 4,0 4,0 5,0 8,0 3,0 4,0 2,0 3,0
Método das Economias de Clarke &
Wright
Iteração 7
Adicionar à Rota 3: R2 = {1, 2, 3}
dac = 7 + 6 = 13
Como acabaram os clientes, a rota R3 está concluída
Distância R3= dist0,1 + dist1,2 + dist2,3 + dist3,0 = 27,4 km
30
7
25 2
3 5
20 4
8 6
1
Y15 10
10
9
5
0
0 10 20 30
X
Método da Varredura
Método da Varredura
Premissa: clientes próximos geograficamente devem
ser agrupados em uma mesma rota
Procedimento (para frota homogênea):
1. Definir uma referência (um cliente) e um sentido de rotação
2. Rotacionar uma semi-reta centrada no cliente escolhido
3. Enquanto os clientes cobertos pela varredura da semi-reta
não estourar a capacidade do veículo, acrescentá-los à rota
4. Assim que a capacidade do veículo for violada, interromper;
os clientes adicionados deverão ser roteirizados (PCV)
5. Reiniciar o processo de adição a partir do último cliente que
violou a capacidade do veículo; voltar ao Passo 3
Método da Varredura
Ponto Demanda (t) X Y
0 0,0 9 15
1 6,0 4 17 Determinar as
2 3,0 7 25
rotas de entrega
3 4,0 12 22
4 4,0 21 21
considerando
5 5,0 25 22 veículos com
6 8,0 29 18 capacidade
7 3,0 23 27 igual a 15
8 4,0 17 17 toneladas
9 2,0 23 8
10 3,0 28 14
Método da Varredura
Localização dos clientes
30
7
25 2
3 5
20 4
8 6
1
Y15 10
10
9
5
0
0 10 20 30
Ponto 0 1 2 3 4 5 6 7 8 9 10
X
Demanda (t) 0,0 6,0 3,0 4,0 4,0 5,0 8,0 3,0 4,0 2,0 3,0
Método da Varredura
Localização dos clientes
30
7
25 2
3 5
20 4
8 6
1
Y15 10
10
9
5
0
0 10 20 30
Ponto 0 1 2 3 4 5 6 7 8 9 10
X
Demanda (t) 0,0 6,0 3,0 4,0 4,0 5,0 8,0 3,0 4,0 2,0 3,0
Método da Varredura
Localização dos clientes
30
7
25 2
3 5
20 4
8 6
1
Y15 10
10
9
5
0
0 10 20 30
Ponto 0 1 2 3 4 5 6 7 8 9 10
X
Demanda (t) 0,0 6,0 3,0 4,0 4,0 5,0 8,0 3,0 4,0 2,0 3,0
Método da Varredura
Localização dos clientes
30
7
25 2
3 5
20 4
8 6
1
Y15 10
10
9
5
0
0 10 20 30
Ponto 0 1 2 3 4 5 6 7 8 9 10
X
Demanda (t) 0,0 6,0 3,0 4,0 4,0 5,0 8,0 3,0 4,0 2,0 3,0
Método da Varredura
Localização dos clientes
30 27,3
25
41,3 7 Distância Total =
2
3 5 143,3 km
20 4
8 6
1 43,3
Y15 10
10
9 31,4
5
0
0 10 20 30
X
Exercício
Ponto Demanda (t) X Y
0 0,0 9 15
1 6,0 4 17 Determinar as rotas
2 3,0 7 25 de entrega por meio
3 4,0 12 22
do Método das
4 4,0 21 21
5 5,0 25 22
Varreduras
6 8,0 29 18 considerando
7 3,0 23 27 veículos com
8 4,0 17 17 capacidade igual a 23
9 2,0 23 8
10 3,0 28 14
toneladas
Exercício
Localização dos clientes
30
7
25 2
3 5
20 4
8 6
1
Y15 10
10
9
5
0
0 10 20 30
Ponto 0 1 2 3 4 5 6 7 8 9 10
X
Demanda (t) 0,0 6,0 3,0 4,0 4,0 5,0 8,0 3,0 4,0 2,0 3,0
Heurística de Designação
Generalizada de Fisher-Jaikumar
Nova formulação matemática, contemplando dois
problemas:
Designação de clientes às rotas
Otimização de cada rota
∑ i i ≤ cap r
d y
i∈N 1
r
r∈V
∑ i =1
y
r∈V
r
i ∈ N1
∑ 0 ≤ NV
y
r∈V
r
y ir ∈ {0 ,1} i ∈ N1 ,r ∈ V
Heurística de Designação
Generalizada de Fisher-Jaikumar
Nova formulação
∑ ij j
x r
= y
i∈N 0 ∪ N 1
r
j ∈ N 1 ,r ∈ V
∑ ij j
x r
= y
j∈N 1 ∪ N 2
r
j ∈ N 1 ,r ∈ V
d ir = c 0 i + c ii r − c 0 ir
i r − nó semente do veículo r
d ir − custo de inserir o cliente i na rota em
que o veículo r viaja diretament e da
bas e para o cliente i r
Heurística de Designação
Generalizada de Fisher-Jaikumar
custo 0 = c 0 i r + c i r 0 custo 1 = c 0 i + c ii r + c i r 0
i
ir ir
0 0
∆ custo = d ir = c 0 i + c ii r − c 0 ir
Heurística de Designação
Generalizada de Fisher-Jaikumar
Novo Modelo
min ∑ ∑ i yi
d r r
r ∈V i∈ N 1
∑ i i ≤ cap r
d y r
i∈ N 1
r ∈V
∑
r ∈V
y ir = 1 i ∈ N1
y ir ∈ {0,1} i ∈ N1 , r ∈ V
Para cada veículo r é necessário definir um nó semente ir, antes
de definir a alocação dos clientes às rotas
Heurística de Designação
Generalizada de Fisher-Jaikumar
Ponto Demanda (t) X Y
0 0,0 9 15
1 6,0 4 17 Determinar as rotas de
2 3,0 7 25 entrega considerando
3 4,0 12 22 veículos com
4 4,0 21 21 capacidade igual a 15
5 5,0 25 22 toneladas
6 8,0 29 18
7 3,0 23 27
Nós sementes: 1, 7, 9
8 4,0 17 17
9 2,0 23 8
10 3,0 28 14
Heurística de Designação
Generalizada de Fisher-Jaikumar
Localização dos clientes
30
7
25 2
3 5
20 4
8 6
1
Y15 10
10
9
5
0
0 10 20 30
X
Heurística de Designação
Generalizada de Fisher-Jaikumar
Nó Semente 1 Nó Semente 7 Nó Semente 9
c_0_i c_i_i1 c_i1_0 d_i_i1 c_0_i c_i_i2 c_i2_0 d_i_i2 c_0_i c_i_i3 c_i3_0 d_i_i3
0 0,00 5,39 5,39 0,00 0,00 18,44 18,44 0,00 0,00 15,65 15,65 0,00
1 5,39 0,00 5,39 0,00 5,39 21,47 18,44 8,42 5,39 21,02 15,65 10,76
2 10,20 8,54 5,39 13,36 10,20 16,12 18,44 7,88 10,20 23,35 15,65 17,89
3 7,62 9,43 5,39 11,66 7,62 12,08 18,44 1,26 7,62 17,80 15,65 9,77
4 13,42 17,46 5,39 25,50 13,42 6,32 18,44 1,30 13,42 13,15 15,65 10,92
5 17,46 21,59 5,39 33,67 17,46 5,39 18,44 4,41 17,46 14,14 15,65 15,95
6 20,22 25,02 5,39 39,86 20,22 10,82 18,44 12,60 20,22 11,66 15,65 16,23
7 18,44 21,47 5,39 34,52 18,44 0,00 18,44 0,00 18,44 19,00 15,65 21,79
8 8,25 13,00 5,39 15,86 8,25 11,66 18,44 1,47 8,25 10,82 15,65 3,41
9 15,65 21,02 5,39 31,29 15,65 19,00 18,44 16,21 15,65 0,00 15,65 0,00
10 19,03 24,19 5,39 37,83 19,03 13,93 18,44 14,52 19,03 7,81 15,65 11,18
Heurística de Designação
Generalizada de Fisher-Jaikumar
Localização dos clientes
y_i1 y_i2 y_i3
0 0 0 0
30 1 1 0 0
7 2 0 1 0
25 2
3
3 1 0 0
5
20 4
4 0 1 0
8 6
1 5 0 1 0
Y15 10 6 0 0 1
10 7 0 1 0
9 8 1 0 0
5 9 0 0 1
0 10 0 0 1
0 10 20 30
X
Heurística de Designação
Generalizada de Fisher-Jaikumar
Localização dos clientes
30
49,25 7 Distância Total =
25 2
30,14 3 5 127,19 km
20 4
8 6
1
Y15 10
10
9
5 47,81
0
0 10 20 30
X
Estratégias de Solução
Heurísticas de Busca
Visam a melhoria de uma solução, sem a garantia de
otimalidade; requer a prévia definição da solução
inicial que será explorada, da forma de geração da
vizinhança, do critério de aceitação de uma solução
gerada e de um critério de parada;
A geração da vizinhança ocorre em função do
mecanismo empregado para criar novas soluções a
partir da solução corrente como, por exemplo, a troca
da posição de clientes e a substituição de arcos, entre
outras;
Estratégias de Solução
Heurística de Busca
Se a solução na vizinhança da solução corrente é
melhor, então esta se torna a solução corrente,
substituindo a anterior. Os critérios de aceitação
comumente empregados são: ‘escolhe-o-primeiro’
(“first-accept”) em que a primeira solução gerada
melhor que a corrente é escolhida ou, ‘escolhe-a-
melhor’ (“best-accept”) de todas as soluções na
vizinhança da solução corrente;
Caso não haja uma solução melhor, ter-se-á chegado a
uma solução ótima local e o algoritmo encerra;
Método de Busca 2-Opt
Este método consiste em identificar 2 arcos não-
adjacentes que serão eliminados da rede, para
que novos arcos sejam religados, com o objetivo
de reduzir a distância total;
É necessário partir de uma solução inicial viável
(fornecido por alguma heurística);
O método encerra quando não houver mais arcos
que permitam a redução de distância;
Método de Busca 2-Opt
Exemplo - PCV
Local Clientes
30,0
25,0 3
1 4 5
20,0
15,0 0
2
10,0 6
5,0
0,0
0,0 5,0 10,0 15,0 20,0 25,0 30,0
Método de Busca 2-Opt
Exemplo - PCV
0 1 2 3 4 5 6
0 0,0 12,4 6,7 12,9 7,6 8,6 6,2
1 12,4 0,0 10,2 4,6 7,9 17,1 15,5
2 6,7 10,2 0,0 13,1 10,4 15,2 5,8
3 12,9 4,6 13,1 0,0 6,0 15,0 17,6
4 7,6 7,9 10,4 6,0 0,0 9,2 13,2
5 8,6 17,1 15,2 15,0 9,2 0,0 14,1
6 6,2 15,5 5,8 17,6 13,2 14,1 0,0
Método de Busca 2-Opt
Solução Inicial
Local Clientes
Distância Total
30,0
= 70,0 km
25,0 3
1 4 5
20,0
15,0 0
2
10,0 6
5,0
0,0
0,0 5,0 10,0 15,0 20,0 25,0 30,0
Método de Busca 2-Opt
Identificar arcos
Local Clientes
30,0
25,0 3
1 4 5
20,0
15,0 0
2
10,0 6
5,0
0,0
0,0 5,0 10,0 15,0 20,0 25,0 30,0
Método de Busca 2-Opt
Eliminar arcos
Local Clientes
30,0
25,0 3
1 4 5
20,0
15,0 0
2
10,0 6
5,0
0,0
0,0 5,0 10,0 15,0 20,0 25,0 30,0
Método de Busca 2-Opt
Religar & Ajustar o Sentido dos Arcos
Local Clientes
30,0
25,0 3
1 4 5
20,0
15,0 0
2
10,0 6
5,0
0,0
0,0 5,0 10,0 15,0 20,0 25,0 30,0
Método de Busca 2-Opt
Religar & Ajustar o Sentido dos Arcos
Local Clientes
30,0
25,0 3
1 4 5
20,0
15,0 0
2
10,0 6
5,0
0,0
0,0 5,0 10,0 15,0 20,0 25,0 30,0
Método de Busca 2-Opt
Solução 1
Local Clientes
Distância Total
30,0
= 64,4 km
25,0 3
1 4 5
20,0
15,0 0
2
10,0 6
5,0
0,0
0,0 5,0 10,0 15,0 20,0 25,0 30,0
Método de Busca 2-Opt
Identificar Arcos
Local Clientes
30,0
25,0 3
1 4 5
20,0
15,0 0
2
10,0 6
5,0
0,0
0,0 5,0 10,0 15,0 20,0 25,0 30,0
Método de Busca 2-Opt
Eliminar Arcos
Local Clientes
30,0
25,0 3
1 4 5
20,0
15,0 0
2
10,0 6
5,0
0,0
0,0 5,0 10,0 15,0 20,0 25,0 30,0
Método de Busca 2-Opt
Religar & Ajustar o Sentido dos Arcos
Local Clientes
30,0
25,0 3
1 4 5
20,0
15,0 0
2
10,0 6
5,0
0,0
0,0 5,0 10,0 15,0 20,0 25,0 30,0
Método de Busca 2-Opt
Religar & Ajustar o Sentido dos Arcos
Local Clientes
30,0
25,0 3
1 4 5
20,0
15,0 0
2
10,0 6
5,0
0,0
0,0 5,0 10,0 15,0 20,0 25,0 30,0
Método de Busca 2-Opt
Solução 2
Local Clientes
Distância Total
30,0
= 56,9 km
25,0 3
1 4 5
20,0
15,0 0
2
10,0 6
5,0
0,0
0,0 5,0 10,0 15,0 20,0 25,0 30,0
Método de Busca 2-Opt
Identificar Arcos
Local Clientes
30,0
25,0 3
1 4 5
20,0
15,0 0
2
10,0 6
5,0
0,0
0,0 5,0 10,0 15,0 20,0 25,0 30,0
Método de Busca 2-Opt
Eliminar Arcos
Local Clientes
30,0
25,0 3
1 4 5
20,0
15,0 0
2
10,0 6
5,0
0,0
0,0 5,0 10,0 15,0 20,0 25,0 30,0
Método de Busca 2-Opt
Religar & Ajustar o Sentido dos Arcos
Local Clientes
30,0
25,0 3
1 4 5
20,0
15,0 0
2
10,0 6
5,0
0,0
0,0 5,0 10,0 15,0 20,0 25,0 30,0
Método de Busca 2-Opt
Religar & Ajustar o Sentido dos Arcos
Local Clientes
30,0
25,0 3
1 4 5
20,0
15,0 0
2
10,0 6
5,0
0,0
0,0 5,0 10,0 15,0 20,0 25,0 30,0
Método de Busca 2-Opt
Solução 3
Local Clientes
Distância Total
30,0
= 50,6 km
25,0 3
1 4 5
20,0
15,0 0
2
10,0 6
5,0
0,0
0,0 5,0 10,0 15,0 20,0 25,0 30,0
Operadores
k=1 k genérico
Operadores
Vizinhança: "b-cyclic, k-transfer scheme” - k clientes consecutivos
de cada uma das b rotas são transferidas para a próxima rota
Busca Tabu
Proposto por Glover e Laguna
Heurística iterativa genérica para resolução de
problemas de otimização combinatória
Extensão da Busca Local
Princípio básico: uma memória força a exploração
de novas áreas do espaço de busca. As soluções
que foram examinadas recentemente se tornam
tabus (proibidas) de serem escolhidas para as
próximas soluções
Busca Tabu
Diversificação
Hill Climbing
Intensificação
Ciclagem
Ótimo Local
Ótimo Global
Busca Tabu
xcur ← solução corrente (= solução inicial); xopt ← melhor solução (= solução inicial)
diversificação = falso
enquanto critério de parada não for atingido
se diversificação = verdadeiro então
utilizar memória de longo prazo
senão
x’ ← melhor solução não-tabu na vizinhança de xcur
x’’ ← melhor solução tabu na vizinhança de xcur
fim_se
se f(x’’) < f(x’) e f(x’’) < f(xopt) então
aplicar critério de aspiração: xcur ←x’’; xopt ←x’’
senão
se f(x’) < f(xopt) então xopt ←x’
xcur ← x’
fim_se
atualizar lista tabu(memória de curto prazo), memória de longo prazo, ativação diversificação
fim_enquanto
Busca Tabu
Componentes
1. Movimentos
2. Vizinhança
3. Memória de Curto Prazo
4. Memória de Longo Prazo
5. Critério de Aspiração
6. Critério de Parada
Busca Tabu
Movimento - A idéia central dos métodos de
busca é partir de uma solução viável e realizar
sobre a mesma uma modificação que resulte em
outra solução viável, denominada de
movimento.
Exemplos:
1. Troca de pares adjacentes – tome dois locais
adjacentes e troque suas posições;
Busca Tabu
Exemplos:
2. Último local em primeiro – tome o último local da
seqüência e o coloque na primeira posição
3. Troca de pares geral – tome dois locais não
necessariamente adjacentes e troque suas posições
4. k-movimento – tome um local da seqüência e
desloque um máximo de k posições à direita ou à
esquerda
Busca Tabu
Busca Tabu
Vizinhança - Dado uma solução inicial e um
tipo de movimento, existem soluções que
podem ser atingidas a partir da solução inicial
aplicando sobre esta o movimento escolhido.
Todas estas soluções formam a vizinhança da
solução inicial.
Busca Tabu
Memória de Curto Prazo – Lista de movimentos
proibidos (tabus).
Memória de Longo Prazo – Lista de
movimentos mais freqüentes; ao utilizar o
critério de diversificação, movimentos pouco
realizados terão maiores chances de ocorrer.
Busca Tabu
Critério de Aspiração – Uma solução contendo
um movimento tabu torna-se corrente apenas se
o movimento gerar uma solução melhor que a
solução de referência (a melhor solução já
obtida).
Critério de Parada – Número de iterações;
número de iterações sem melhoria; número de
diversificações; tempo de processamento.
Busca Tabu
Matriz de Distâncias
0 1 2 3 4 5
0 0 3 5 6 7 4
1 5 0 5 7 9 5
2 8 4 0 7 2 6
3 5 6 5 0 5 7
4 3 8 11 6 0 3
5 8 4 3 7 4 0
Busca Tabu
Melhor Solução
Não Tabu
Busca Tabu
3a. Iteração
Lista Tabu {(2,3), (4,5)} Distância
Solução Ótima 0 1 3 2 4 5 0 28
Solução Corrente 0 1 3 2 5 4 0 28
0 3 1 2 5 4 0 30
Solução Tabu 0 1 2 3 5 4 0 29
0 1 3 5 2 4 0 25
Solução Tabu 0 1 3 2 4 5 0 28
Melhora FO
Busca Tabu
4a. Iteração
Lista Tabu {(2,3), (4,5), (2,5)} Distância
Solução Ótima 0 1 3 5 2 4 0 25
Solução Corrente 0 1 3 5 2 4 0 25
0 3 1 5 2 4 0 25
0 1 5 3 2 4 0 25
Solução Tabu 0 1 3 2 5 4 0 28
0 1 3 5 4 2 0 40
Melhor Solução
Não Tabu