Análise e Implementação de Algoritmos para o Roteamento de Veículos

Documentos relacionados
Algoritmos Genéticos Aplicados ao Problema de Roteamento de Veículos

NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016

Um Estudo da Aplicação de Heurísticas Construtivas e de Melhoramento para um Problema de PRV

COMPARAÇÃO ENTRE FROTA HOMOGÊNEA E HETEROGÊNEA EM PROBLEMAS DE ROTEAMENTO DE VEÍCULOS CAPACITADOS

Aplicação do algoritmo de Dijkstra para o problema de roteamento da frota de táxis partindo de um ponto fixo

Problemas de otimização

Grafos Hamiltonianos e o Problema do Caixeiro Viajante. Prof. Ademir Constantino Departamento de Informática Universidade Estadual de Maringá

Fundamentos de Inteligência Artificial [5COP099]

Teoria da Complexidade Computacional

INFORMAÇÕES GERAIS DO TRABALHO

DECISÕES SOBRE TRANSPORTES (PARTE III) Mayara Condé Rocha Murça TRA-53 Logística e Transportes

Estruturas de Dados II. Caixeiro Viajante

Um algoritmo pseudo-periférico genérico para a heurística de Snay

Avaliação de Heurísticas de Melhoramento e da Metaheurística Busca Tabu para Solução de PRV

3. Resolução de problemas por meio de busca

Prova Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade

ANÁLISE DE RESULTADOS NA CONSTRUÇÃO DE ROTA PARA O PROBLEMA DO CAIXEIRO VIAJANTE

04 Grafos: caminhos e coloração SCC0503 Algoritmos e Estruturas de Dados II

Caixeiro Viajante. Estruturas de Dados II. Prof. a Mariella Berger. 1. Objetivo

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL ESCOLA DE ADMINISTRAÇÃO DEPARTAMENTO DE CIÊNCIAS ADMINISTRATIVAS JEFERSON MACHADO SANTOS

Teoria da Computação. Complexidade computacional classes de problemas

5COP096 TeoriadaComputação

Projeto e Análise de Algoritmos NP Completude. Prof. Humberto Brandão

3 Decisões de Localização de Instalações

Problema do Caixeiro Viajante

GRAFOS Aula 03 Representações de Grafos Max Pereira

Lista de Exercícios Programação Inteira. x 2 0 e inteiros.

APLICAÇÃO DE META-HEURÍSTICAS À ENGENHARIA DE PRODUÇÃ O

RESOLUÇÃO DO PROBLEMA DE ROTEAMENTO DE VEÍCULOS UTILIZANDO A HEURÍSTICA DE SAVINGS

Tópicos Especiais em Otimização

Abordagens para Problemas Intratáveis

O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste

Projeto e Análise de Algoritmos

Departamento de Engenharia de Produção UFPR 22

Estudo e Implementação de Algoritmos de Roteamento sobre Grafos em um Sistema de Informações Geográficas

1_1 1_2 2_1 1_ _ _ Fonte: Autor

Especificação do TP3

PARALELIZAÇÃO DE ALGORITMO DE INSPEÇÃO DE ROTAS UTILIZANDO PERMUTAÇÃO LEXICOGRÁFICA 1

GRAFOS. Prof. André Backes. Como representar um conjunto de objetos e as suas relações?

Busca em Profundidade. Componentes Conexos. Grafos. Maria Adriana Vidigal de Lima. Fevereiro

CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DO CEARÁ CEFET/CE DEPARTAMENTO DE EDIFICAÇÕES CURSO DE VIAS E TRANSPORTES ROTEIRIZAÇÃO DE VEÍCULOS

Ciclos hamiltonianos e o problema do caixeiro viajante

Otimização por Colônia de Formigas (ACO)

Roteirização de veículo para realização de coleta utilizando algoritmo evolucionários

PCC173 - Otimização em Redes

Pesquisa Operacional Aplicada à Mineração

Otimização por Colônia de Formigas (Ant Colony Optimization - ACO)

Conceitos Básicos da Teoria de Grafos

