MÉTODO DE PESQUISA EM
VIZINHANÇA VARIÁVEL
APLICADO À RESOLUÇÃO
DO PROBLEMA DE
ROTEAMENTO DE VEÍCULOS
Dárlinton B. Feres Carvalho
[email protected]
O Problema de Roteamento
de Veículos (PRV):
 Dado um conjunto de cidades (ou
consumidores), cada qual com uma
demanda qi por um produto, e um
depósito com veículos de capacidade Q,
encontrar as rotas para os veículos
minimizando os custos de transporte.
Características do problema:
 Como uma generalização do Problema do
Caixeiro Viajante (PCV), o PRV pertence à
classe de problemas NP-Difícil (LENSTRA,
1981), portanto não existem algoritmos em
tempo polinomial para encontrar soluções
ótimas.
 Os algoritmos exatos existentes raramente
conseguem resolver problemas envolvendo
mais do que 50 consumidores (RENAUD &
BOCTOR, 2002).
Abordagens de resolução:
 Para problemas de maior porte:

Heurísticas.
 Exemplos de heurísticas bem sucedidas:
 Algoritmos baseados em Busca Tabu de
Taillard (1993), Osman (1993) e
Gendreau et al. (1994).
 Heurística de pétalas de Renaud et
al.(1996).
Nossa proposta:
 Um método de duas fases para a resolução do
PRV:


Fase de construção GRASP.
Refinamento usando o Método de Pesquisa em
Vizinhança Variável (VNS).
 Baseado em função de avaliação que procura
minimizar as distâncias percorridas.
 As estruturas de vizinhança utilizadas no VNS são
simples e proporcionam alterações na solução
capazes de escapar de ótimos locais.
 O método para busca local no VNS é o Método de
Descida em Vizinhança Variável (VND) que
também foi projetado com estruturas simples e de
baixa complexidade para uma rápida execução.
Exemplo:
Consumidores
Rotas
Depósito
Características:
 Depósito: qtde veículos, localização.
 Veículos: capacidade.
 Consumidores: localização, demanda.
 Informações da Rota: distância entre os
consumidores e depósito.
Função Objetivo:
 Minimizar a distância total da viagem.
Representação dos consumidores:
Consumidores:
Identificador,
Demanda.
Depósito:
Num. veículos.
Pontos no plano (x,y).
Cálculo das distâncias entre dois
consumidores:
Matriz de Distância Euclidiana:
Formulação do Problema do
Roteamento de Veículos (PRV):
 Seja G = (V, E) um grafo não direcionado, onde V = {v0, v1,..., vn} é o
conjunto dos vértices e E = {(vi, vj): vi ,vj  V, i < j} é o conjunto de arestas.
 O vértice v0 representa o depósito, sendo este a base de uma frota de
veículos idênticos de capacidade Q, enquanto os vértices remanescentes
correspondem às cidades ou consumidores.
 Cada consumidor vi tem uma demanda não negativa qi e q0 = 0.
 Supõe-se que existe um número ilimitado de veículos no depósito.
 A cada aresta (vi, vj) está associada uma distância não negativa cij que
representa a distância entre os consumidores.
Formulação do Problema do
Roteamento de Veículos (PRV):
 O Problema de Roteamento de Veículos
consiste em determinar o conjunto de rotas
que deverão ser feitas pelos veículos
minimizando os custos de transporte, dado
pela distância e respeitando as seguintes
condições:
a) Cada rota começa e termina no depósito;
b) Toda cidade de V \ {v0} é visitada somente uma
vez por somente um veículo;
c) A demanda total de qualquer rota não deve
superar a capacidade Q de um veículo.
Representação do PRV:
 Assumimos a representação usada por
Pradenas & Parada (1999). Uma solução do
PRV é representada por meio de uma
permutação de cidades, numeradas de 1 a n,
separadas em tantas partições quantos forem o
número de veículos usados.

O elemento separador é representado pelo valor
zero e indica o depósito.
 Por exemplo, se há 6 consumidores, 3 veículos
e a solução s é {0-3-4-0-1-5-2-0-6-0} então as
rotas dos veículos, denominadas pétalas, são
{0-3-4-0}, {0-1-5-2-0} e {0-6-0}.
Estruturas de vizinhança:
 Seja S o conjunto das soluções para o
