Você está na página 1de 82

Introdução a Heurísticas

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

 Distância total = 127,6 km


 11,4% superior à solução ótima
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 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

 Nova variável de decisão:


r1, se o nó i é atendido pelo veículo r
y =
i
 0 , em caso contrário
Heurística de Designação
Generalizada de Fisher-Jaikumar
 Nova formulação
min ∑ ( ∑) c
r∈V i , j ∈ A
r
ij x r
ij

∑ 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

Evitar a formação de subciclos


x ijr ∈ {0 ,1} (i , j ) ∈ A , r ∈ V
Heurística de Designação
Generalizada de Fisher-Jaikumar
 Modificação da Função Objetivo
min ∑ ∑d
r∈V i∈N 1
r
i y r
i

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

1a. Iteração Distância


Sol Inicial 0 1 2 3 4 5 0 31
0 2 1 3 4 5 0 32
0 1 3 2 4 5 0 28 Melhora FO
0 1 2 4 3 5 0 31
0 1 2 3 5 4 0 29
Busca Tabu
2a. Iteração
Lista Tabu {(2,3)} Distância
Sol Corrente = Sol Ótima 0 1 3 2 4 5 0 28
0 3 1 2 4 5 0 30
Solução Tabu 0 1 2 3 4 5 0 31
0 1 3 4 2 5 0 40
0 1 3 2 5 4 0 28

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

Você também pode gostar