PERCURSOS. André Falcão, Carlos Augusto, Rafael Broédel e Lucas Dipré

Problema do Caixeiro Viajante (The Travelling Salesman Problem-TSP) (Problema Del viajante)

Um Algoritmo Genético para o Problema de Roteamento de Veículos com Janelas de Tempo

Escola Básica e Secundária Mouzinho da Silveira. MACS 11.º Ano Problema do Caixeiro Viajante

Comparação entre Métodos Exatos e Heurísticos para tratar o Problema de Roteamento de Veículos em um Ambiente Fabril

PROBLEMA DE ROTEAMENTO DE VEÍCULO UNIVERSIDADE PRESIDENTE ANTONIO CARLOS

Problema de Roteamento de Veículos (VRP)

Grafos representação e aplicações. Prof. Guilherme Tomaschewski Netto

Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 21

Teoria dos Grafos Aula 14

Problema do Caminho Mínimo

PCC104 - Projeto e Análise de Algoritmos

Thiago Christiano Silva

Implementação Paralela do Algoritmo de Roteamento de Veículos com Janelas de Tempo sob a Plataforma CUDA

Seminário de Robótica Bruno de Abreu Silva

Teoria da Complexidade Computacional

Resolução de problemas difíceis de programação linear através da relaxação Lagrangeana

UMA INTRODUÇÃO AOS ALGORITMOS GENETICOS

Máquinas de Vetores de Suporte

Projeto e Análise de Algoritmos Projeto de Algoritmos Programação Dinâmica (continuação) Prof. Humberto Brandão

TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher

Projeto e Análise de Algoritmos

Preliminares. Profa. Sheila Morais de Almeida. agosto

Busca em Largura. Adaptado de Humberto C. B. Oliveira

Algoritmo de Dijkstra Estudo e Implementação

Análise de Desempenho da Paralelização do Problema de Caixeiro Viajante

Um Algoritmo Simulated Annealing Eficiente para o Problema de Roteamento de Veículos com Janela de Tempo

Métodos Exatos para PI - Parte 1: Branch-and-Bound

Teoria e Algoritmos em Grafos

O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste

1) Escolher e descrever um problema cuja resolução requeira a execução de algoritmos computacionais que não sejam triviais.

Simulated annealing aplicado à resolução do problema de roteamento de veículos com janela de tempo

Algoritmos em Grafos: Caminho Mínimo

Aula 13: Branch-and-bound

Teoria dos Grafos Aula 3

Figura 4.1: Rede hipotética - rede bidirecional com 6 nós e 8 enlaces

Algoritmos Genéticos

5 Estudo de Caso e Resultados

Corte Máximo em Grafos Notas de aula de MAC-5727

3 Extensões dos modelos matemáticos

Paradigmas de Projetos de Algoritmos

MÓDULO 3 - PROBLEMAS DE COBERTURAS DE ARCOS E NÓS

Estruturas de Dados. Grafos VIII: Árvores Geradoras Mínimas. Prof. Ricardo J. G. B. Campello

PROBLEMA DE ROTEAMENTO PERIÓDICO DE VEÍCULOS COM COLETA E ENTREGA SIMULTÂNEAS

1 - A capacidade de fluxo que corresponde a capacidade máxima que pode passar pelo arco.

3. Resolução de problemas por meio de busca

Problema de Roteamento de Veículos (The Vehicle Routing Problem-VRP)

Algoritmos para Automação e Sistemas

Lista de Exercícios Programação Inteira. x 2 0 e inteiros.

SCC-501 Introdução à Ciência de Computação II

Transcrição:

