Resolução do Problema
de Roteamento de
Veículos com Frota
Heterogênea via GRASP
e Busca Tabu
Rodrigo Geraldo Ribeiro
Denis Pinto Pinheiro
Camila Leles Rezende
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,
atendendo todos as cidades.
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 GRASP.



Construção de uma solução inicial parcialmente gulosa.
Aplicar um método de busca local para refinar a solução
inicial.
Refinamento usando Busca Tabu


Baseado em função de avaliação que procura
minimizar as distâncias percorridas.
As estruturas de vizinhança utilizadas na Busca
Tabu e no método de busca local da fase GRASP,
são simples e proporcionam alterações na solução
capazes de escapar de ótimos locais.
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 o custo total da viagem.
Representação dos
consumidores:
Pontos no plano (x,y).
Consumidores:
Identificador,
Demanda.
Depósito:
Num. veículos.
Grafo de representação das cidades
Matriz de Distância:
0
10
15
7
16
0
12
31
20
23
0
18
50
23
19
0
• Nossa proposta de solução é aplicável a problemas assimétricos!
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 de capacidade Q, possivelmente diferentes entre si, 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.

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 duas estruturas de
vizinhança, a saber: N 1, N 2.
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, representa a remoção de um
número inteiro de uma pétala e sua inserção
em uma outra pétala.

Esses números representam os consumidores.
Exemplo das Estruturas de
Vizinhança:

A vizinhança N 1(s) de uma dada solução s é
o conjunto de todos os vizinhos s' gerados
pelo primeiro movimento.


Por exemplo, dada a solução s = {0-3-4-0-1-5-20-6-0}
s' ={0-3-4-0-1-2-5-0-6-0}  N 1(s).
A vizinhança N 2(s) de uma dada solução s é
o conjunto de todos os vizinhos s' gerados
pelo segundo movimento.


Por exemplo, dada s1 = {0-3-4-0-1-5-2-0-6-0}
s’ = {0-4-0-1-5-2-0-3-6-0}
Função Objetivo:


Função objetivo baseada em penalização.
Seja f 1(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) = f 1(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:



Seleciona-se um veículo aleatoriamente.
S =S U {A}. Inicialmente S={ }.
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).



Se o consumidor selecionado exceder a capacidade
do veículo, adiciona-se a distância da cidade do
último consumidor escolhido ao depósito, finalizando
uma rota.


A LCR é composta pelos melhores candidatos de LC.
O tamanho da LCR é definido segundo um fator   [0,1],
tal que |LCR| =   |LC|.
A = {4 – 7 – 15 – 10 – 28 – 13 ... }
Repete-se este procedimento até que todos os
consumidores sejam atendidos.
Fase de Refinamento
• Refinamento via Busca Tabu
• Método de busca local que utiliza
uma estrutura de dados Lista para
evitar ciclagem.
• Função de Aspiração
Algoritmo
Procedimento Grasp_TB () {
para i = 0; i < graspMAX; i++ {
Solucao s = construcao_GRASP ();
buscaLocal(s);
}
s = buscaTabu(s);
retorne s;
}
Resultados
Tipo
Capacidade
Custo
A
300
3
B
150
1
C
200
2
Resultados
Tipo Rota
40-19-41-13-25-14-24-23
B
42-44-15-45-33-10-49-9-50-16
B
4-47-12-46-32-11-38-5-37-17
B
18-6-48-27-1-22-28-31
B
39-30-34-21-29-2-20-35
B
43-7-26-8-3-36
B
Custo Total: 1141
Demanda
141
131
147
128
148
82
Resultados
Tipo Rota
40-19-41-13-25-14-24-43
B
42-44-15-45-33-10-49-9-50-16
B
4-47-12-46-32-11-38-5-37-17
B
18-6-48-27-1-22-31-8
B
39-30-34-21-29-36-35-20
B
23-7-26-28-3-2
B
Custo Total: 1110
Demanda
136
131
147
137
124
102
Conclusão
O problema de roteamento de veículos além de
possuir grande aplicabilidade no mundo real, possui uma
grande complexidade para sua resolução computacional.
Download

Apresentação - DECOM-UFOP