PRV. As estruturas de vizinhança são
definidas por funções N que associam um
conjunto de soluções N(s) com cada
solução obtida por uma modificação
parcial de s, chamada movimento.
 Consideramos seis estruturas de
vizinhança, a saber: N1, N2, N3, N4, N5, N6.
Movimentos:
 O primeiro movimento consiste na troca
de dois números inteiros em uma
mesma pétala da solução.

Estes números representam apenas os
consumidores.
 O segundo, terceiro, quarto, quinto e
sexto movimentos consistem em efetuar
uma, duas, três, quatro ou cinco trocas,
respectivamente, entre quaisquer
elementos da solução.
Exemplo das Estruturas de
Vizinhança:
 A vizinhança N1(s) de uma dada solução s é o
conjunto de todos os vizinhos s' gerados pelo
primeiro movimento.

Por exemplo, s' ={0-3-4-0-1-2-5-0-6-0}  N1(s).
 A vizinhança N2(s) de uma dada solução s é o
conjunto de todos os vizinhos s' gerados pelo
segundo movimento.

Por exemplo, s' ={0-3-5-0-1-4-2-0-6-0}  N2(s).
 A vizinhança N3(s) de uma dada solução s é o
conjunto de todos os vizinhos s' gerados pelo
terceiro movimento.

Por exemplo, s' ={0-3-5-0-6-4-2-0-1-0}  N3(s).
Exemplo das Estruturas de
Vizinhança:
 A vizinhança N4(s) de uma dada solução s é o
conjunto de todos os vizinhos s' gerados pelo
quarto movimento.

Por exemplo, s' ={0-3-5-6-0-4-2-0-1-0}  N4(s).
 A vizinhança N5(s) de uma dada solução s é o
conjunto de todos os vizinhos s' gerados pelo
quinto movimento.

Por exemplo, s' ={0-3-5-6-0-4-0-2-1-0}  N5(s).
 A vizinhança N6(s) de uma dada solução s é o
conjunto de todos os vizinhos s' gerados pelo
sexto movimento.

Por exemplo, s' ={0-4-5-6-0-3-0-2-1-0}  N6(s).
Função Objetivo:
 Função objetivo baseada em penalização.
 Seja f1(s) representando a função objetivo pura
da solução s:

Soma das distâncias percorridas por todos os
veículos.
 Seja O(s) o total das sobrecargas dos veículos
associada a esta solução, caso exista.
 Função objetivo f(s) = f1(s) + O(s)

 é um fator de penalidade não negativo.
Construção de uma solução
inicial:
 Fase de construção do método GRASP
(Procedimento de busca adaptativa
gulosa e randomizada).

{0-2-1-6-...}.
Algoritmo da fase de
construção:
 Primeiro passo:
 S={0}.
 Lista_de_Candidatos = ordenar (V \ {s} ).
 Critério de ordenação relativo à distância de cada
um ao último elemento adicionado à solução.
 Esse processo de seleção é uma heurística
adaptativa gulosa, que estima o benefício da
seleção de cada um dos elementos.
 A heurística é adaptativa porque os benefícios
associados com a escolha de cada elemento são
atualizados em cada iteração da fase de
construção para refletir as mudanças oriundas da
seleção do elemento anterior.
Algoritmo da fase de
construção:
 Selecionar de forma aleatória a partir da lista
de candidatos restrita (LCR).


A LCR é composta pelos melhores candidatos de
LC.
O tamanho da LCR é definido segundo um fator 
 [0,1], tal que |LCR| =   |LC|.
 Se o consumidor selecionado exceder a
capacidade do veículo insere-se um zero na
solução, relativo ao depósito, significando o fim
de uma rota e início de outra.


{0-2-3-1-?} C = 5. som(2+3+1+5) > q
=> {0-2-3-1-0-5}.
Método de Pesquisa em
Vizinhança Variável:
 O Método de Pesquisa em Vizinhança Variável,
conhecido como VNS (do termo em inglês
Variable Neighborhood Search) é um método de
busca local proposto por Mladenovic & Hansen
(1997) que consiste em explorar o espaço de
soluções através de trocas sistemáticas de
estruturas de vizinhança.