Análise e Implementação de Algoritmos para o Roteamento de Veículos Milton Roberto Heinen 1 1 Universidade do Vale do Rio dos Sinos (UNISINOS) Mestrado em Computação Aplicada CEP 93022-000 - São Leopoldo - RS - Brazil mheinen@turing.unisinos.br Resumo. O objetivo deste artigo é descrever o problema de roteamento de veículos, que é uma tarefa muito importante na maioria dos sistemas de transporte e logística, mas que não possui atualmente uma solução exata em tempo polinomial. Inicialmente será descrito o problema do roteamento de veículos, e em seguida serão descritas duas heurísticas de aproximação para o problema, a Heurística de Clark e Wright e a Heurística de Mole e Jameson. Por último serão descritas as implementações realizadas e os resultados obtidos. 1. Introdução O roteamento de veículos é um problema presente na maioria das empresas de transporte, logística e distribuição. Seu objetivo é determinar, dentre todas as possíveis rotas alternativas, qual é a que representa o menor custo, ou seja, qual é a solução ótima [Goldbarg and Luna 2000]. Aparentemente, é fácil descobrir qual a melhor solução, basta calcular o custo de todas as possíveis combinações e selecionar a que apresentar o menor custo. Para um pequeno conjunto de locais a serem visitados (nodos), isto é perfeitamente viável, mais a medida que este conjunto cresce, a solução vai se tornando cada vez mais difícil do ponto de vista computacional. Isto ocorre porque o número de combinações possíveis se torna muito grande, fazendo com que o cálculo possa demorar até vários séculos dependendo do número de nodos. Em termos de complexidade computacional, os Problemas de Roteamento de Veículos (PRV), assim como a maioria dos problemas combinatoriais [Pelizaro 2000], são classificados como sendo NP-Completos [Cormen et al. 2002], pois sua complexidade de tempo é exponencial - O(c n ), onde c é uma constante e n é o número de nodos a serem analisados. Até o momento, não foi possível encontrar nenhuma solução de tempo polinomial para problemas da classe NP-Completo, assim sendo, atualmente não existe nenhuma solução exata para o problema de roteamento de veículos em tempo polinomial - O(n c ) [Karp 1975]. Mas devido a sua grande importância estratégica, soluções aproximadas para o PRV vem sendo estudadas a várias décadas. O objetivo deste artigo é descrever duas heurísticas de aproximação para o problema de roteamento de veículos, a heurística de Clark e Wright [Clark and Wright 1964] e a heurística de Mole e Jameson [Mole and Jameson 1976]. O artigo está estruturado da seguinte forma: Inicialmente será descrito PRV do ponto de vista teórico, e em seguida serão descritas as heurísticas de aproximação selecionadas, abordando características e limitações. Após isto serão descritas as implementações realizadas de ambos os algoritmos, os resultados obtidos e as perspectivas futuras.

2. Roteamento de veículos O Problema de Roteamento de Veículos (PRV) é um problema de grande importância estratégica e de difícil solução computacional, e por isso vem sendo estudado há várias décadas por pesquisadores de todo o mundo. Ele pode ser descrito da seguinte forma: dado um depósito de abastecimento e vários clientes ligados ao depósito e entre si através de vários caminhos com custos diferentes, descobrir a melhor rota a ser empreendida por um veículo, que saia do depósito, passe por todos os clientes e retorne com o menor custo possível. A Figura 1 ilustra esta situação, onde o círculo 0 representa um depósito e os círculos 1, 2, 3 e 4 representam os clientes. Uma forma muito comum de se representar o PRV é através de grafos ponderados [Cormen et al. 2002], onde os vértices representam o depósito e os clientes, e as arestas representam os caminhos ligando os diversos vértices entre si. Os pesos das arestas representam os custos de se percorrer os caminhos. A Figura 1 ilustra um problema de roteamento de veículos através de um grafo ponderado. Figura 1. Grafo ponderado representando um PRV 2.1. Restrições Em sua forma mais básica, o PRV se resume ao problema do caixeiro viajante, descrito em [Melamed et al. 1990]. Mas em problemas reais de roteamento envolvendo veículos de transporte, muitas restrições são impostas ao modelo, dentre as quais podemos destacar [Goldbarg and Luna 2000]: Restrições de combustível; Janelas de tempo; Capacidade do veículo. Para que as restrições possam ser implementadas, são necessárias informações adicionais relativas ao contexto do problema, como o tamanho do tanque de combustível, o consumo médio dos veículos, a velocidade média das rodovias, entre outras. 2.2. Heurísticas de aproximação Pelo fato de o PRV não possuir uma solução exata em tempo polinomial, para que ele possa ser solucionado outras estratégias devem ser utilizadas, como por exemplo as heurísticas de aproximação [Olivera 2004]. Estas heurísticas fornecem uma solução aproximada, que é suficiente na maioria dos casos. O foco deste artigo são as heurísticas construtivas, que partem de uma solução inicial que é atualizada a cada passo segundo algum critério de minimização do custo. Assim, a solução vai sendo construída iterativamente, até que se chegue a uma solução aproximada. Pelo fato dos procedimentos de economia e inserção sempre utilizarem a solução de menor custo a cada passo, eles são chamados de algoritmos gulosos [Cormen et al. 2002].

