oralotimizaçãoanÁlise de resultados na construÇÃo de
TRANSCRIPT
ANÁLISE DE RESULTADOS NA CONSTRUÇÃO DE ROTA
PARA O PROBLEMA DO CAIXEIRO VIAJANTE
Luiz Antonio Kretzschmar, Luiz Fernando Nunes, Paula Francis Benevides Departamento de Matemática – Universidade Tecnológica Federal do Paraná
Av. Sete de Setembro 3165 Curitiba – PR CEP: 80230-901
E-mails : [email protected] , [email protected] , [email protected]
Deise Maria Bertholdi Costa PPGMNE – Programa de Pós-graduação em Métodos Numéricos em Engenharia
Universidade Federal do Paraná Centro Politécnico – Jardim das Américas CP 19011
Curitiba – PR CEP: 81531-980
E-mail : [email protected]
Resumo : O presente trabalho visa analisar e comparar as rotas reais praticadas por
um representante de vendas durante uma semana e os resultados obtidos com três
heurísticas de construção de rotas e a metaheurística GRASP para o PCV. Também
aplicou-se o algoritmo 2-opt para melhoria das rotas geradas. A partir de um Centro
de Distribuição (CD), de onde o representante sai para o inicio das visitas, estão os
operadores logísticos (mercados, restaurantes, lanchonetes, etc.) que são os
compradores/receptores dos produtos. O transporte, em geral, possui um custo muito
elevado, comparado a qualquer outra atividade logística. Por isso, muitas empresas
estão revendo seus métodos para minimizar os custos em geral. A otimização da
distribuição de produtos é um problema estudado há muito tempo por pesquisadores
de diversas áreas. Este tipo de problema é classificado como de otimização
combinatória. Dentre as modelagens podem ser citados o Problema do Caixeiro
Viajante (PCV) e o Problema de Roteamento de Veículos (PRV). Estes, tem por
objetivo encontrar o menor caminho conectando-se N lugares de destino. O problema
consiste em visitar todos os clientes programados, assim como transportar as caixas
do depósito até os operadores logísticos, utilizando um roteiro com o menor custo
possível.
1 PROBLEMA DO CAIXEIRO VIAJANTE O Problema do Caixeiro Viajante (PCV) consiste em estabelecer uma única rota
que passe por cada nó de um grafo, uma e apenas uma vez, retornando ao nó inicial no
final do percurso. Este roteiro Hamiltoniano deve ser feito de modo que a distância
total percorrida seja mínima. O conjunto de rotas possíveis é o resultado de todas as
combinações possíveis e pode ser calculado por )!1n( , sendo n o número de nós.
Este problema pertence à classe de problemas conhecida por NP-Hard, isto é, não
existem algoritmos com limitação polinomial capazes de resolvê-lo. Assim a
quantidade de passos de um algoritmo que possa solucioná-lo otimamente não pode
ser dada por uma função polinomial do tamanho de sua entrada. Logo, apenas os
problemas de pequeno porte podem ser solucionados de forma ótima. Problemas
maiores tornam-se inviáveis através dos métodos exatos, haja visto o esforço
computacional que seria exigido. Muitas abordagens de algoritmos heurísticos, que
fornecem soluções factíveis próximas da ótima, têm sido desenvolvidas para resolver
216
os problemas NP-Hard. apresentando soluções parciais e ótimas para o problema,
visto que, devido ao grande número de grandezas que influenciam o processamento
computacional, como a capacidade de carga, velocidade, número de veículos, tempo e
distância, o mesmo precisaria de uma grande capacidade computacional para
apresentar soluções exatas.
2 HEURÍSTICAS DE CONSTRUÇÃO DE ROTA
Heurísticas de construção de rotas para o Problema do Caixeiro Viajante são
algoritmos que geram um circuito viável partindo de conjunto inicial de vértices, e
modificando esse conjunto a cada iteração utilizando algum critério de escolha. Este
processo busca boas soluções a um custo computacional razoável, porém, sem ser
capaz de garantir otimalidade ou até, em vários casos, de estabelecer quão perto de
uma dada solução viável esta dada solução ótima.
Inicialmente as rotas serão calculadas utilizando as seguintes técnicas de
construção de rotas (Bodin et al, 1983):
Inserção do mais próximo (IMP);
Inserção do mais distante (IMD);
Inserção mais rápida (IMR).
Existem ainda outros procedimentos de construção de rotas que podem ser citados
tais como Inserção do Mais Barato, Inserção Arbitrária, Cobertura Convexa, Inserção
do Maior Angulo e outros descritos detalhadamente em Bodin et al., (1983).
Após a aplicação dessas técnicas podem ser promovidas Heurísticas de Melhorias
de rotas. Dentre as técnicas que se pode utilizar para realizar estas melhorias existem a
2-opt e 3-opt.
3 A METAHEURÍSTICA GRASP - GREEDY RANDOMIZED ADAPTIVE
SEARCH PROCEDURE
Proposto por Feo e Resende em 1995 o GRASP é um processo iterativo multi-
partida em que cada iteração consiste de duas etapas: uma etapa de construção e outra
de busca local. A fase de construção é também iterativa, adaptativa, randômica e
gulosa. Ela é iterativa uma vez que a solução é construída elemento a elemento. É
adaptativa, pois na escolha de um elemento são levadas em consideração as escolhas
dos elementos anteriores. A cada iteração desta fase uma percentagem dos melhores
elementos candidatos a serem incluídos na solução corrente são colocados em uma
Lista de Candidatos Restritos - LCR. Estes elementos que constituem a LCR são
escolhidos segundo uma função adaptativa e gulosa, que estima o beneficio da escolha
de cada um dos elementos. O nível de aleatoriedade e o quanto é gulosa a fase de
construção do GRASP é controlado pelo parâmetro α [0,1]. Um valor α = 0 faz
gerar soluções puramente gulosas, ou seja, somente o melhor candidato é inserido na
LCR; enquanto que α =1, considera todos os candidatos na LCR. Após a construção
da LCR o elemento que irá fazer parte da solução é escolhido aleatoriamente, desta
forma permitimos que a cada iteração GRASP soluções diferentes sejam construídas.
Como na fase construção a solução resultante não necessariamente representa um
ótimo local, é recomendável aplicar métodos de busca local que explore uma
vizinhança na tentativa de melhorar a solução inicial.
217
ALGORITMO:
1. Custo (s*) ;
2. k 0 ;
3. Enquanto k num_interações Faça
4. s Construtivo () ;
5. s Busca_Local (s) ;
6. Se ( custo(s) < custo(s*) ) Então
7. s* s ;
8. Fim Se
9. k k + 1 ;
10. Fim Enquanto
11. Retorne s* ;
Onde:
s : solução viável ou inviável
s* : melhor solução encontrada até o momento
4 INSERÇÃO DO MAIS PRÓXIMO
Segundo Goldbarg (2005) o algoritmo da inserção do mais próximo é uma
heurística que possui um processo onde três níveis de decisão são envolvidos:
a escolha do vértice a ser inserido na solução;
a posição de inserção desse novo vértice;
a decisão de um ciclo inicial.
ALGORITMO:
Passos:
P1. Inicie com um sub-grafo contendo apenas o nó i;
P2. Encontre o nó k tal que ikc seja mínima e forme a rota i-k-i ;
P3. Dada a sub-rota, encontre o nó k não paertencente a sub-rota mais
próximo de qualquer nó da sub-rota;
P4. Encontre o arco ( i , j ) na sub-rota que minimiza ijkjik ccc ;
Insira k entre i e j ;
P5. Volte ao passo 3 até formar um circuito Hamiltoniano.
O tempo de computação envolvido no algoritmo da Inserção Mais Próxima é
da ordem 2n .
5 INSERÇÃO DO MAIS DISTANTE
Esta heurística é semelhante à heurística Inserção do Mais Próximo. A diferença
está apenas no passo 2, quando então se escolhe a cidade k não pertencente ao ciclo,
mais distante de qualquer cidade do ciclo. Também, no passo 3, o nó k não pertencente
a sub-rota deve ser mais distante de qualquer nó e não o mais próximo
218
ALGORITMO:
Passos:
P1. Inicie com um sub-grafo contendo apenas o nó i;
P2. Encontre o nó k tal que ikc seja máxima e forme a rota i-k-i ;
P3. Dada a sub-rota, encontre o nó k não pertencente a sub-rota mais distante
de qualquer nó da sub-rota;
P4. Encontre o arco ( i , j ) na sub-rota que minimiza ijkjik ccc
Insira k entre i e j ;
P5. Volte ao passo 3 até formar um circuito Hamiltoniano.
O tempo de computação envolvido no algoritmo da Inserção Mais Distante
também é da ordem 2n .
6 INSERÇÃO MAIS RÁPIDA
ALGORITMO:
Passos:
P1. Tome um nó inicial para formar um circuito T com 1 nó e 0 arcos;
P2. Dado o conjunto kT , ache o nó kz não pertencente a kT mais próximo
de um nó ky em kT ;
P3. Seja 1kT a rota com k+1 nós obtida inserindo kz imediatamente em
seguida a ky ;
P4. Repita P2 e P3 até a formação do circuito Hamiltoniano.
O tempo de computação envolvido no algoritmo da Inserção Mais Distante
também é da ordem 2n .
7 DESCRIÇÃO DO PROBLEMA
Deseja-se resolver o problema de roteirização no trabalho de um representante
comercial ao visitar seus clientes e também na entrega dos produtos. Na tabela 1
consta o número de pontos (clientes) para cada dia da semana que o representante
deve visitar. Para este estudo utilizou-se a rota de um determinado representante e
considerou-se apenas a primeira semana, pois seus clientes são distribuídos em duas
semanas. Este trabalho consiste em avaliar os roteiros de visita do representante e seus
clientes, sugerindo rotas alternativas obtidas através dos métodos citados, visando a
minimização das distâncias totais percorridas. Foram utilizados dados reais de uma
distribuidora de produtos em uma determinada região da cidade de Curitiba-PR.Os
resultados obtidos foram comparados com as rotas reais que estão sendo utilizadas por
um determinado representante da referida distribuidora. Os endereços destes pontos
foram inseridos no Google Earth para obtenção de suas coordenadas geográficas.
Após esse procedimento, realizou-se a transformação das coordenadas geográficas
para cartesianas, para que pudessem ser calculadas as distâncias euclidianas entre os
pontos que o representante precisa visitar. Utilizou-se como base a relação atual de
roteiro de visitação, onde nele encontram-se todas as informações como ordem de
visitação e endereços.
219
Depois da coleta dos dados e todo refinamento montou-se a rota atual praticada
pelo representante em questão para as suas visitas. Esta rota é composta de 128 (cento
e vinte oito) pontos distribuídos em cinco dias da semana conforme a Tabela 1.
Tabela 1 – Distribuição de clientes por dia de semana
As coordenadas cartesianas dos pontos a serem visitados na segunda-feira estão
colocadas na tabela 2. Pontos Coordenada X Coordenada Y
1 3752488,24243602 -4364462,64983374
2 3756050,27689715 -4362649,87962627
3 3755896,59241043 -4362486,34635371
4 3755560,82614631 -4362965,13091839
5 3755688,26676055 -4362748,26821984
6 3755949,57816426 -4362260,44954684
7 3755870,77467340 -4362321,62161513
8 3755329,95802132 -4362376,52861622
9 3755614,99323938 -4361883,82881548
10 3755993,37097473 -4362602,60481156
11 3755935,23505069 -4362582,56056160
12 3755571,21439706 -4362335,96783149
13 3755586,38765755 -4362315,52401190
14 3755591,56007775 -4362302,28404101
15 3755638,33113054 -4362232,14120151
16 3755245,71480086 -4362871,12780603
17 3755552,30444430 -4361985,08907318
18 3755419,78275609 -4362815,82087081
19 3754907,38631603 -4363032,47795608
20 3755075,97414652 -4362763,32964638
21 3755105,95064149 -4362713,45446905
22 3755191,84205662 -4362569,40742147
23 3755222,13346723 -4362524,17781582
24 3755414,55063071 -4362595,42439348
25 3755275,28087388 -4362434,49280584
Tabela 2 – Segunda-feira – coordenadas (x,y) em metros
8 MELHORIA DE ROTA
As heurísticas de melhorias de rota conhecidas por 2-opt e 3-opt, surgiram em
meados da década de 60 e consistem em permutar arcos em uma rota inicial factível,
buscando encontrar uma rota de menor custo.
Na heurística 2-opt, dois arcos são desligados e substituídos outros dois de modo
que a distância total na nova rota formada seja menor que na rota inicial.
Analogamente ocorre na heurística 3-opt, onde três arcos são permutados. Estes
procedimentos terminam geralmente em um ótimo local, e são considerados métodos
Dia da Semana Segunda Terça Quarta Quinta Sexta
Pontos a serem visitados 24 25 27 19 32
Distância Euclidiana Total
(em metros) 15.808,84 25.198,19 25.185,89 36.156,98 20.691,49
220
eficientes para resolver o Problema do Caixeiro Viajante. Mais tarde foi criada outra
heurística ainda mais forte do que a 2-opt e 3-opt. Chama-se heurística k-opt, onde são
permutados k arcos (k 3). Embora a qualidade das soluções desta última técnica
melhore a medida que k aumenta, elas se tornam quase impraticáveis sob ponto de
vista computacional quando k 4. Algumas aplicações práticas destas heurísticas
podem ser vistas em Costa (1997) e Zamboni (1997).
Os passos do algoritmo para obter melhoramentos 2-opt e 3-opt são os seguintes:
ALGORITMO:
Passos:
P1: Obtenha uma rota inicial factível, utilizando algum dos procedimentos de
formação de rotas;
P2: Desligar 2 arcos da rota atual para o caso de 2-opt e 3 arcos para o caso 3-
opt, reconectando os nós por meio de arcos diferentes daqueles que foram
desconectados, formando uma nova rota. Se o comprimento da rota nova for
menor que o comprimento da rota anterior, troque a rota atual pela rota nova;
P3: Prossiga no passo 2 até que nenhuma melhoria possa ser alcançada.
9 TESTES E RESULTADOS COMPUTACIONAIS As Heurísticas de construção de rotas e Melhorias de Rotas para o PCV foram
implementadas em Visual Basic 6. Os testes computacionais foram realizados em um
notebook com processador Intel(R) Core(TM) 2 Duo T5550, 1,83 GHz e 2,99 GB de
RAM.
Dia semana
Pontos
Segunda
25
Terça
26
Quarta
28
Quinta
20
Sexta
33
Atual 15808,84 25198,19 25185,87 36156,98 20691,49
IMP 10483,08 17199,55 19362,35 23506,59 19294,12
IMP+2opt 9910,51 16986,96 19274,71 23506,59 18542,89
IMD 10054,84 17331,30 18789,62 21309,23 18344,68
IMD+2opt 9879,76 17322,14 18598,65 21309,23 18301,71
IMR 11438,71 17532,03 20656,51 23733,36 19857,29
IMR+2opt 10979,42 17367,07 19478,81 23501,20 18512,03
GRASP 10694,08 16641,36 19173,03 23779,66 20137,86
GRASP+2opt 10593,35 16451,17 18940,70 23320,39 19793,07
Tabela 3 : Comparação dos resultados (distâncias em metros)
10 CONCLUSÕES
Neste trabalho foram realizados testes com as Heurísticas de Construção e
Melhoria de Rota implementadas. Em todos os dias da semana houve melhoria na rota
já praticada pelo representante. Na comparação de desempenho entre as Heurísticas, a
Inserção do Mais Distante com melhoria 2-opt foi a que apresentou melhores
resultados. Em todas as Heurísticas o tempo computacional foi de aproximadamente 7
segundos.
221
REFERÊNCIAS
[1] Benevides,P.F., Aplicação de heurísticas e metaheurísticas para o problema do
Caixeiro Viajante em um problema real de roteirização de veículos. Dissertação de
mestrado. Curitiba, BR: UFPR,2011.
[2] Bezerra, O.B., Localização de postos de coleta para apoio ao escoamento de
produtos extrativistas - Um estudo de caso aplicado ao babaçu. Dissertação de
Mestrado. Florianópolis, BR: UFSC, 1995.
[3] Bodin, L.D; Golden, B.L; Assad, A.A.; Ball, M.O., Routing and Scheduling of
vehicles and crews - the state of the art, Comput. Operational Research. 10, (63-
211), 1983.
[4] Costa, D.M.B., Aplicação de Algumas Técnicas da Pesquisa Operacional na
Otimização dos Serviços Postais. Dissertação de Mestrado. Curitiba, BR: UFPR,
1997.
[5] F Feo, T. A. e Resende, M. G. C., Greedy randomized adaptive search procedures.
Journal of Global Optimization, v. 6, (109-133), 1995
[6] Ganhoto, M.A.,Abordagens para problemas de roteamento. Dissertação de
Mestrado, Universidade Estadual de Campinas, BR.2004.
[7] Goldeberg, D.E., Genetic Algorithms in Search, Optimization e Machine
Learning. Addison-Wesley Publishing Company, Inc,1989.
[8] Goldebarg, M. C.; Luna, H. P. L., Otimização Combinatória e Programação Linear
– Modelos e Algoritmos. Editora Campus. Rio de Janeiro,2005
[9] Nunes, L. F., Algoritmos Genéticos aplicados na abordagem de um problema real
de roteamento de veículos. Dissertação de Mestrado. Curitiba, BR: UFPR,1998.
[10] Schopf, E.C., Cera, M.C., Turchetti, R., Vieira, L.E., Bastianello, C.A., Muller,
F.M., Metaheuristicas Aplicadas na Solução do Problema do Caixeiro Viajante com
Demandas Heterogêneas. XXIV ENEGEP – Florianópolis, 2004
[11] Zamboni, L.V.S., Técnicas de Roteirização de Veículos Aplicadas ao Transporte
Escolar. Dissertação de Mestrado. Curitiba, BR: UFPR, 1997.
222