Não segue uma trajetória, mas explora vizinhanças
gradativamente mais “distantes” da solução
corrente.
procedimento VNS(s, t);
1
enquanto ( tempo_execução < t )
2
k  1;
3
enquanto ( k <= 10 )
4
escolha(k)
5
1: s’vizinho_qualquer(s, N1);
6
2: s’vizinho_qualquer(s, N2);
7
3: s’vizinho_qualquer(s, N3);
8
4: s’vizinho_qualquer(s, N4);
9
5: s’vizinho_qualquer(s, N5);
10
6: s’vizinho_qualquer(s, N5);
11
7: s’vizinho_qualquer(s, N6);
12
8: s’vizinho_qualquer(s, N6);
13
9: s’vizinho_qualquer(s, N6);
14
10: s’vizinho_qualquer(s, N6);
15
fim escolha;
16
s’VND(s’);
17
se ( f(s’) < f(s))
18
s  s’;
19
k  1;
20
senão
21
k  k + 1;
22
fim-se;
23
fim enquanto;
24
fim enquanto;
25
Retorne s;
{Retorne a melhor solução}
fim VNS;
Figura 1: Método VNS aplicado ao PRV.
Método de Descida em
Vizinhança Variável:
 O Método de Descida em Vizinhança Variável,
conhecido como VND (do termo em inglês
Variable Neighborhood Descent) é um método
de busca local proposto por Mladenovic &
Hansen (1997) que consiste em explorar o
espaço de soluções através de trocas
sistemáticas de estruturas de vizinhança,
aceitando somente soluções de melhora da
solução corrente e retornando à primeira
estrutura quando uma solução melhor é
encontrada.
Método de Descida em
Vizinhança Variável:
 Por explorar sistematicamente toda a
estrutura de vizinhança foram
consideradas apenas as estruturas de
vizinhança N1 e N2.
 As pesquisas nas estruturas de
vizinhança N3 a N6 , por terem alta
complexidade, e implicam na
degradação da performance do método
de busca local.
procedimento VND(s);
1 s’ s;
2 k  1;
3 enquanto ( k <= 2 )
4
escolha(k)
5
1: s’descida_1opt(s’);
6
2: s’ descida_2opt (s’);
7
fim escolha;
8
se ( f(s’) < f(s))
9
s  s’;
10
k  1;
11
senão
12
k  k + 1;
13
fim-se;
14 fim enquanto;
15 Retorne s;
{Retorne a melhor solução}
fim VND;
Figura 2: Método VND aplicado ao PRV.
Método proposto:
procedimento GRASP_VNS(, t);
1
s  ConstruaSolucaoInicial();
2
s  VNS(s, t);
3
Retorne s;
{Retorne a melhor solução}
fim GRASP_VNS;
Figura 3: Método proposto.
Alguns testes:
T
e
s
t
e
Instância
1
GRASP_VNS
#
cid
Cap.
vei.
Melhor
Valor
conhecido
c50.dat
50
160
524.61
150
2
c50.dat
50
160
524.61
3
c50.dat
50
160
4
c75.dat
75
5
c75.dat
75
Tempo
CPU (seg)

Melhor Valor
Valor Médio
Desvio
(%)
#
veic
*
Média
# veic
0,01
524.61
532.87
1.57
5
5
150
0,35
527.67
545.99
4.07
5
5.44
524.61
300
0,35
524.61
541.24
3.17
5
5.28
140
835.26
300
0,01
842.96
865.56
3.62
10
10.96
140
835.26
150
0,35
844.44
875.54
4.82
11
10.92
Todos os experimentos foram realizados em um PC com processador Pentium
IV, de 1.8 GHz, 512 MB de RAM rodando a plataforma Windows XP.
 f  f 100
*
Desvio =
f*
http://ina.eivd.ch/collaborateurs/etd/problemes.dir/vrp.dir/vrp.html
Conclusões:
 Geração de diferentes estruturas de
vizinhança que devem ser usadas em
uma ordem progressiva de
complexidade.
 O método proposto requer poucos
parâmetros, basicamente o fator de
aleatoriedade relativo à construção de
uma solução inicial, o tempo de
processamento e a seqüência de
estruturas de vizinhança.
Conclusões:
 A partir desses parâmetros pode-se representar
características do problema que irão guiar o
método e muitas vezes determinar a qualidade
da solução.

Por exemplo, partindo de um conhecimento prévio
do problema onde os consumidores estão
agrupados em regiões distantes entre si
(clustered), é conveniente adotar um critério de
baixa aleatoriedade na construção da solução
inicial. Em outros, um índice de aleatoriedade um
pouco mais elevado resulta em soluções finais de
melhor qualidade na média.
Download

S - Decom