3. Heurística de Clark e Wright A heurística de Clark e Right foi um dos primeiros algoritmos a serem propostos para solucionar o problema de roteamento de veículos. Ele foi muito importante em sua época, servido de base para outros algoritmos mais sofisticados que surgiram mais tarde. O funcionamento do algoritmo ocorre da seguinte forma: Um grafo ponderado representando os clientes, os possíveis caminhos e o depósito é lido a partir de uma matriz de adjacências ou de alguma outra estrutura de armazenamento Em seguida são criadas n 1 rotas iniciais, cada uma delas ligando um dos clientes ao depósito, onde n é o número de nodos do grafo. Após isto, são calculadas as economias para todas as possíveis combinações 2 por 2 de nodos, através da fórmula: s ij = c i0 + c 0j c ij (1) onde s ij representa a economia obtida ao se unir as rotas que possuem os nodos i e j, e c ij representa o custo de se deslocar do nodo i para o nodo j. As economias são colocadas em uma tabela, que é ordenada de forma decrescente. Para cada linha da tabela de economias, começando pela maior economia, é verificado se é possível unir as rotas que contém os nodos i e j. As rotas podem ser combinadas se ambos os nodos estiverem em extremos opostos de rotas diferentes, e se a união não violar nenhuma das restrições do modelo (capacidade de carga dos veículos, limite de combustível, janela de tempo, etc). O processo continua com o proximo par de nodos da tabela de economias, até que se chegue ao último item da tabela ou até que não hajam mais rotas a serem combinadas. Para que seja possível compreender melhor o funcionamento do algoritmo, considere o exemplo da Figura 1, onde o nodo 0 representa o depósito e os nodos de 1 a 4 representam os clientes. Inicialmente, o algoritmo cria uma rota para cada um dos clientes, conforme mostra a Figura 2(a). Em seguida, é calculada a tabela de economias (Tabela 1), através da fórmula 1. Analisando a tabela, pode ser notado que a maior econoi j c i0 + c 0j c ij s ij 1 2 8 + 10 4 14 1 3 12 + 8 6 14 2 3 10 + 12 9 13 3 4 12 + 5 10 7 1 4 8 + 5 10 3 Tabela 1. Lista de economias mia é obtida ao se unir as rotas que possuem os nodos 1 e 2. Como ambos os nodos estão em extremos opostos de suas respectivas rotas (ligados diretamente ao depósito), as rotas podem ser unidas, como mostra a Figura 2(b). O processo continua no próximo item da tabela, unindo as rotas com os nodos 1 e 3 (Figura 2(c)). Se um dos nodos não estiver em um dos extremos de sua rota, as rotas não podem ser unidas, e o processo continua no próximo item da tabela de economias. Este seria também o caso se a nova rota violasse alguma das restrições do modelo, como por exemplo a capacidade do veículo. Continuando o processo, a linha seguinte da tabela é ignorada, pois os nodos 3 e 4 já se encontram

