Post on 03-Oct-2018
HEURÍSTICAS HÍBRIDAS PARA O
PROBLEMA DE ROTEAMENTO DE
VEÍCULOS COM COLETA E ENTREGA
SIMULTÂNEAS E JANELA DE TEMPO
Leonardo Pereira Valadão Lopes (Universidade Candido Mendes)
lpvlopes@gmail.com
Dalessandro Soares Vianna (Universidade Federal Fluminense)
dalessandro@pq.cnpq.br
Marcilene de Fátima Dianin Vianna (Universidade Estadual Norte
Fluminense)
marcilenedianin@gmail.com
Este artigo propõe um estudo comparativo entre metaheurísticas
GRASP e Algoritmos Genéticos quando aplicados para solucionar de
forma aproximada o problema de Roteamento de Veículos com Coleta
e Entrega Simultânea e Janela de Tempo. Estee problema tem sua
origem no clássico problema de roteamento de veículos (VRP -
Vehicle Routing Problem) com a abordagem de sucessivos itens tais
como demanda por coleta e entrega de carga, com a possibilidade de
simultaneidade ( VRPPD - Vehicle Routing Problem with Pickup and
Delivery) e a adequação destas entregas e coletas aos intervalos de
atendimento dos pontos da rota (VRPTW - Vehicle Routing Problem
with Time Window). O objetivo é determinar o conjunto de rotas a
serem percorridas pelos veículos de forma a minimizar o custo total de
transporte. A heurística GRASP proposta utiliza como mecanismo de
busca local uma heurística VND que utiliza diferentes estruturas de
vizinhanças. Neste trabalho são abordadas três destas estruturas, a
saber, 2-Optimal, Intercâmbio e Realocação. Os algoritmos genéticos
utilizam Reconexão por Caminhos como operadores genéticos de
cruzamento.
Palavras-chaves: GRASP, VND, Algoritmo genético, Reconexão por
caminho
5, 6 e 7 de Agosto de 2010
ISSN 1984-9354
VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável
Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010
2
1. Introdução
O Problema de Roteamento de Veículos com Coleta e Entrega Simultânea e Janela de
Tempo (PRVCESJT), que se caracteriza pela inserção de diversos itens de demanda e
restrição ao clássico problema de roteamento de veículos, pode ser aplicado de forma prática a
diversas necessidades das mais variadas empresas. A abordagem deste trabalho toma como
exemplificação prática a necessidade de abastecimento de produtos ou passageiros através de
veículos.
O presente trabalho aborda o caso de coleta e entrega simultânea de materiais com
janela de tempo, onde a demanda de um cliente é composta de cargas para entrega e ou coleta
e que devem ser executadas entre um intervalo de tempo adequado a cada cliente atendido.
O objetivo maior deste trabalho é obter um conjunto de sub-rotas atribuídas a
diferentes veículos que atenda de forma otimizada, menor distância total percorrida, a
demanda dos clientes segundo uma planilha de execução, considerando ainda a faixa de
tempo especificada para atendimento por cliente (janela de tempo). É considerada uma única
janela de tempo por cliente.
Entendendo-se o PRVCESJT como uma extensão do problema NP-difícil PRV
(LENSTRA, 1981), é correto afirmar que não é adequado o uso de algoritmos exatos para a
solução do problema (MIN, 1989). Portanto, na literatura têm sido utilizados métodos
baseados em metaheurísticas para solução destes problemas, tais como Montané (2006) e
Vianna(1999). As metaheurísticas são métodos que visam encontrar soluções aproximadas
através de procedimentos de busca em vizinhanças que objetivam estender o processo de
busca para além de um mínimo local.
Este trabalho propõe solucionar o PRVCESTJ, objetivando minimizar a distância
percorrida pelos veículos, expondo um comparativo de resultados entre a aplicação da
heurística GRASP com VND e algorítmos genéticos com reconexão de caminhos.
O presente artigo encontra-se organizado da seguinte forma: na Seção 2 é apresentado
VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável
Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010
3
a abordagem do problema. Na Seção 3 descreve-se a heurística GRASP com busca local
baseada na heurística VND. Na Seção 4 descreve-se o algoritmo genético com reconexão por
caminhos. Na seção 5 são demonstrados os resultados comparativos.
2. Problema abordado
Existe uma grande variedade de Problemas de Roteamento de Veículos. O problema
clássico de roteamento de veículos (PRV) é definido da seguinte maneira: veículos com
capacidade fixa Q devem sair do depósito (i = 0) e atender as demandas qi (i=1, ..., n) de n
clientes. Conhecendo a distância dij entre os clientes i e j (i, j = 0,...,n), o objetivo é minimizar
a distância total percorrida pelos veículos, de tal maneira que apenas um veículo atenda a
demanda de um dado cliente e que a capacidade Q dos veículos não seja violada. Este
problema considera apenas um tipo de demanda, entrega ou coleta.
O PRVCESJT inclui restrições ao problema clássico de roteamente de veículos,
podendo ser definido como um conjunto de n clientes, cada qual com uma demanda de coleta
Ci e de entrega Ei que devem ser cumpridas em um determinado intervalo de Tempo Hini-
Hfimi ; e um depósito com um conjunto de m veículos com capacidade Q. Desta forma tem-
se:
n: número de clientes que podem demandar entrega e/ou coleta de materiais;
m: número de veículos;
Q: capacidade de cada veículo;
Ci : demanda de coleta do cliente i;
Ei : demanda de entrega do cliente i;
Hini: Horário inicial para atendimento no cliente i;
Hfimi: Horário final para atendimento no cliente i.
Cada veículo deve sair do depósito (i = 0) e atender demandas Ci e Ei (i=1, ..., n) dos
clientes de acordo com sua capacidade, janela de tempo e conhecendo a distância dij entre os
clientes i e j (i, j = 0, ..., n).
VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável
Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010
4
O objetivo é determinar o conjunto de rotas que deverão ser percorridas pelos
veículos, minimizando o custo total de transporte, dado pela distância total das rotas, e
atendendo as seguintes condições:
Cada rota começa e termina no depósito.
Todo cliente i é visitado somente uma vez por somente um veículo que deverá
cumprir integralmente a demanda de entrega e ou coleta.
A demanda total de qualquer rota não deve superar a capacidade do veículo que a
atende.
O cliente só pode ser visitado dentro do intervalo de tempo permitido (janela de
tempo).
Os problemas de roteamento de veículos têm sua origem no tradicional problema do
caxeiro viajante (TSP), mais especificamente, para o caso abordado, em um problema de
caixeiro viajante múltiplo (m-TSP), onde cada veículo executa sua rota completa com ponto
de saída e chegada comuns (origem), respeitando ainda um conjunto de restrições de carga
(entrega e coleta) e de tempo (janela de tempo dos clientes). Alguns algoritmos exatos e
aproximados são apresentados (LAPORT, 1992) para TSP simétricos. Outros autores (LIN,
1965; LIN & KERNIGHAN, 1973) desenvolvem melhoramentos através de heurísticas
baseadas em r-OPT e Or-OPT. A implementação da heurística Lin-Kernighan
(HELSGAUN,2000) é descrita como um dos melhores métodos para o TSP simétrico.
O problema de roteamento de veículos considerando entrega e coleta (TSPPD) é
abordada em (GENDREAU, 1999).
A junção de janela de tempo ao TSPPD (TSPPDTW) com características particulares
(entregas e coletas não simultâneas) é descrita em (DERIGS, 1992).
3. Heurística GRASP
A heurística GRASP (Greedy Randomized Adaptive Search Procedure) (FEO &
RESENDE, 1995; RESENDE & RIBEIRO, 2003) é uma método de múltiplas partidas, na
VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável
Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010
5
qual cada iteração consiste de duas fases: uma fase de construção onde uma solução inicial
viável é construída utilizando um algoritmo guloso randomizado; e uma fase de busca local
onde um ótimo local na vizinhança da solução inicial é pesquisado. A melhor solução é
definida como resultado.
O pseudocódigo da heurística GRASP é mostrado na Figura 1. O procedimento recebe
como parâmetro de entrada o tempo limite de execução do algorítmo. Na fase de construção
implementa-se uma heurística construtiva (descrita na Subseção 3.1). A fase de busca local
(descrita na Subseção 3.2) é baseada na heurística VND (Variable Neighborhood Descent)
que consiste em explorar o espaço de soluções através de trocas sistemáticas de estruturas
vizinhas.
Figura 1: Algoritmo GRASP.
3.1 Heurística de Construção
A Heurística de Construção é representada pelo pseudocódigo Construção_GRASP
descrito na Figura 2. Este processo de construção consiste na definição de uma rota inicial
contendo todos os clientes e com partida e chegada no depósido (cliente 0). Com base nesta
rota inicial são construídas sub-rotas viáveis, uma para cada veículo, através do procedimento
Gera_Rotas descrito na Figura 3.
A rota inicial é gerada a partir de instâncias criadas randomicamente, e ordenadas pelo
item janela final de tempo de cada cliente. Estas instâncias encontram-se gravadas em
Procedimento GRASP(TempoLim);
inicio
1. s0 ;
2 f(s0) ;
3. enquanto tempo de execução < TempoLim faça
4. s Construção_GRASP( s0); // Solução inicial s’
5. s’ VND(s); // Busca local, retorna s’
6. Se f(s’) < f(s0) então
7. s0 := s’;
8. fim enquanto;
9. Retorne s0;
fim GRASP;
VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável
Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010
6
arquivos textos para viabilizar a reutilização das mesmas, possibilitando assim, verificar
comparativamente os resultandos.
A rota inicial é utilizada como ponto de partida para a construção de rotas (sub-rotas)
viáveis. Todo início de sub-rota é marcado pelo registro do cliente 0 (ponto de partida). A
partir do primeiro cliente, cliente 1, inicia-se a viabilização das sub-rotas até que se inclua
todos os N clientes que compõem o tour inicial. Uma sub-rota, que representa um veículo com
capacidade Q de transporte, entende o cliente i como viável para inserção a partir do momento
que esta inclusão atenda aos controles de capacidade de demanda de coleta do cliente i (Ci) e
capacidade de demanda de entrega do cliente i (Ei), que devem respeitar a capacidade máxima
de transporte Q do veículo. Ainda faz-se necessário para aceitação do cliente i na sub-rota a
validação da janela de tempo. Nesta, o horário de saída do cliente anterior, cliente i-1,
adicionado ao tempo real de deslocamento até o cliente em análise, cliente i, não deve ser
superior ao horário de término da janela de tempo deste cliente (Hfimi).
Figura 2 : Algoritmo Construção_GRASP.
Na descrição da heurística Gera_Rotas, é utilizada a seguinte notação:
Mj: Sub-rota j, com j = 1..m;
Te: Acumulado das Entregas (Ei) de uma veículo. Te =
z
i
Ei1
;
Tc: Acumulado das Entregas (Ei) de uma veículo. Tc =
z
i
Ci1
;
Fe: valor de folga de entrega de carga disponibilizado para o estudo de viabilidade do
clientei, onde Fe = Q – Te.
Fc: valor de folga de coleta de carga disponibilizado para o estudo de viabilidade do
clientei, onde Fc = Q – Tc.
Procedimento Construção_GRASP(s0)
Início
1. s Random (s0);
2. s Ordenarota(s, Hfim)
3. M Gera_Rotas (s);
4. Retorne M;
Fim Construção_GRASP;
VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável
Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010
7
cv(i): controle de inclusão do cliente(i). Se cv(i) = 1 significa que o clientei já foi
incluído em alguma sub-rota. Se cv(i) = 0 significa que o clientei ainda não foi
incluído;
avance(i): corresponde a lógica de busca do próximo cliente. Nesta, a partir do cliente
atual, é realizado um salto randomico, não superior a 10% da quantidade total de
clientes. Localizado o próximo cliente, é feito o estudo de viabilidade de sua inserção
na sub-rota vigente. Independente de sua inclusão ou não, um vetor de controle, na
posição correspondente ao cliente analisado recebe o valor 1, indicando que o cliente
já foi analisado para esta sub-rota específica. O processo termina quando todos os
clientes foram testados para a mesma sub-rota. Este procedimento é identificado no
código fonte deste trabalho como FracionaRota().
Nova_sub-rota(j): inicializa nova sub-rota para atender aos clientes não contemplados
pelas sub-rotas anteriores.
Para o estudo de viabilidade de inserção de um cliente em uma sub-rota considera-se
que para cada veículo(j) é gerada uma sub-rota da rota completa original (s) denominada
Mj.
Figura 3: Algoritmo Gera-Rotas.
Procedimento Gera_Rotas (s,Cliente0,N)
Inicio
1. Para cada início de sub-rota Mj, Mj,0 = Cliente0;
2. Enquanto não incluir todos os clientes
3. Fc = Q;
4. Te = 0;
5. i = 1;
6. Se cv(i) = 1, avance(i)
7. Senão
8. Verifica se Hora_chegada() <= Hfimi.
9. Verifica se Ei <= Fe
10. Verifica se Ci <= Fc
11. Verifica BackingVector(k)
12. Insere clientei na sub-rota j.
13. Avance(i).
14 Fim-se
15. Repetir passo 06 enquanto não visitar todos clientes
16. Nova_sub-rota(j)
17. Fim Enquanto.
Fim Gera_Rotas
VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável
Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010
8
Uma vez que todas as cargas entregues saem obrigatoriamente do ponto de partida
(cliente0), temos Te =
z
i
Ei1
<=Q, caso contrário, o veículo teria de partir com carga superior
a Q (capacidade máxima de carga) para atender a todos os clientes estabelecidos por sua rota.
Uma vez verificados os valores de folga Fc e Fe no processo de análise de viabilidade
dos clientes em uma sub-rota, é possível então definir que a quantidade efetiva de carga que
sai do ponto de partida (cliente0) corresponde a capacidade máxima do veículo menos a folga
calculada até o último cliente (clientez) da rota deste veículo. Qefetiva = Q - Ffinal.
Esta formulação leva em consideração que nenhuma carga coletada fora do ponto
inicial (cliente0) pode ser entregue a outros clientes, senão ao próprio cliente0 quando na
função de ponto final da rota.
A análise de viabilidade do cliente deve também levar em consideração o controle
promovido pelo BackingVector(k), Figura 4, onde para cada clientei avaliado para inserção na
sub-rota, é calculado o novo valor de Te = Te (antigo) + Ei. A este novo valor são adicionados
todos os elementos constantes, até o momento, no vetor BackingVector(k). O valores
resultantes durante o processo não podem ultrapassar o valor da capacidade máxima Q de
cada veículo.
Desta forma temos que Max{Te + Ei + BackingVector(p)} <= Q, para p = 1..k-1.
Figura 4: BackingVector.
Em conjunto à viabilização das cargas, deve-se ainda validar a janela de tempo do
clientei (cliente sob análise para inclusão).
VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável
Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010
9
Considerando-se que o último cliente viabilizado na rota do veículo foi o clientei-1,
quando da análise de janela de tempo do clientei, deve-se levar em consideração os seguintes
elementos:
Hatual: Hora atual. Corresponde a hora de partida (saída do veículo) do clientei-1.
Ft: Fator tempo. Corresponde a média de velocidade atribuída ao veículo durante o
percurso de clientei-1 até clientei. A unidade padrão é Km/h.
Ta: Tempo de atendimento. Corresponde ao tempo necessário para a operação de
entrega e de coleta no clientei.
Disti: Distância em quilômetros entre o clientei-1 e o clientei.
Hseg: Hora seguinte. Corresponde a hora calculada para análise de viabilidade de
janela de tempo do clientei. Hseg = ( Disti * Ft ) + Ta .
Hfimi: Horário final da janela (Hini : Hfimi ) referente ao clientei.
Para a viabilização da janela de tempo do cliente(i) faz-se necessário que Hseg <=
Hfimi.
A Tabela 1 representa a heurística de viabilização de sub-rota segundo os critérios de
capacidade de carga para coleta e entrega. Neste exemplo é considerado que cada veículo
possui capacidade Q = 20, sendo que são considerados N = 9 clientes.
Tabela 1 – Exemplificação de validação de inclusão de cliente em uma sub-rota.
I 0 1 2 3 4 5 6 7 8 9
Ei - 7 6 4 8 7 4 1 1 8
Ci - 5 8 0 6 2 5 4 1 4
Te - 7 13 17 17 17 19 19 20 20
Tc 5 13 13 13 13 18 18 19 19
Fe 20 13 7 3 3 3 1 1 0 0
Fc 20 15 7 7 7 7 2 2 1 1
Cv(i) 1 1 1 1 0 0 1 0 1 0
VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável
Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010
10
A Figura 5 mostra o BackingVector correspondente ao exemplo descrito na Tabela 1.
Figura 5: BackingVector para o exemplo.
3.2 Busca Local Baseada na Heurística VND
A heurística VND (MLADENOVIC & HANSEN, 1997) é um método de busca local
que consiste em explorar o espaço de soluções através de trocas sistemáticas de estruturas de
vizinhança. O método utiliza uma estrutura de vizinhança principal visando melhorar a
solução corrente. Quando isto não é mais possível, o método troca a vizinhança corrente por
outra. O procedimento retorna a vizinhança principal quando uma melhor solução é
encontrada. O algoritmo termina após utilizar todas as estruturas de vizinhança sem
conseguir melhorar a solução corrente. No presente trabalho é implementada uma heurística
VND convencional (MLADENOVIC & HANSEN, 1997), que utiliza o tempo de execução
como critério de parada e na qual são utilizados os seguintes movimentos para gerar as
vizinhanças:
Movimento 2-OPT: O movimento 2-optimal, classificado como intra-rotas, consiste
na possível torca de dois arcos, não consecutivos, de uma rota, inserindo-os
novamente de forma cruzada. No exemplo descrito pela Figura 6, os arcos io e jb têm
suas extremidades trocadas gerando os novos arcos ij e ob. A nova rota será mantida
se seu respectivo custo for menor que o custo da rota original e se todos os requisitos
de restrição do modelo, tais como, demandas de entrega e coleta e janela de tempo
forem atendidos. O procedimento de inserção de forma cruzada recebe neste trabalho
o nome de Flip.
VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável
Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010
11
Figura 6 – 2-OPT
Movimento de Intercâmbio: Classificado como movimento inter-rotas, consiste em
intercambiar dois clientes de rotas distintas. No exemplo descrito pela Figura 7, o
cliente g situado entre os arcos ig e gO de uma rota é torcado com o cliente j setuado
entre os arcos hj e jO de uma outra rota. Desta forma passa-se a ter em uma rota os
arcos ij e jO e em outra rota os arcos hg e gO.
Figura 7 - Intercâmbio.
Movimento de Realocação: Classificado como movimento inter-rotas, consiste em
transferir um cliente de uma rota para outra, podendo ainda acontecer a extinção de
rotas. No exemplo descrito na Figura 8, o cliente a é excluido de sua rota. Desta forma
os arcos ba e ad são substituiddos por um único arco bd. O cliente a é então incluido
na outra rota e onde antes existia o arco iO agora existem os arcos ia e aO.
Figura 8 - Realocação.
VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável
Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010
12
Na Figura 9 é mostrado o pseudocódigo da heurística VND usada na fase de busca
local da heurística GRASP.
Figura 9: Heurística VND: Busca Local do GRASP.
4. Algoritmo Genético
A Computação Evolucionária foi introduzida em 1960 por I. Rechenberg com seu
trabalho "Estratégias de Evolução" (Evolutions strategie no original).
Os algoritmos genéticos (AG) que utilizam processo evolucionário e têm como base
referencial a teoria da evolução de Darwin, foram desenvolvidos por John Holland que os
definiu no livro "Adaption in Natural and Artificial Systems" (HOLLAND, 1975).
Para a execução de um algoritmo genético padrão, conforme Figura 10, é necessário,
em primeiro lugar, gerar uma população inicial. Esta população é composta por um
determinado número de indivíduos (cromossomos), onde cada um representa uma solução,
devidamente valorada, para o problema abordado.
Procedimento VND(s)
Inicio
1. Seja s0 uma Solução Inicial
2. s s0; // Solução corrente
3. r 3; // Número de vizinhanças consideradas
4. k 1; // Tipo da vizinhança corrente
5. enquanto (k ≤ r) faça
6. Encontre o melhor vizinho s’ Nk(s);
7. se f(s’) < f(s)
8. então s s’;
9. k 1; // primeira vizinhança
10. senão k k + 1; // próxima vizinhança
11. fim-se;
12. fim-enquanto;
13. Retorne s;
Fim VND;
VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável
Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010
13
Figura 10: Algoritmo Genético Padrão.
A população inicial é comumente criada através de método aleatório de geração de
indivíduos. Em geral são incorporados critérios previamente estabelecidos como critérios
restritivos para validação de cada indivíduo. Na busca de uma melhor qualidade da população
inicial gerada, tem-se aplicado heurísticas construtivas aleatorizadas para esta função.
O próximo passo é a seleção dos indivíduos que pode ser feita de forma totalmente
aleatória. Outra opção seria a roleta russa, onde é atribuído a cada indivíduo uma
probabilidade de ser selecionado proporcional ao seu valor em relação a soma dos valores de
todos os indivíduos. Pode-se destacar também a seleção baseada em classificação, onde a
probabilidade de seleção de um indivíduo está relacionada a sua respectiva posição segundo o
critério de ordenação da população.
O valor de cada indivíduo é definido através de uma função de avaliação, também
chamada de equação de fitness, que contempla todas as restrições e critérios de qualificação
propostos pela função objetivo do problema proposto.
Os indivíduos selecionados serão submetidos a operadores genéticos, tais como a
mutação que é a troca aleatória de material genético de um individuo. Outro operador
genético utilizado é o cruzamento.
O cruzamento é a combinação de dois ou mais indivíduos da população para a criação
Procedimento Genético(tamPop, maxIter);
inicio
1. f* ;
2 Para i=1 até tamPop faça
3. gera individuo
4. fim para
5. Para j=1 até maxIter faça
6. Selecione indivíduos
7. Aplique operadores genéticos
8. Avalie novos indivíduos
9. Se existir nova solução s com custo inferior a f* então
10. s* s;
11. f* custo da solução s;
12. fim se
13. fim para;
14. Retorne s*;
fim Genético;
VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável
Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010
14
dos novos filhos. O operador de cruzamento mais comumente utilizado é o cruzamento de um
ponto, que possui como extensão direta o cruzamento de dois pontos. No primeiro seleciona-
se uma posição de corte na sequência genética do individuo e realiza-se o cruzamento, em X,
do material genético dos pais, gerando assim, novos filhos.
A cada geração todos os novos indivíduos são novamente avaliados e classificados.
Este processo se repete até que se alcance uma condição pré-estabelecida de término.
A solução escolhida é o indivíduo que se encontra no topo da classificação da
população, ou seja, o indivíduo mais adaptado ao problema proposto.
4.1 Algoritmo genético com reconexão por caminho
A reconexão por caminho consiste na exploração de soluções intermediárias que
conectam soluções de alta qualidade. Esta técnica consiste na seleção de uma solução inicial e
uma solução guia. A solução inicial sofrerá modificações em sua vizinhança, que serão
analisadas a cada passo, sempre objetivando alcançar a solução guia. Com este procedimento
a solução inicial vai incorporando atributos da solução guia e o melhor movimento é
selecionado.
Figura 11: Algoritmo de Reconexão por caminho padrão.
A Figura 11 apresenta um algoritmo de reconexão por caminho padrão que será
aplicado como cruzamento no momento algoritmo genético desenvolvido.
Procedimento ReconexãoPadrão(Sinicial , Sguia);
inicio
1. f* ;
2 S Sinicial ;
3. Enquanto S ≠ Sguia ;
4. Movimento de vizinhança de S em direção a Sguia;
5. Avalie nova solução S;
6. Se f(S) < f*
7. S* S;
8. f* f(S);
9. Fim se
10. Fim enquanto
11. Retorne S*;
Fim ReconexãoPadrão
VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável
Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010
15
4.2 Algoritmo genético com reconexão por caminho
O algoritmo genético aplicado ao problema é desenvolvido conforme Figura 12.
A população inicial possui tamanhos tamPop que variam entre 100, e 200 e é gerada
através do algoritmo Gera-População( ).
Figura 12: Algoritmo Genético desenvolvido.
Após gerar a população é aplicado a heurística 2-OPT a cada indivíduo e em seguida
realiza-se a ordenação dos mesmos em ordem crescente de custo (minimização de rota).
O critério de parada do algoritmo genético é estabelecido segundo seu tempo de
execução.
Na construção de cada nova geração é utilizado o seguinte critério:
copiar os 20% melhores indivíduos;
gerar 70% de novos indivíduos utilizando path-relinking (reconexão por caminho) no
operador cruzamento;
Gera População Ordena População
Copia 20% dos melhores
indiv. para a nova população
Gera 70% de novos
indivíduos via Path-relinking
Gera 10% de novos indiv.
Randomicamente
+ 2-OPT
Copia a nova
população para a
população atual
Ordena População Condição
Parada
2-OPT
Fim
S
N
VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável
Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010
16
gerar 10% de novos indivíduos pelo algoritmo GeraPopulação. É aplicado 2-opt
nestes novos indivíduos;
ordenar nova população.
A seleção dos indivíduos para aplicação dos operadores genéticos é feita via roleta
russa, onde é atribuído a cada indivíduo uma probabilidade de ser selecionado, proporcional
ao seu valor em relação ao soma dos valores de todos os indivíduos.
São utilizados dois operadores de cruzamento denominados pathrelinking1 e
pathrelinking2. Em ambos os casos pode-se exemplificar o Path Relinking como a seguir:
Dado duas soluções genéticas, Xinicial e Xguia, conforme Figura 13.
Figura 13: Solução inicial e solução guia para realizar Path relinking.
Sabendo-se que cada solução genética (cromossomo) corresponde a uma sequência de
codificação numérica de todos os clientes, deve-se selecionar um elemento (cliente) de Xinicial
(Posição A) e localizá-lo em Xguia (Posição B), conforme Figura 14.
Figura 14: Localização dos pontos de permuta.
Em seguida é feito a permuta entre os elementos nas posições A e B em Xinicial,
gerando assim a próxima solução genética X1, mais próxima a Xguia, conforme Figura 15.
VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável
Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010
17
Figura 15: Novo par de soluções para Path Relinking.
O que diferencia os operadores é que o pathrelinking1 seleciona aleatoriamente o
elemento da solução Xn para busca em Xguia. Já o operador pathrelinking2 testa todos os
elementos da solução Xn para determinar o melhor movimento na busca de Xguia.
É aplicado 2-OPT em toda solução modificada pelo operador de cruzamento.
Terminado o tempo de execução do algoritmo genético, é selecionado o melhor
indivíduo da última geração para execução da função Fraciona_Rotas( ), que é uma
adaptação, para o algoritmo genético, da função Gera_Rotas( )..
A função Fraciona_Rotas( ) constrói a solução final composta de sub-rotas derivadas
da solução geral proposta pelo algoritmo genético.
5. Resultados
Para cada algoritmo desenvolvido, a saber VND, Algoritmo Genético 1 com
reconexão de caminho por pathrelinking1 e Algoritmo Genético 2 com reconexão de caminho
por pathrelinking2, são aplicados testes com rotas de 100 e 200 pontos em intervalos de
tempo de execução de 30segundos, 3 minutos e 10 minutos.
Objetiva-se com esta parametrização demonstrar a relação de performance de cada
algoritmo em relação ao tamanho do problema e tempo disponibilizado para execução do
algoritmo.
Para a análise mais detalhada dos objetivos propostos é apresentada a Tabela 2
constituída dos valores médios de custo das rotas definidas pelas instâncias. Cada evento
(linha da tabela 2) foi executado 5 vezes viabilizando então o cálculo de sua respectiva média.
VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável
Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010
18
Conforme Figura 16 o Algoritmo Genético 1 apresentou melhores resultados em
relação ao Algoritmo Genético 2 quando executados em pequenos tempo de execução. A
medida que o tempo de execução cresce, aumenta a performance do Algoritmo Genético 2 em
Relação ao Algoritmo Genético 1.
Tabela 2 – Valores médios das rotas segundo instancias, pontos e tempo de execução.
0,00
500,00
1000,00
1500,00
2000,00
2500,00
3000,00
30 seg 3 min 10 min
M édia GRASP VND
M édia Genético 1
M édia Genético 2
Figura 16: Performance de execução para 100 pontos
Uma vez que o Algoritmo Genético 2 executa um trabalho mais exaustivo de
cruzamento, o aumento do número de pontos interfere a favor da performance do Algoritmo
Instancias Nº de Pontos Tempo. Exec. Média VND Média Genético 1 Média Genético2
In0100_0001 100 30 seg. 3309,41 2338,78 2233,16
In0100_0002 100 30 seg. 3168,96 2244,26 2323,37
In0100_0003 100 30 seg. 3188,25 2172,48 2371,67
In0100_0001 100 3 min. 3282,90 2240,70 2211,75
In0100_0002 100 3 min. 3217,50 2331,59 2262,57
In0100_0003 100 3 min. 3131,86 2328,03 2267,63
In0100_0001 100 10 min. 3231,00 2164,29 2092,57
In0100_0002 100 10 min. 3061,11 2116,47 2140,27
In0100_0003 100 10 min. 3256,89 2262,18 2280,94
In0200_0001 200 30 seg. 5748,58 4117,82 4383,76
In0200_0002 200 30 seg. 5688,64 4096,37 4242,01
In0200_0003 200 30 seg. 5567,08 4026,74 4244,75
In0200_0001 200 3 min. 5600,63 4045,89 4118,11
In0200_0002 200 3 min. 5648,28 3988,15 4077,19
In0200_0003 200 3 min. 5627,09 3993,00 4086,30
In0200_0001 200 10 min. 5595,44 3796,66 3887,41
In0200_0002 200 10 min. 5598,11 3626,72 3656,26
In0200_0003 200 10 min. 5446,58 3646,69 3916,81
VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável
Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010
19
1. Como consequencia pode-se visualizar que, conforme Figura 17, o aumento de tempo de
execução pode não implicar necessariamente em uma melhoria de performance do Algoritmo
Genético 2 em relação ao Algoritmo Genético 1.
0,00
1000,00
2000,00
3000,00
4000,00
5000,00
30 seg 3 min 10 min
M édia GRASP VND
M édia Genético 1
M édia Genético 2
Figura 17: Performance de execução para 200 pontos
A Tabela 3 demonstra o comparativo de performance do Algoritmo Genético 2 em
relação ao Algoritmo Genético 1. Desta forma pode-se observar que somente para o caso de
números menores de pontos (100) com tempo maior de execução (3 minutos), o valor médio
do custo de rota quando aplicado o Algoritmo Genético 1 foi menor (-2,30%) do que o custo
de rota quando aplicado o Algoritmo Genético 1.
Tabela 3 – Performance Algoritmo Genético 2 em relação ao Algoritmo Genético 1
N. de
Pontos
Tempo Perc
100 30 seg. 1,08%
100 3 min. -2,30%
200 30 seg. 5,15%
200 3 min. 2,13%
Quando comparada a performance do Algoritmo Genético 1 em relação ao GRASP
VND, conforme Tabela 4, e a performance do Algoritmo Genético 2 em relação ao GRASP
VND, conforme Tabela 5, identifica-se melhor resultado para os genéticos, independente dos
VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável
Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010
20
parâmetros tempo de execução e tamanho de problema.
Tabela 4: Performance Algoritmo Genético 1 em relação ao GRASP
Pontos Tempo Perc.
100 30 seg. -17,28%
100 3 min. -15,15%
100 10 min. -18,71%
200 30 seg. -12,59%
200 3 min. -13,33%
200 10 min. -18,84%
Tabela 5: Performance Algoritmo Genético 2 em relação ao GRASP
Pontos Tempo Perc.
100 30 seg. -16,39%
100 3 min. -17,10%
100 10 min. -21,06%
200 30 seg. -8,10%
200 3 min. -11,49%
200 10 min. -15,98%
Agradecimentos
Este trabalho foi financiado pelo Conselho Nacional de Desenvolvimento Científico e
Tecnológico (CNPq), pela Fundação de Amparo à Pesquisa do Estado do Rio de Janeiro
(FAPERJ), pelo Parque de Alta Tecnologia do Norte Fluminense (TECNORTE) e pela
Fundação Estadual do Norte Fluminense (FENORTE).
Referências
VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável
Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010
21
DERIGS, U.; Metz, A. A matching-based approach for solving a delivery pick-up
vehiclerouting problem with time constraints. OR Spektrum, 14 (2), 91-106, 1992.
FEO, T.A.; RESENDE, M.G.C. Greedy randomized adaptive search procedures. Journal of
Global Optimization 6, 109-133, (1995).
GENDREAU, M.; LAPORTE, G.; VIGO, D. Heuristics for the traveling salesman problem
with pickup and delivery. Computers and Operations Research, v. 26, n. 7, 699-714, 1999.
HELSGAUN, K. An efective implementation of the Lin-Kernighan travelling Salesman
heuristic. European Journal of Operational Research, 126(1), 106-130, 2000.
HOLLAND, J. Adaption in Natural and Artificial Systems. MIT Press, 1975..
LENSTRA, J.; RINNOOY, K.A. Complexity of vehicle routing and scheduling problems.
Networks, 11, 221-227, 1981.
LIN, S. Computer solution of the traveling salesman problem. Bell System Technical
Journal, 44, 2245-2269, 1965.
LIN, S.; KERNIGHAN, B. An efective heuristic algorithm for the travelling salesman
problem. Operations Research, 21, 498-516, 1973.
MIN, H. The multiple vehicle routing problem with simultaneous delivery and pickup points.
Transportation Research A, v. 23, n. 5, 377-386, 1989.
MLADENOVIC, N; HANSEN, P. Variable neighborhood Search. Computers and
Operations Research, v. 24, 1097-1100, 1997.
MONTANÉ, F.A.T.; GALVÃO, R. D. A tabu search algorithm for the vehicle routing
problem with simultaneous pick-up and delivery service. Computers and Operations
Research, v. 33, n. 3, 595-619, 2006.
MOURA,A.; OLIVEIRA,J.F. Uma Heurística Composta para a Determinação de Rotas para
Veículos em Problemas com Janelas Temporais e Entregas e Recolhas, (2004).
OLIVEIRA, H.C.B. Um modelo híbrido estocástico para tratamento do problema de
roteamento de veículos com janela de tempo. Universidade Federal de Pernambuco, 2007.
VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável
Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010
22
RESENDE, M.G.C.; RIBEIRO, C.C. Greedy randomized adaptive search procedures. F.
Glover e G. Kochenberger (Eds.), Handbook of Metaheuristics, Kluwer, 219-249, 2003.
SOSA, N.G.; GALVÃO,R.D.; GANDELMAN,D.A. Algoritmo de busca dispersa aplicado ao
problema clássico de roteamento de veículos, Pesqui. Oper. v.27, n.2, Rio de Janeiro, 2007.
VIANNA, D. S.; OCHI, L. S.; DRUMMOND, L. M. A. A parallel hybrid evolutionary
metaheuristic for the period vehicle routing problem with heterogeneous fleet. Lecture Notes
in Computer Science, 1388, 216-225, 1999.