(a) (b) (c) (d) Figura 2. Exemplo de aplicação da heurística de Clark e Wright na mesma rota. Em seguida, as rotas contendo os nodos 3 e 4 são unidas (Figura 2(d)), e o processo se encerra, pois não existem mais rotas a serem combinadas. A complexidade computacional do algoritmo Clark e Right é O(n 2 ), ou seja, ele é resolvido em tempo polinomial. Uma desvantagem deste algoritmo é que a combinação de rotas só é realizada quando os nodos estão nos extremos das rotas, o que faz com que os nodos internos sejam excluídos do teste de economia. A principal contribuição deste algoritmo pode ser considerada o fato de ele ter aberto caminho para algoritmos mais poderosos que surgiram após este, como por exemplo o de Mole e Jameson [Mole and Jameson 1976]. 3.1. Heurística de Mole e Jameson A heurística de Mole e Jameson [Mole and Jameson 1976] é uma heurística bem mais sofisticada que a de Clark e Wright. Entre outras coisas, ela tenta reduzir a principal fragilidade deste último, que é a dos nodos internos não serem candidatos ao teste de economia [Goldbarg and Luna 2000]. O funcionamento do algoritmo ocorre da seguinte forma: Inicialmente o grafo é lido a partir de uma matriz de adjacências, e uma lista de nodos livres (que estão fora de qualquer rota) é criada com todos os nodos do grafo menos o depósito (nodo 0). Em seguida, é selecionado um nodo para ser inserido na rota inicial, segundo algum critério. Na implementação deste algoritmo foi utilizado o critério de selecionar o nodo livre mais próximo do depósito para iniciar uma rota. Após isto, o algoritmo começa a realizar um laço, dentro do qual os nodos vão sendo sucessivamente inseridos nas rotas. A inserção é realizada segundo dois critérios, o de proximidade e o de economia. O critério de proximidade seleciona o nodo que está mais próximo da rota atual, segundo as distâncias calculadas pela fórmula: e(i, l, j) = c il + c lj µc ij (2)

Onde c il representa o custo entre os nodos i e l, c lj o custo entre l e j e c ij o custo entre i e j. O nodo que apresentar a menor distância é selecionado para ser inserido na rota, caso isto não viole nenhuma restrição. O critério de economia visa selecionar qual o melhor local para se inserir o nodo selecionado. Ele é calculado pela fórmula: σ(i, l, j) = λc 0l e(i, l, j) (3) Onde c 0l representa a distância entre o depósito e o nodo l. O local a ser selecionado é o que apresentar a maior economia. Os parâmetros λ e µ permitem que se altere o comportamento do algoritmo de diversas formas [Goldbarg and Luna 2000]: Com λ = 0 e µ = 1, a inserção é realizada levando em conta a minimização do aumento da rota pela inclusão do novo cliente; Com λ = 0 e µ = 0, a inserção é realizada levando em conta a minimização da distância entre os dois nós vizinhos; O caso em que 1 λ 2 e µ = λ 1, é uma generalização do critério de Gaskell [Gaskell 1967]; Com λ e 0 < µ <, a inserção ocorrerá para o cliente mais distante do depósito. Na descrição dos exemplos abaixo, bem como na implementação realizada, foram utilizados os valores de λ = 2 e de µ = 1, segundo o critério de Gaskell [Gaskell 1967]. O laço se encerra quando não houverem mais nodos presentes na lista de nodos livres. Após as rotas estarem construídas, elas são otimizadas segundo algum método r- Ótimo. Os métodos r-ótimos são procedimentos que partem de uma solução já construída e que tentam fazer alguma melhoria nela de forma a minimizar o custo. Um algoritmo bastante utilizado para tal finalidade é o Procedimento k-ótimo, cujo funcionamento do algoritmo k-ótimo é bastante simples. A partir de uma rota R, removem-se k, arestas, deixando o grafo desconexo. Em seguida, se fazem todas as combinações de vértices possíveis que tornem o grafo novamente conexo, sem deixar nenhum nodo de fora. Se alguma das rotas alternativas for mais econômica que a atual, ela é efetivada, caso contrário, mantém-se a rota anterior e repete-se o procedimento para outras k arestas. O algoritmo se encerra quando todas as combinações forem testadas. A complexidade computacional do procedimento k-ótimo é da ordem de O(n k ), o que faz com que na prática seja utilizado k = 2 ou k = 3 para evitar um aumento de complexidade. Para uma melhor compreensão heurística de Mole e Jameson, considere o exemplo da Figura 3(a). Inicialmente é montada uma lista de nodos livres com nos nodos 1, 2, 3, 4, e 5. Em seguida, uma nova rota é criada e o nodo 5 é selecionado para ser inserido nela, pois é o mais próximo do depósito. Após isto, é montada uma tabela com as distâncias de todos os nodos livres em relação à rota 0-5-0, que é mostrada na Tabela 2. Pela tabela se verifica que o nodo livre mais próximo da rota atual é o nodo 1. Como existem apenas dois nodos na rota, só existe um local para inserir o nodo 1. Mas segundo a fórmula 3, a economia obtida ao se inserir este nodo é de σ(i, l, j) = 2 10 + 3 10 20 = 7, o que significa que não é economicamente viável inserir outros nodos na rota 0-5-0. Isto se deve ao fato da distância entre o nodo 5 e o nodo 0 ser muito pequena em relação às demais distâncias, o que torna vantajoso ter uma rota apenas para este nodo.

i l j c il + c lj µc ij e 0 1 5 10 + 20 3 27 0 2 5 15 + 20 3 32 Tabela 2. Lista de proximidades da rota 0-5-0 Nestas circunstâncias, uma nova rota é criada, e o nodo 3 é selecionado para ser inserido nela, como mostra a Figura 3(b). Novamente são calculadas as distâncias dos nodos livres em relação a esta rota, como mostra a Tabela 3. Conforme os dados da tabela, o nodo 4 é o que deve ser selecionado para ser inserido na rota 0-3-0. Desta vez a i l j c il + c lj µc ij e 0 1 3 8 + 10 9 9 0 2 3 15 + 30 9 36 0 4 3 5 + 10 9 6 Tabela 3. Lista de proximidades da rota 0-3-0 economia resultante é de σ(i, l, j) = 10 2+9 5 10 = 14, de forma que o nodo 4 pode ser inserido na rota, como mostra a Figura 3(c). Após a inserção, a tabela de proximidades em relação a rota 0-4-3-0 é calculada e o nodo 1 é selecionado para ser inserido nesta rota. Como agora existem mais de dois nodos presentes na rota, a tabela de economias precisa ser calculada (Tabela 4) para determinar o melhor local de inserção. O nodo 1 é então i l j λc 0l e(i, l, j) σ(i, l, j) 0 1 4 2 10 + 10 10 15 5 3 1 4 2 10 + 5 15 8 4 2 0 1 3 2 10 + 9 10 8 11 Tabela 4. Lista de economias da rota 0-4-3-0 inserido na posição de maior economia, entre os nodos 0 e 3. O algoritmo prossegue desta forma até que todos os nodos lives estejam inseridos em alguma rota, como mostra a Figura 3(d). As rotas finais obtidas para este exemplo são 0-5-0 e 0-4-3-1-2-0. A heurística de Mole e Jameson, por ser um modelo mais aperfeiçoado, apresenta diversas vantagens em relação a heurística de Clark e Write, entre as quais podemos destacar o fato de que o resultado obtido é em geral bem melhor que o obtido com a heurística Clark e Wright. A principal desvantagem do algoritmo é a sua maior complexidade computacional. 4. Resultados Para que fosse possível obter um melhor entendimento das heurísticas, bem como para que fosse possível realizar experimentos com ambos os modelos, os dois algoritmos foram

(a) (b) (c) (d) Figura 3. Exemplo de aplicação da heurística de Mole e Jameson implementados utilizando a linguagem de programação C++. Em ambas as implementações, a leitura do grafo é realizada através de um arquivo texto cujo nome é informado através da linha de comando. Este arquivo, além da matriz de adjacência, possui outras informações necessárias para se implementar as restrições do modelo. As restrições implementadas foram: (a) Limite de combustível; (b) Tempo máximo para se percorrer as rotas; e (c) Capacidade máxima dos veículos. A medida que as rotas vão sendo calculadas, os programas exibem informações na tela relativas ao processamento realizado, de forma que o algoritmo possa ser compreendido facilmente. Ao final, são mostradas as rotas calculadas e a duração, o consumo de combustível e a ocupação dos veículos para cada uma delas. Para que fosse possível avaliar o desempenho dos dois algoritmos, foram geradas matrizes de adjacência aleatórias com 100, 500, 1000, 1500 e 2000 nodos. Cada matriz de adjacência foi testada com ambos os algoritmos, e os resultados obtidos são mostrados na Tabela 5, juntamente com os tempos de processamento (em segundos). Os custos indicados na Tabela 5 são as distâncias a serem percorridas em quilômetros. Pelos resultados Clark e Right Mole e Jameson Diferença Tamanho Tempo Custo Tempo Custo Tempo Custo 100 0.01 830.04 0.14 583.91 0.13 29.65% 500 0.57 1869.04 26.58 1239.57 26.01 33.67% 1000 4.20 2755.31 276.10 1782.23 271.90 35.32% 1500 19.62 3304.41 1096.47 2083.01 1076.85 36.96% 2000 46.23 3873.31 2973.83 2538.00 2927.60 34.47% Tabela 5. Comparações entre os dois algoritmos

obtidos, pode-se perceber que o algoritmo de Mole e Jameson é bem mais lento que o de Clark e Wright, e a diferença do tempo de processamento se torna maior a medida que cresce o número de nodos. Isto se deve a maior complexidade computacional deste algoritmo. Em termos de qualidade da solução obtida, pode-se notar claramente que o algoritmo de Mole e Jameson é superior ao de Clark e Wright, fornecendo rotas em média 35% mais econômicas. Isto se deve à heurística mais elaborada, que torna a solução mais próxima do ótimo. 5. Conclusões Os algoritmos de Mole e Jameson e de Clark e Wright possuem diversas similaridades entre si, principalmente pelo fato de ambos se basearem na maior economia para a construção das rotas. O algoritmo de Mole e Jameson, apesar de ser mais lento, é o mais indicado para ser utilizado, principalmente se o número de nodos não for muito elevado. Se este número for muito grande, pode ser mais vantajoso utilizar o algoritmo de Clark e Wright, devido a sua menor complexidade computacional. Futuramente a utilização de técnicas de Inteligência Artificial e Aprendizado de Máquinas, como as Redes Neurais Artificiais e os Algoritmos Genéticos [Mitchell 1997], poderão vir a ser utilizadas para se obter uma solução mais próxima do ótimo com um menor tempo de processamento. Referências Clark, G. and Wright, J. (1964). Scheduling of vehicles from a central depot to a number of delivery points. Opns. Res., 12:568 581. Cormen, T. H., Leiserson, C. E., Rivest, R. L., and Stein, C. (2002). Algoritmos - Teoria e Prática. Campus, Rio de Janeiro, 2 edition. Gaskell, T. J. (1967). Bases for the vehicle fleet scheduling. Opl. Res. Q, 18:281 294. Goldbarg, M. C. and Luna, H. P. (2000). Otimização Combinatória e Programação Linear - Modelos e Algoritmos. Campus, Rio de Janeiro. Karp, R. M. (1975). Neworks, 5:45 68. On the computational complexity of combinatorial problems. Melamed, I. I., Sergeev, S. I., and Sigal, I. K. (1990). The traveling salesman problem. Plenum Publishing Corporation, pages 1147 1173. Mitchell, T. (1997). Machine Learning. WCB, McGrall-Hill - Computer Science Series, Boston, MA. Mole, R. H. and Jameson, R. S. (1976). A sequencial routing-building algorithm employing a generalised savings criterion. Opl. Res Q, 27:503 512. Olivera, A. (2004). Heurísticas para problemas de ruteo de vehículos. Master s thesis, Instituto de Computación: Universidad de la República, Montevideo, Uruguay. Pelizaro, C. (2000). Avaliação de desempenho do algoritmo de um programa comercial para roteirização de veículos. Dissertação de mestrado, Escola de Engenharia de São Carlos, USP, São Carlos, SP.