CENTRO FEDERAL DE EDUCAÇÃO
TECNOLÓGICA DE MINAS GERAIS
Diretoria de Pesquisa e Pós-Graduação
Programa de Pós-Graduação em Modelagem
Matemática e Computacional
Uma metodologia híbrida
Colônia de Formigas - Busca
Tabu - Reconexão por Caminhos
para resolução do Problema de
Roteamento de Veículos com
Janelas de Tempo
Dissertação de Mestrado, submetida ao Curso de
Mestrado em Modelagem Matemática e Computacional, como parte dos requisitos exigidos para
a obtenção do título de Mestre em Modelagem
Matemática e Computacional.
Aluno: Marcelo Caramuru Pimentel Fraga
Engenheiro Mecânico – CEFET-MG
Orientador: Prof. Dr. Sérgio Ricardo de Souza (CEFET-MG)
Co-Orientador: Prof. Dr. Marcone Jamilson Freitas Souza (UFOP)
Belo Horizonte, agosto de 2006.
F811m FRAGA, Marcelo Caramuru Pimentel.
2006
Uma metodologia híbrida Colônia de
Formigas-Busca Tabu-Reconexão por Caminhos
para resolução do problema de roteamento de
veículos com janelas de tempo.
Belo Horizonte: CEFET-MG, 2006.
78p.
Dissertação (Mestrado) Centro Federal de Educação
Tecnológica de Minas Gerais
CEFET/MG.
1. Pesquisa Operacional. 2. Metaheurística.
3. Roteamento de veículos. 4. Colônia de Formigas.
I. Título.
CDD: 001.424
Agradecimentos
“A dúvida é o princípio da sabedoria.”
Aristóteles
A realização deste trabalho só foi possível mediante a contribuição de muitas
pessoas. A elas, gostaria de deixar algumas palavras de reconhecimento.
Inicialmente, agradeço ao prof. Sérgio Ricardo de Souza, por confiar em minha
capacidade e me dar a chance de participar do curso de mestrado, pelo empenho em
minha orientação e, por fim, por se tornar, além de professor orientador, um amigo.
À Tatiana Alves Costa, irmã de mestrado, pela amizade inestimável que surgiu
durante o curso, pela paciência e dedicação em me ensinar e desvendar áreas de
conhecimento inéditas para mim e, com tudo isso, tornar possível a conclusão deste
trabalho.
Ao prof. Marcone Jamilson, pela co-orientação ao trabalho e o aporte para minha
formação acadêmica e profissional.
Aos colegas de mestrado, pelo companheirismo, especialmente aos que se tornaram
grandes amigos: Ricardo Soares, Marcos Medeiros, Alessandra Coelho, Paulo Isnard, Rodrigo Coimbra, Márlon Oliveira, Eliézer Guimarães, Moysés Alberto, Júlio
Pacheco, Alcir Reis, Gabriel Silva e Jefferson Chaves.
Aos demais professores e funcionários do mestrado do CEFET-MG, pelas diversos
auxílios dados a mim, inclusive quanto às minhas formações profissional e pessoal,
especialmente a: Henrique Borges, Paulo Almeida, Gray Farias, Maria das Graças,
Fausto de Camargo, José Evaristo, João Francisco, Elenice Biazi e Ester Naves,
Clayston Damião, Cristiano CCC e Bruno Santos.
Aos amigos de fora do CEFET, responsáveis por momentos de diversão e descontração: Henrique Habib’s, Guilherme Juvenal, Eduardo Feio, Gustavo Barrosão,
Gilberto Peposo, Rosklin Metralha, Paulo Puliça, Fernanda Japinha, Carlos, Rosinha Jaburu e Aninha Causos.
À minha namorada, Renata, que participou da reta final de minha caminhada
com paciência e compreensão.
À prof. Maria José, pelo carinho, amizade e investimento com que acompanhou
minha educação e formação pessoal.
Por fim, a meus pais, Rosa Helena e Fernando Caramuru, por proporcionarem
condições que me permitiram concluir o curso da melhor forma possível; e aos meus
irmãos, Cláudia, Beto e Bruno, além de minha sobrinha Priscilla, por estarem juntos
a mim nos momentos em que mais preciso.
Aos demais amigos e familiares pelo apoio e incentivo.
À CAPES, pelo provimento das bolsas.
A todos vocês, meus sinceros e humildes agradecimentos.
iii
Resumo
Neste trabalho, uma metodologia híbrida, chamada Ant-TPR, é proposta para
resolução do Problema de Roteamento de Veículos com Janela de Tempo (PRVJT).
O PRVJT é uma variação do Problema de Roteamento de Veículos Capacitados
(PRVC) na qual, além das restrições inerentes ao PRVC, o atendimento a cada consumidor deve ser iniciado em um intervalo de tempo denominado janela de tempo.
Neste trabalho, a solução para esse problema consiste em, primeiramente, encontrar o número mínimo de veículos capaz de atender a todos os consumidores e, em
segundo lugar, determinar um conjunto de rotas que minimize a distância total percorrida pelos veículos. O PRVJT é um problema NP-Difícil, logo, o uso de métodos
heurísticos, que exigem menor custo computacional, têm sido amplamente utilizados, sofrendo, no entanto, das dificuldades inerentes à indefinição da qualidade da
solução determinada.
A metodologia Ant-TPR combina o uso das metaheurísticas Colônia de Formigas
e Busca Tabu à técnica de intensificação de resultados Reconexão por Caminhos.
A metaheurística Colônia de Formigas (ACO) se alimenta, em parte, dos próprios
resultados, contribuindo, a cada iteração, para convergência e precisão dos resultados
gerados. A Busca Tabu (BT) é uma estratégia que depende fortemente da solução
inicial e, por isso, a associação com a metaheurística ACO, capaz de produzir boas
soluções, potencializa o resultados de ambas. Periodicamente, a técnica Reconexão
por Caminhos (RC) é aplicada, de forma a tentar inserir bons atributos das melhores
soluções encontrada nas soluções correntes.
A metodologia foi avaliada nos problemas-teste criados por Solomon para o Problema de Roteamento de Veículos com Janela de Tempo e gerou resultados que
diferem em menos de 3% acima do resultado do melhor método existente.
Palavras-Chave: Colônia de formigas, Reconexão por Caminhos, Roteamento de
veículos.
iv
Abstract
In this work, it is presented an hybrid methodology called Ant-TPR to solve the
Vehicle Routing Problem with Time Windows (VRPTW).
The VRPTW is a variation from the Capacitated Vehicle Routing Problem
(CVRP) in which, beyond the inherent restrictions to the CVRP, the attendance of
each consumer must be initiated in a time interval called time window. In this work,
firstly, the solution to this problem consists of finding the minimum number of vehicles able to attend all the consumers. Secondly, the solution consists in determining
a set of routes that minimizes the covered distance of the vehicles. The VRPTW
is a NP-Hard problem, i.e., there are no exact algorithms able to guarantee the
global optimum can be found in viable computational cost for greater instances. On
the other hand, heuristic methods, demanding less computational cost, have been
widely used, suffering, however, the inherent difficulties from the imprecise quality
of the founded solutions.
The Ant-TPR methodology combines two metaheuristics, Ant Colony Optimization (ACO) and Tabu Search (TS), with the Path Relinking intensification technique. The ACO metaheuristic feeds itself, partially from its own results, leading to
convergence and precision of the generated results. Tabu Search strongly depends
of a good initial solution and the association with ACO, capable of producing good
solutions, improves both results. Periodically, the Path Relinking technique (PR)
is applied to insert good attributes from the best solutions found in the current
solutions.
The developed methodology was benchmarked in Solomon’s VRPTW instances,
generating some isolated better results than those found in literature and remaining
less than 3% above the best existing methodology.
Keywords: Ant Colony, Tabu Search, Path Relinking, Vehicle Routing, Metaheuristic.
v
Conteúdo
1 Introdução
1.1 Organização do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . .
2 Problema de Roteamento de Veículos
2.1 Caracterização do Problema de Distribuição de Produtos . .
2.2 Problema de Roteamento de Veículos Capacitados . . . . . .
2.3 Formulações Matemáticas do PRVC . . . . . . . . . . . . . .
2.3.1 Modelo de Fluxo de Veículos . . . . . . . . . . . . . .
2.3.2 Modelo de Fluxo de Veículos com Três Índices . . . .
2.3.3 Modelo de Fluxo de Mercadorias . . . . . . . . . . .
2.3.4 Modelo de Particionamento de Conjuntos . . . . . . .
2.4 Problema de Roteamento de Veículos com Janelas de Tempo
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3 Uma Revisão de Métodos Heurísticos
3.1 Métodos Heurísticos . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Heurísticas Construtivas . . . . . . . . . . . . . . . . . . . . . .
3.3 Heurísticas de Refinamento . . . . . . . . . . . . . . . . . . . . .
3.3.1 Método da Descida . . . . . . . . . . . . . . . . . . . . .
3.3.2 Descida com Primeiro de Melhora . . . . . . . . . . . . .
3.4 Metaheurísticas . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.1 Inteligência Coletiva . . . . . . . . . . . . . . . . . . . .
3.5 Algoritmos de Colônia de Formigas . . . . . . . . . . . . . . . .
3.5.1 Algoritmo Ant System . . . . . . . . . . . . . . . . . . .
3.5.2 Algoritmo Ant Colony System . . . . . . . . . . . . . . .
3.5.3 Ant Colony Optimization - Considerações Gerais . . . . .
3.5.4 Comparação entre Formigas Reais e Formigas Artificiais
3.6 Metaheurística Busca Tabu . . . . . . . . . . . . . . . . . . . .
3.7 Reconexão por Caminhos . . . . . . . . . . . . . . . . . . . . . .
4 Metodologia Ant-TPR para Resolução do PRVJT
4.1 Metodologia Ant-TPR . . . . . . . . . . . . . . . .
4.2 Forma de Representação das Soluções . . . . . . . .
4.3 Funções de Avaliação . . . . . . . . . . . . . . . . .
4.4 Movimentos de Realocação . . . . . . . . . . . . . .
4.5 Algoritmo Ant-TPR . . . . . . . . . . . . . . . . .
vi
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
2
.
.
.
.
.
.
.
.
3
. 3
. 5
. 6
. 7
. 8
. 9
. 11
. 12
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
15
15
17
18
18
19
20
21
22
25
28
30
31
32
36
.
.
.
.
.
39
39
39
40
41
42
.
.
.
.
.
5 Resultados Computacionais
50
5.1 Implementação da Metodologia Ant-TPR . . . . . . . . . . . . . . . . 50
5.2 Comparação entre o Algoritmo Ant-TPR e Algoritmos da Literatura 52
6 Conclusões Gerais e Trabalhos Futuros
59
6.1 Conclusões Gerais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
6.2 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Referências Bibliográficas
61
vii
Lista de Tabelas
3.1
3.2
Principais aplicações da metaheurística ACO. . . . . . . . . . . . . . 23
Principais aplicações da metaheurística Busca Tabu no PRVJT. . . . 33
4.1
Forma de representação de uma solução. . . . . . . . . . . . . . . . . 39
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
5.11
5.12
Formato das instâncias Solomon para o PRVJT . . . . . . . . . .
Comparação entre as funções de avaliação propostas. . . . . . . .
Resultados da metodologia Ant-TPR nas instâncias C1. . . . . . .
Melhores resultados da metodologia Ant-TPR nas instâncias C2. .
Melhores resultados da metodologia Ant-TPR nas instâncias R1 .
Melhores resultados da metodologia Ant-TPR nas instâncias R2 .
Melhores resultados da metodologia Ant-TPR nas instâncias RC1
Melhores resultados da metodologia Ant-TPR nas instâncias RC2
Comparação da eficiência da metodologia Ant-TPR com outras .
Comparação entre Ant-TPR e MACS . . . . . . . . . . . . . . . .
Comparação entre Ant-TPR e BBB . . . . . . . . . . . . . . . . .
Ant-TPR vs. outras metodologias . . . . . . . . . . . . . . . . . .
viii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
51
51
53
53
54
54
55
55
56
57
57
58
Lista de Figuras
2.1
Conjunto de rotas para o PRVC. . . . . . . . . . . . . . . . . . . . .
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
3.11
3.12
3.13
3.14
Heurística Construtiva Gulosa - Pseudo-código. . . . .
Heurística de Refinamento - Pseudo-código. . . . . . .
Comportamento de uma heurística de refinamento. . .
Método da Descida - Pseudo-código. . . . . . . . . . .
Descida com Primeiro de Melhora - Pseudo-código. . .
Comportamento de formigas reais. . . . . . . . . . . . .
Parâmetro Visibilidade. . . . . . . . . . . . . . . . . . .
Parâmetro Rastro de Feromônio. . . . . . . . . . . . .
Pseudo-código do Ant System aplicado ao PCV. . . . .
Pseudo-código do Ant Colony System aplicado ao PCV.
Ciclagem na Busca Tabu. . . . . . . . . . . . . . . . .
Pseudo-código da Busca Tabu . . . . . . . . . . . . . .
Idéia geral da técnica Reconexão Por Caminhos. . . . .
Pseudo-código Path Relinking. . . . . . . . . . . . . . .
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
4.10
4.11
4.12
4.13
4.14
4.15
Instância fictícia de 7 cidades. . . . . . . . . . . . . . . . . . . . . . .
Movimento de realocação Intra-rota. . . . . . . . . . . . . . . . . . .
Movimento de realocação Inter-rotas. . . . . . . . . . . . . . . . . . .
Pseudo-código Ant-TPR. . . . . . . . . . . . . . . . . . . . . . . . . .
Instância do PRVJT a ser solucionada. . . . . . . . . . . . . . . . . .
A formiga analisa suas opções de movimento. . . . . . . . . . . . . .
Após movimentar-se, a formiga analisa suas novas opções de movimento.
A formação da rota continua, enquanto gerar soluções factíveis. . . .
Ao final da excursão da formiga, são adicionadas ligações ao depósito.
Uma nova formiga é posicionada e o processo continua. . . . . . . . .
Solução completa e factível gerada pelas formigas. . . . . . . . . . . .
O consumidor 1 isolado em uma rota. . . . . . . . . . . . . . . . . . .
Solução prejudicada pelo consumidor 1. . . . . . . . . . . . . . . . . .
Ant-TPR: O consumidor 1 momentaneamente isolado em uma rota. .
Ant-TPR: Formiga integra o consumidor 1 à nova rota formada. . . .
ix
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
17
18
19
19
20
24
26
26
27
29
34
36
37
37
40
42
42
44
45
45
46
46
47
47
48
48
48
49
49
Lista de Siglas
PRV
PRVC
PRVJT
BT
ACO
AS
ACS
RC
PR
IS
PCV
FA
FO
LTPNNF
LRCC
LTGF
VGR
VRF
LTF
Problema de Roteamento de Veículos
Problema de Roteamento de Veículos Capacitado
Problema de Roteamento de Veículos com Janelas de Tempo
Busca Tabu
Ant Colony Optimization
Ant System
Ant Colony System
Reconexão por Caminhos
Path Relinking
Inteligência Swarm
Problema do Caixeiro Viajante
Função de Avaliação
Função Objetivo
Lista Tabu Para Nascimento de Novas Formigas
Lista Restrita de Consumidores Candidatos
Lista Tabu Geral das Formigas
Vetor Geral de Rotas
Vetor de Rotas da Formiga
Lista Tabu da Formiga
x
Capítulo 1
Introdução
A atividade de transporte representa 2,53% do PIB brasileiro (IBGE (2001)) e
é um serviço que torna viável os demais setores do país, influenciando a segurança,
a qualidade de vida e o desenvolvimento econômico. O transporte é responsável,
dentre outras coisas, pelo fornecimento de matéria-prima às indústrias, pelo envio
de produtos essenciais aos consumidores e, de certa forma, por manter o país em
funcionamento. O Brasil é um país de dimensões continentais, com uma infraestrutura de transporte precária e que tem, em sua malha rodoviária, o principal
meio de transporte de cargas. Tudo isto demonstra a importância e a necessidade
de estudos sobre como realizar a distribuição de produtos de forma eficiente.
A partir deste contexto, este trabalho foi proposto e desenvolvido de forma a
abordar uma parte do processo de distribuição de produtos, representada pelo Problema de Roteamento de Veículos com Janela de Tempo (PRVJT).
O PRVJT é uma variação do Problema de Roteamento de Veículos clássico e
pode ser descrito como um problema no qual uma frota de veículos, inicialmente
situada em um depósito, deve atender a um conjunto de consumidores que possuem diferentes demandas por produtos a serem distribuídos utilizando-se a frota.
O atendimento a cada consumidor deve ser iniciado em um intervalo de tempo denominado janela de tempo.
A solução para esse problema pode variar de acordo com o objetivo a ser seguido.
Geralmente, a solução por métodos exatos procura encontrar a distância mínima
percorrida, capaz de atender a todos os consumidores; e a solução por métodos
heurísticos é feita em duas fases, de tal modo que, inicialmente, é feita a determinação do número mínimo de veículos capaz de atender a todos os consumidores; em
seguida, é feita a minimização da distância percorrida.
O PRVJT é classificado como um problema NP-Difícil, logo métodos heurísticos
têm sido amplamente utilizados para a solução de problemas-teste de diversas ordens, sofrendo, no entanto, das dificuldades inerentes à indefinição da qualidade da
solução determinada. Uma revisão de métodos heurísticos pode ser encontrada em
Blum e Roli (2003).
Este trabalho aborda o estudo da solução do Problema de Roteamento de Veículos com Janela de Tempo (PRVJT), através de uma metodologia híbrida entre as
metaheurísticas Colônia de Formigas e Busca Tabu, aliadas ainda à técnica Reconexão por Caminhos (Path Relinking) de intensificação dos resultados.
Os algoritmos de Colônia de Formigas (ACO ou Ant Colony Optimization) foram
1.1
Organização do Trabalho
2
desenvolvidos a partir da observação do comportamento de formigas reais na natureza e têm sido aplicados em problemas de diversas classes, como ao Problema
do Caixeiro Viajante, apresentado em Gambardella e Dorigo (1996) e Stutzle e
Dorigo (1999); Problema de Roteamento de Veículos, mostrado em Gambardella
et al. (1999a); Problema de Alocação Quadrática, discutido em Gambardella et al.
(1999c); Problema de Alocação Bi-quadrática de Recursos, ilustrado por Taillard
(1998), dentre outros. De acordo com Dorigo et al. (1999), os algoritmos ACO são
um dos mais eficientes algoritmos baseados em inteligência coletiva (Swarm Intelligence). Uma revisão recente da metaheurística ACO pode ser encontrada em Dorigo
e Blum (2005).
A Busca Tabu (BT) é uma metaheurística robusta, mas que depende fortemente
da solução inicial para obter bons resultados. Associada à metaheurística ACO, que
é auto-catalítica, atuam de forma simbiótica e podem potencializar seus resultados.
A metaheurística ACO, por sua capacidade de ser influenciada pelos próprios resultados, pode proporcionar soluções iniciais cada vez melhores para a Busca Tabu
que, por sua vez, é mais eficiente na busca pelo espaço de soluções. A partir de um
ponto inicial mais avançado, a BT tem maiores chances de encontrar boas soluções
do que o algoritmo de Colônia de Formigas atuando sozinho, que parte da construção até a solução final e, diante do grande número de soluções possíveis, tem mais
chances de ficar preso a ótimos locais ou regiões planas. A integração entre essas
metaheurísticas permite ainda que as soluções encontradas pela Busca Tabu influenciem as próximas fases de construção, contribuindo para a convergência e melhora
nos resultados de Colônia de Formigas.
Reconexão por Caminhos é uma estratégia de intensificação da busca sobre resultados gerados, explorando trajetórias que conectam soluções elite, à procura de
uma solução de melhor qualidade. A partir de uma solução-corrente e em direção a
uma solução-guia, busca agrupar em uma única solução bons atributos encontrados
em ambas soluções.
O foco deste trabalho é apresentar a metodologia Ant-TPR, desenvolvida a partir da junção entre as metaheurística ACO e Busca Tabu e associadas à técnica
de Reconexão por Caminhos, de forma a produzir resultados competitivos com os
melhores encontrados na literatura para a classe de problemas PRVJT.
1.1
Organização do Trabalho
Este trabalho está organizado da seguinte forma: o capítulo 2 apresenta a caracterização do Problema de Roteamento de Veículos e da variação a qual este trabalho
se aplica, qual seja, o Problema de Roteamento de Veículos com Janelas de Tempo.
Uma revisão de métodos heurísticos empregados no trabalho pode ser vista no capítulo 3. No capítulo 4 é apresentada a metodologia desenvolvida. No capítulo 5 são
demonstrados os resultados computacionais. Por fim, a seção 6 mostra as conclusões
a respeito do trabalho desenvolvido e propostas de continuidade do mesmo.
Capítulo 2
Problema de Roteamento de Veículos
Este capítulo apresenta a caracterização do Problema de Roteamento de Veículos
e algumas de suas variações. Inicia-se, na seção 2.1, com uma abordagem geral do
Problema de Distribuição de Produtos. Em seguida, na seção 2.2, o Problema de
Roteamento de Veículos Capacitado (PRVC) é descrito. As principais formulações
matemáticas para o PRVC são revistas na seção 2.3. Por fim, a variação para o
qual este trabalho se aplica, chamada de Problema de Roteamento de Veículos com
Janelas de Tempo, é discutida em sua formulação matemática na seção 2.4.
2.1
Caracterização do Problema de Distribuição de
Produtos
A distribuição de produtos é um processo que envolve um número muito elevado
de variáveis a serem determinadas. Dentre elas, pode-se citar o número necessário
de veículos; que tipo de veículo é o mais adequado ao atendimento de cada cliente;
como criar rotas de forma eficiente, minimizando custos e/ou tempo de entrega,
dentre outras questões relevantes que determinam as escolhas a serem efetuadas na
solução do problema.
A malha rodoviária que os veículos percorrem pode ser descrita através de um
grafo, no qual os arcos representam as rodovias e os vértices, as cidades. Os arcos
podem ser ou não direcionados, assim como as estradas podem ou não ser trafegadas
nos dois sentidos. Cada arco está associado a um custo, que geralmente varia com
seu comprimento, e a um tempo de viagem, que pode variar com o tipo de veículo,
tipo de estrada ou o horário em que o arco será atravessado.
Cada consumidor pode possuir características totalmente diferentes dos demais,
porém, todos devem ser atendidos. Não será levado em consideração nesse trabalho
o estudo da viabilidade econômica de cada consumidor, sendo assumido que todos
eles geram lucro para a distribuição.
Os consumidores podem possuir diversos atributos diferentes, como:
• localização: representada pelas coordenadas geográficas;
• demanda: quantidade e tipo de produtos necessários;
• janela de tempo: intervalo no qual o consumidor está disponível para receber
a visita do veículo;
3
2.2
Caracterização do Problema de Distribuição de Produtos
4
• tempo de serviço: tempo necessário para carregar ou descarregar os veículos;
• tipo de veículo adequado para atendimento: o atendimento a cada consumidor
pode exigir, por razões as mais diversas, um veículo diferente. Por exemplo,
devido a problemas de acesso pelas estradas, tamanho das instalações ou tipo
de carregamento e descarregamento que um certo veículo oferece e é mais
adequado aos interesses do cliente.
Já uma frota de veículos pode possuir características diversas como:
• cada veículo tem um depósito como origem, mas que não necessariamente será
seu destino, no caso de múltiplos depósitos;
• a capacidade de carga pode variar com o tamanho, peso ou volume;
• possível subdivisão do compartimento de carga em compartimentos menores
e específicos para cada produto;
• dispositivos para carregamento e descarregamento das mercadorias;
• subconjunto de arcos em que os veículos podem ser empregados. Em uma
instância real, varia de acordo com o terreno ou o tipo de estrada;
• custo associado à utilização do veículo (por distância, por tempo, por rota,
por tipo de veículo utilizado, etc.).
Além dos veículos, os motoristas condutores também possuem particularidades
a serem observadas, como número de horas trabalhadas por dia, horários regulares
para refeições, intervalos de descanso, dentre outros, e isso também acarreta novos
custos para a distribuição. As rotas geradas para atender aos consumidores devem
iniciar e terminar em um depósito, cuja representação no grafo é, também, um
vértice. Cada depósito possui uma capacidade de estocar produtos e uma frota, que
pode variar na capacidade e na quantidade de veículos. As rotas devem satisfazer
uma série de restrições, que variam com a natureza dos produtos transportados,
qualidade do serviço prestado e características dos consumidores e veículos. Para
cada conjunto de rotas gerado, que respeite todas as restrições operacionais, está
associado um custo total, que serve de parâmetro de controle. São objetivos a serem
atingidos ao se solucionar uma instância do Problema de Roteamento de Veículos:
• minimização do custo de transporte, envolvendo todos os fatores associados,
incluindo a distância total percorrida (e o tempo de viagem) e os custos de
utilização relacionados a cada veículo;
• minimizar o número de veículos (e/ou motoristas) necessários para atender a
todos os consumidores;
• equilibrar as rotas, de acordo com o tempo de viagem e a carga do veículo;
• minimizar, caso existam, as penalidades pelo atendimento parcial a um cliente.
2.2
2.2
Problema de Roteamento de Veículos Capacitados
5
Problema de Roteamento de Veículos Capacitados
O Problema de Roteamento de Veículos (PRV) foi introduzido na literatura em
1959 por Dantzig e Ramser (1959), para solucionar um problema da distribuição de
gasolina entre postos de abastecimento. O PRV é um nome genérico, dado a uma
classe de problemas na qual um conjunto de rotas para uma frota de veículos deve
ser determinado para atender um número de cidades ou consumidores dispersos. A
solução para o PRV consiste em encontrar as rotas que satisfazem aos consumidores
ou cidades envolvidos, respeitando-se as restrições existentes.
O Problema de Roteamento de Veículos Capacitados (PRVC) é a forma mais
simples do PRV. Neste problema, uma frota de veículos, localizada inicialmente em
um depósito, deve atender a um conjunto de consumidores com diferentes demandas
de produtos a serem distribuídos por essa frota. A única restrição presente no
PRVC é a capacidade de carga dos veículos. As demandas são conhecidas a priori e
não podem ser fracionadas em sua entrega, ou seja, cada consumidor não pode ser
visitado mais de uma vez para entrega de produtos. Todos os veículos possuem a
mesma capacidade de carga e suas rotas iniciam e terminam no depósito.
A figura 2.1 ilustra um conjunto de rotas do PRVC. O retângulo maior representa
o depósito e os pequenos quadrados representam os consumidores.
Depósito
Figura 2.1: Conjunto de rotas para o PRVC.
Conforme Toth e Vigo (2002), o PRVC pode ser descrito da seguinte forma: seja
G = (V, A) um grafo completo, no qual V = {v0 , v1 , . . . , vn } é o conjunto dos vértices,
que representam cidades ou consumidores, e A = {aij = (vi , vj ) : vi , vj ∈ V, vi 6= vj }
é o conjunto de arcos, que ligam os vértices (vi , vj ). O vértice v0 representa o depósito, mas, em algumas formulações, o depósito pode estar representado pelo vértice
(n+1). Um valor não negativo cij é associado a cada arco e representa o custo de se
viajar do consumidor i para o consumidor j. Normalmente, o uso de arcos fechados
não é permitido e, para evitá-los, faz-se o custo do arco aii como infinito, ou seja,
cii = +∞.
2.3
Formulações Matemáticas do PRVC
6
Se o grafo G for direcionado, sua matriz de custos é assimétrica, ou seja, o
custo de viagem entre duas cidades varia com o sentido a ser seguido, de modo que
cij 6= cji . Nesse caso, o PRVC é chamado de Problema de Roteamento de Veículos
Capacitados Assimétrico (PRVCA). Por outro lado, se o grafo G for não-direcionado
e possuir uma matriz de custos simétrica, na qual o custo de viagem independa do
sentido a ser seguido, ou seja, cij = cji , então o PRVC é denominado Problema de
Roteamento de Veículos Capacitados Simétrico (PRVCS).
Cada consumidor é associado a uma demanda não-negativa qi , e o depósito v0
é associado a uma demanda fictícia q0 = 0. Uma frota de K veículos, com igual
capacidade Q, é disponibilizada no depósito e, para assegurar a factibilidade do
problema, é determinado que a demanda de cada consumidor seja menor ou igual
à capacidade do veículo, ou seja, qi ≤ Q. Cada veículo da frota deverá fazer, no
máximo, uma rota.
O PRVC consiste, então, na determinação de um conjunto de, no máximo, K
rotas, cada uma associada a um veículo específico, com o menor custo possível,
respeitando-se as seguintes restrições:
(i) todas as rotas têm início e término no depósito;
(ii) cada consumidor é visitado uma única vez;
(iii) a demanda total de qualquer rota não deve superar a capacidade Q do veículo
envolvido na mesma.
2.3
Formulações Matemáticas do PRVC
Esta seção apresenta quatro modelos matemáticos básicos, utilizados para representar o PRVC. É baseada em Toth e Vigo (2002), referência na qual outras
formulações podem ser encontradas. Não é objetivo do presente trabalho exaurir a
apresentação e discussão de modelos matemáticos para o PRVC. São apresentados
os modelos:
• Modelo de Fluxo de Veículos;
• Modelo de Fluxo de Veículos com três índices;
• Modelo de Fluxo de Mercadorias; e
• Modelo Particionamento de Conjuntos.
Em todos os modelos, está sendo utilizada a seguinte notação:
V : conjunto dos vértices (cidades ou consumidores);
V\{0} : conjunto dos vértices V, com exceção do vértice 0;
A : conjunto de arcos que ligam dois vértices;
K : número total de veículos disponíveis na frota;
Q : capacidade de cada veículo da frota;
2.3
Formulações Matemáticas do PRVC
7
qi : demanda do vértice i.
As demais variáveis envolvidas serão detalhadas junto a cada modelo.
2.3.1
Modelo de Fluxo de Veículos
Esta é a formulação mais utilizada para caracterizar as versões básicas do VRP.
As variáveis de decisão xij são variáveis inteiras, associadas com cada arco do grafo,
que demonstram o número de vezes que o veículo atravessa o arco em questão ou, no
caso de inteiras binárias, se o arco é ou não utilizado para o roteamento. O modelo
é dado, então, por:
min
XX
cij xij
(2.1a)
i∈V j∈V
sujeito a
X
xij = 1 , ∀ j ∈ V\{0}
(2.1b)
X
xij = 1 , ∀ i ∈ V\{0}
(2.1c)
X
xi0 = K
(2.1d)
X
x0j = K
(2.1e)
i∈V
j∈V
i∈V
j∈V
XX
xij ≥ r(S) , ∀ S ⊆ V\{0}, S =
6 ∅
(2.1f)
i6∈S j∈S
xij ∈ {0, 1} , ∀ i, j ∈ V
(2.1g)
Nessa representação, tem-se que:
xij : variável binária que assume o valor xij = 1, caso o arco aij faça parte da
solução ótima do problema; ou xij = 0, caso contrário;
cij : custo associado ao arco aij ;
r(S) : representa o número mínimo de veículos necessário ao atendimento do conjunto de consumidores S;
A função objetivo (2.1a) busca minimizar o somatório do custo dos arcos pertencentes à solução ótima.
As restrições dadas pela expressão (2.1b) impõem que apenas um veículo pode
partir de uma cidade qualquer i para uma cidade j, ou seja, qualquer arco que
termine em j deve ser utilizado apenas uma vez (com exceção do arco associado ao
depósito). As restrições (2.1c) impõem que apenas um veículo pode chegar a uma
cidade qualquer j a partir de uma cidade j, ou seja, qualquer arco que inicie em j
deve ser utilizado apenas uma vez (com exceção do arco associado ao depósito). As
restrições (2.1d) e (2.1e) exigem que, respectivamente, todos os K veículos devem
terminar e iniciar suas rotas no depósito. As restrições (2.1b)-(2.1e) são denominadas
restrições de grau. As restrições (2.1g) exigem que as variáveis xij sejam binárias.
2.3
Formulações Matemáticas do PRVC
8
As restrições dadas por (2.1f) asseguram a não-violação da capacidade dos veículos e a conectividade da solução encontrada. São chamadas de restrições de corte de
capacidade, em conseqüência. Seu tratamento é uma questão central na solução de
problemas postos na formulação de fluxo de veículos. Devido às restrições de grau,
tem-se que:
XX
XX
xij =
xij , ∀ S ⊆ V\{0}, S =
6 ∅
(2.2)
i6∈S j∈S
i∈S j6∈S
Assim, pode-se escrever (2.1f) como:
XX
xij ≥ r(V \S) , ∀ S ⊂ V, 0 ∈ S
(2.3)
i6∈S j∈S
Uma forma alternativa para (2.1f) pode ser obtida através da mudança da restrição de corte de capacidade em função das restrições de grau, gerando as restrições
de eliminação de sub-rotas, dadas por:
XX
xij ≤ |S| − r(S) , ∀ S ⊆ V\{0}, S =
6 ∅
(2.4)
i∈S j∈S
Essas restrições impõem, segundo Toth e Vigo (2002), que, no mínimo, r(S) arcos
partem de cada subconjunto S de consumidores.
As restrições (2.1f) e (2.4) crescem exponencialmente em número, de acordo
com o número de consumidores. Isso torna praticamente impossível a solução do
problema proposto em (2.1) através de relaxação linear. Uma forma alternativa ao
uso das restrições (2.1f) (ou (2.4)) e com cardinalidade polinomial é a utilização das
restrições de eliminação de subrotas apresentadas em C. E. Miller e Zemlin (1960)
e Desrochers e Laporte (1991):
ui − uj + Qxij ≤ Q − qj , ∀i, j ∈ V\{0}, i 6= j, desde que qi + qj ≤ Q
qi ≤ ui ≤ Q , ∀i ∈ V\{0}
(2.5)
(2.6)
Nessa expressão, ui representa a carga do veículo após visitar o consumidor i. As
restrições (2.5) e (2.6) impõem limites na capacidade e na conectividade do PRVC.
2.3.2
Modelo de Fluxo de Veículos com Três Índices
A finalidade da construção de modelos em três índices é a necessidade de explicitamente definir quais veículos atravessam um certo arco. Nesse caso, duas classes
de variáveis de decisão são necessárias:
xijk : variável binária que assume o valor 1, caso o arco aij faça parte da rota do
veículo k; ou 0, caso contrário;
cij : custo associado ao arco aij ;
yik : variável binária que assume o valor 1, caso o consumidor i seja servido pelo
veículo k na solução ótima do problema, ou 0, caso contrário;
2.3
Formulações Matemáticas do PRVC
9
O modelo é, então, dado por:
min
XX
cij
i∈V j∈V
suj. a
K
X
xijk
(2.7a)
k=1
K
X
yik = 1 , ∀ i ∈ V\{0}
(2.7b)
K
X
y0k = K
(2.7c)
X
xijk =
X
qi yik ≤ Q , ∀ k = 1, . . . , K
k=1
k=1
j∈V
X
xjik = yik , ∀ i ∈ V , k = 1, . . . , K
(2.7d)
j∈V
(2.7e)
i∈V
uik − ujk + Qxijk ≤ Q − qj , ∀ i, j ∈ V\{0}, i 6= j,
desde que qi + qj ≤ Q, k = 1, . . . , K (2.7f)
qi ≤ uik ≤ Q , ∀i, j ∈ V\{0}
(2.7g)
yik ∈ {0, 1} , ∀ i ∈ V , k = 1, . . . , K
(2.7h)
xijk ∈ {0, 1} , ∀ i, j ∈ V , k = 1, . . . K
(2.7i)
Nessa formulação do (PRVC), a função objetivo (2.7a) busca minimizar o somatório do custo dos arcos pertencentes ao conjunto de rotas dos veículos.
O conjunto de restrições guarda semelhança com o apresentado em (2.1), referente à formulação em fluxo de veículos de dois índices. A restrição (2.7b) assegura
que todo consumidor, com exceção do depósito, seja visitado uma única vez, por
um único veículo. A restrição (2.7c) garante que todos os veículos devem iniciar
suas rotas no depósito. Já (2.7d) assegura a continuidade da rota, ou seja, todo
veículo que chega a um determinado consumidor, com exceção do depósito, deve
partir após a realização do serviço. A restrição (2.7e) impõe que a demanda da rota
não ultrapasse a capacidade do veículo responsável por esta rota. A restrição (2.7g)
assegura que a carga atual do veículo seja maior que a demanda do consumidor i e
menor que sua capacidade máxima. Além disso, as restrições (2.7h) e (2.7i) indicam
que yik e xijk são variáveis binárias.
As restrições (2.7f) têm papel semelhante às restrições (2.1f) no caso do modelo
em dois índices. Ela garante a eliminação de sub-rotas e impõe a conectividade da
rota realizada pelo veículo k. Deve-se ressaltar que são versões generalizadas de
(2.5) e (2.6).
É importante enfatizar, ainda, que os modelos em três índices representam generalizações dos modelos em dois índices, permitindo maior flexibilidade à representação do problema de roteamento de veículos.
2.3.3
Modelo de Fluxo de Mercadorias
Os modelos de fluxo de mercadorias foram, inicialmente, introduzidos por Garvin
et al. (1957) e posteriormente por Gavish e Graves (1979) e Gavish e Graves (1982).
2.3
Formulações Matemáticas do PRVC
10
Esta formulação requer, além das variáveis usadas na formulação de fluxo de
veículos de dois índices, um novo conjunto de variáveis a serem associadas aos arcos,
as quais representam o fluxo de demanda entre eles. Além disso, este modelo requer
um grafo estendido G 0 = (V 0 , A0 ), que é obtido de G, adicionando-se o vértice n + 1,
que é uma cópia do vértice-depósito. As rotas agora partem do vértice zero para o
vértice n + 1. Duas variáveis não-negativas de fluxo, yij e yji , são associadas a cada
arco aij = (i, j) ∈ A0 . Quando um veículo viaja do consumidor i para o consumidor
j, yij e yji representam, respectivamente, a carga do veículo e a capacidade residual
do veículo ao longo do arco, ou seja, yji = Q − yij . As regras se invertem, caso
o veículo viaje de j para i. Portanto, para simplificar, a melhor formulação é:
yij + yji = Q, para qualquer arco aij = (i, j) ∈ A0 .
Para qualquer rota de uma solução factível, as variáveis de fluxo definem dois
caminhos direcionados. Um caminho parte do vértice zero para o vértice n+1 e suas
variáveis representam a carga do veículo. O outro caminho parte do vértice n + 1
para o vértice zero e suas variáveis representam a capacidade residual do veículo ao
longo do caminho. Estes caminhos descrevem um veículo que parte do vértice zero
com sua capacidade de carregamento completa, realiza entregas em cada consumidor
da rota, de acordo com suas demandas, e chega vazio ao vértice n + 1. Em seguida,
o veículo parte vazio do vértice n + 1 e coleta, em cada consumidor, uma quantidade
de mercadoria igual à sua demanda, retornando ao vértice zero com a capacidade
de carregamento completa.
O modelo é apresentado, então, como:
X
min
cij xij
(2.8a)
(i,j)∈A0
suj. a
X
j∈V 0
(yji − yij ) = 2qi , ∀ i ∈ V 0 \{0, n + 1}
(2.8b)
X
y0j = q (V 0 \{0, n + 1})
(2.8c)
X
yj0 = KQ − q (V 0 \{0, n + 1})
(2.8d)
X
y(n+1)j = KQ
(2.8e)
j∈V 0 \{0,n+1}
j∈V 0 \{0,n+1}
j∈V 0 \{0,n+1}
yij + yji = Qxij , ∀ (i, j) ∈ A0
X
(xij − xji ) = 2 , ∀ i ∈ V 0 \{0, n + 1}
(2.8f)
(2.8g)
j∈V 0
yij ≥ 0 , ∀ (i, j) ∈ A0
xij ∈ {0, 1} , ∀ i, j ∈ V
(2.8h)
(2.8i)
Nesse modelo, tem-se que:
xij : variável binária que assume o valor 1, caso o arco aij faça parte da solução
ótima do problema; ou 0, caso contrário;
cij : custo associado ao arco aij ;
2.3
Formulações Matemáticas do PRVC
11
yij e yji : carga do veículo e capacidade residual do veículo ao longo do arco direcionado aij .
A função objetivo (2.8a) minimiza o somatório do custo dos arcos pertencentes
à solução ótima. A restrição (2.8b) regula o fluxo de mercadorias nos vértices. O
fluxo de entrada menos o fluxo de saída em um consumidor é igual a duas vezes à
demanda desse consumidor. Já a restrição (2.8c) assegura que a soma das cargas do
veículo na saída do depósito zero seja igual à demanda dos consumidores da rota.
A restrição (2.8d) garante que a soma da capacidade residual do veículo na volta
ao depósito zero seja igual à diferença entre a capacidade do veículo e a demanda
da rota. A restrição (2.8e) assegura que a soma das cargas do veículo na saída do
depósito n + 1 seja igual à capacidade total da frota. A restrição (2.8f) define a
relação entre o fluxo de veículos e mercadorias. Quando um determinado veículo
atravessa o arco aij , a capacidade deste veículo é dada pela soma entre sua carga
atual e a sua capacidade residual. A restrição (2.8g) define o grau dos vértices
do grafo G 0 como 2, ou seja, em cada vértice i ∈ V 0 , com exceção dos depósitos
zero e n + 1, entram e saem exatamente dois arcos, de modo que seja assegurada a
existência do caminho em duas direções. A restrição (2.8h) assegura que a carga no
veículo será sempre maior ou igual a zero. Por fim, a restrição (2.8i) indica que xij
é uma variável binária.
2.3.4
Modelo de Particionamento de Conjuntos
A formulação em particionamento de conjuntos foi introduzida, pela primeira
vez, por Balinski e Quandt (1964). Considere que H = {H1 , . . . , Hq } seja uma
coleção de todos as rotas ou circuitos do grafo G, cada uma correspondendo a uma
rota factível, para q = |H|. Os termos associados são, então, definidos como:
cj : custo associado a cada rota Hj , representando o custo de se utilizá-la na solução
final do problema;
aij : coeficiente binário que assume o valor 1, caso o vértice i seja coberto ou visitado
pela rota Hj ; e 0, caso contrário;
xj : variável binária que assume o valor 1, se a rota Hj é selecionada na solução
ótima do problema; e 0, caso contrário.
O modelo associado é, então, dado por:
min
z=
q
X
c j xj
(2.9a)
j=1
suj. a
q
X
aij xj = 1 , ∀ i ∈ V\{0}
(2.9b)
X
xj = K
(2.9c)
j=1
q
j=1
xj ∈ {0, 1} , ∀ j = 1, . . . , q
(2.9d)
2.4
Problema de Roteamento de Veículos com Janelas de Tempo
12
Nesse modelo, a função objetivo (2.9a) representa o custo mínimo associado à
escolha ótima de rotas que o determinam. A restrição (2.9b) requer que cada cliente
i seja visitado (ou coberto) por exatamente uma única rota ou circuito, selecionado
do conjunto H. A restrição (2.9c) exige que K rotas ou circuitos sejam selecionados.
A principal desvantagem dessa formulação é a exigência de geração de todas as
possíveis rotas factíveis de uma dada instância, impraticável para casos de maior
porte.
2.4
Problema de Roteamento de Veículos com Janelas de Tempo
O Problema de Roteamento de Veículos com Janelas de Tempo (PRVJT) é uma
extensão do PRVC na qual, além da restrição de capacidade, são adicionadas restrições relacionadas ao horário em que cada consumidor exige ser atendido. Para
cada consumidor i, é associado um intervalo de tempo [ai , bi ], chamado de Janela de
Tempo, que indica o horário em que deve ser iniciado o atendimento, e um tempo de
serviço si , que indica o período de tempo que o veículo deve aguardar a conclusão
das tarefas. O horário em que o veículo parte do depósito é adicionado ao tempo
de viagem de cada arco percorrido e ao tempo de serviço em cada consumidor visitado. No caso do veículo ter chegado mais cedo ao consumidor, é permitido que ele
aguarde o início da janela de tempo no local. O tempo de serviço só inicia-se dentro
da janela de tempo e assim que o veículo chega. Logo, o PRVJT consiste, então,
em encontrar um conjunto de rotas, com o menor custo possível, respeitando-se as
seguintes restrições:
(i) : todas as rotas têm início e término no depósito;
(ii) : cada consumidor é visitado por apenas uma rota;
(iii) : a demanda total de qualquer rota não deve superar a capacidade Q do
veículo;
(iv) : para cada consumidor i, o início do atendimento deve estar compreendido
no período de tempo dado por [ai , bi ];
(v) : o veículo deve aguardar o fim do tempo de serviço si .
Os termos associados, utilizados no modelo matemático, são:
xijk : variável binária, que assume o valor 1 caso o veículo k percorra o arco (aij );
e assume o valor 0, caso contrário;
ti : tempo de chegada do veículo no vértice i;
wi : tempo de espera do veículo no vértice i;
K : número total de veículos disponíveis;
N : número total de consumidores;
2.4
Problema de Roteamento de Veículos com Janelas de Tempo
13
dij : distância euclidiana entre os vértices i e j;
cij : custo de viagem associado ao arco aij ;
tij : tempo de viagem entre os vértices i e j;
qi : demanda do consumidor i;
Qk : capacidade do veículo k;
ai : tempo inicial da janela de tempo;
bi : tempo final da janela de tempo;
si : tempo de serviço no consumidor i;
rk : tempo máximo de duração permitido para a rota executada pelo veículo k.
A formulação matemática, proposta por Tan et al. (2001b) para o PRVJT com
frota heterogênea, é a seguinte:
min
N X
N X
K
X
i=0
suj. a:
j=0
j6=i
N
K X
X
cij xijk
(2.10a)
k=1
xijk ≤ K , i = 0
(2.10b)
k=1 j=1
N
X
xijk =
j=1
N
X
i=1
(2.10c)
xijk = 1 , i ∈ {1, . . . , N }
(2.10d)
xijk = 1 , j ∈ {1, . . . , N }
(2.10e)
j=0
j6=i
N
K X
X
k=1
xjik ≤ 1 , i = 0 , k ∈ {1, . . . , K}
j=1
N
K X
X
k=1
N
X
i=0
i6=j
qi
N
X
xjik ≤ Qk , k ∈ {1, . . . , K}
(2.10f)
j=0
j6=1
N X
N
X
xijk (tij + si + wi ) ≤ rk , k ∈ {1, . . . , K}
(2.10g)
t0 = w0 = s0 = 0
N
K X
X
xijk (tij + si + wi ) ≤ tj , j ∈ {1, . . . , N }
(2.10h)
i=0
k=1
j=0
j6=i
(2.10i)
i=0
i6=j
ai ≤ (ti + wi ) ≤ bi , i ∈ {1, . . . , N }
xijk ∈ {0, 1}
(2.10j)
(2.10k)
2.4
Problema de Roteamento de Veículos com Janelas de Tempo
14
A função objetivo (2.10a) minimiza o somatório dos custos dos arcos pertencentes
à solução ótima, visitados por cada veículo.
A restrição (2.10b) exige que todas as rotas se iniciem no depósito. O número de
veículos que parte do depósito deve ser menor ou igual ao número total de veículos
disponíveis. Caso a restrição esteja em forma de igualdade, todos os veículos são
utilizados na solução; caso contrário, nem todos os veículos são utilizados na solução
do problema. A restrição (2.10c) requer que todas as rotas devem terminar no
depósito. Todo veículo que deixa o depósito deve retornar a ele após a execução
da rota. Caso a restrição esteja em forma de igualdade, o veículo k foi utilizado na
solução do problema; caso contrário, o veículo não está sendo usado.
Já as restrições (2.10d) e (2.10e) atuam em conjunto, implicando que cada consumidor deve ser visitado uma única vez e por um único veículo. Além disso, garantem
a continuidade da rota, ou seja, quando um veículo visita um consumidor, deve partir
após o término do serviço. A restrição (2.10f) representa a limitação da capacidade
de cada rota à capacidade de carga dos veículos.
As restrições (2.10g), (2.10h), (2.10i) e (2.10j) definem as restrições de tempo
para as rotas. A restrição (2.10g) exige que o somatório do tempo das rotas percorridas não ultrapasse o tempo máximo permitido para a duração da rota. A restrição
(2.10h) requer que os tempos de partida, de serviço e de viagem do depósito sejam
iguais a zero. Já a restrição (2.10i) impõe que o somatório do tempo dos consumidores percorridos não deva exceder o tempo limite da janela de tempo do próximo
consumidor. Por fim, a restrição (2.10j) garante que o início do atendimento (tempo
de chegada mais o tempo de espera) deverá estar dentro da janela de tempo do
consumidor.
Capítulo 3
Uma Revisão de Métodos Heurísticos
Neste capítulo é feita a caracterização dos métodos heurísticos, suas aplicações,
vantagens, desvantagens e principais métodos heurísticos aplicados ao Problema de
Roteamento de Veículos com Janelas de Tempo. A seção 3.1 descreve as principais
características dos métodos heurísticos. Na seção 3.2 é apresentado o comportamento das heurísticas construtivas. Já na seção 3.3 pode ser visto a forma de atuação das principais heurísticas de refinamento. A seção 3.4 faz a descrição geral do
que são metaheurísticas. Os algoritmos baseados em colônia de formigas são vistos
na seção 3.5. Uma abordagem da metaheurística de Busca Tabu é encontrada na
seção 3.6. Por fim, na seção 3.7 a técnica de Reconexão por Caminhos é revisada.
3.1
Métodos Heurísticos
Uma heurística pode ser definida como uma técnica de procura por boas soluções
em um problema de otimização a um custo computacional compensatório, sendo,
contudo, incapaz de assegurar a qualidade da solução encontrada ou a distância da
solução até o ótimo.
Um problema de otimização combinatória pode ser definido pelo par (S, f ), no
qual:
S: conjunto de soluções s possíveis para o problema;
f : S → <: função objetivo que associa cada solução s ∈ S a um valor real f (s).
A solução para o problema consiste em se determinar a solução ótima s∗ ∈ S,
que satisfaça à relação f (s∗ ) ≤ f (s), ∀ s ∈ S (para um problema de minimização)
ou f (s∗ ) ≥ f (s), ∀ s ∈ S (para um problema de maximização).
Os principais métodos utilizados para solucionar o Problema de Roteamento de
Veículos são os métodos de programação matemática, os métodos aproximativos e
os métodos heurísticos.
A princípio, um método de programação matemática (ou exato) é sempre capaz
de determinar a solução ótima para um problema, mas, para isso, pode exigir um
tempo computacional muito alto. De acordo com Cormen et al. (2002), alguns
problemas nem mesmo possuem algoritmos exatos e, dentre os que possuem, o tempo
computacional necessário pode tornar inviável a utilização do método.
15
3.1
Métodos Heurísticos
16
Os métodos aproximativos são capazes de buscar soluções com desempenho e
tempo consideráveis, além de serem viáveis à maioria dos problemas para o qual
são utilizados. De acordo com Cormen et al. (2002), os algoritmos aproximativos, a
cada iteração, se aproximam da solução ótima, e a qualidade de solução alcançada
está diretamente relacionada ao tempo de execução.
Os métodos heurísticos são capazes de encontrar soluções viáveis em tempo de
execução polinomial, mas não garantem a qualidade da solução encontrada, ou seja,
seu caráter de otimalidade ou não.
Este trabalho se atém à discussão da aplicação de métodos heurísticos na busca
de soluções para o PRV. Portanto, os métodos de programação matemática não
serão objeto de análise. O capítulo 3 apresenta uma revisão a respeito de métodos
heurísticos.
O Problema de Roteamento de Veículos (PRV) é classificado como um problema
de complexidade NP-Difícil e, com isso, o emprego de métodos exatos para sua
resolução é restrito. Em contrapartida, métodos heurísticos têm sido amplamente
utilizados em problemas de diversas ordens, sofrendo, no entanto, das dificuldades
inerentes à indefinição da qualidade da solução encontrada. Uma revisão de métodos
heurísticos é apresentada em Blum e Roli (2003).
A maioria dos métodos exatos desenvolvidos para o PRV procura relaxar as
restrições do modelo matemático, transformando-o em problemas mais simples e
que podem ser resolvidos em tempo polinomial. A resolução do PRV através de
um método exato necessita que o problema seja expresso através de um modelo
matemático. Na seção 2.3 são vistas as formas mais utilizadas de representação
matemática deste tipo de problema.
Os problemas combinatoriais classificados como NP-Difíceis de maior porte não
possuem métodos eficientes capazes de assegurar a otimalidade da solução encontrada. Logo, os métodos heurísticos são utilizados, pois têm uma boa relação entre
os resultados gerados e tempo computacional necessário.
O Problema de Roteamento de Veículos com Janela de Tempo (PRVJT) também
é classificado como NP-Difícil. Por isso, a procura da solução ótima através da
verificação de todas as soluções é inviável em problemas de maior porte, devido ao
custo computacional necessário. Um exemplo de problema de complexidade NPDifícil é o Problema do Caixeiro Viajante (PCV), em que um viajante de negócios
(ou caixeiro viajante) deve visitar um conjunto de n cidades, passando por cada
cidade uma única vez e retornando à cidade origem, percorrendo a menor distância
possível.
O número de soluções possíveis, assumindo que a distância de uma cidade à
outra seja simétrica (a distância de ida seja igual a distância de volta), é dado pela
fórmula (n − 1)!/2. Para uma instância de 20 cidades do PCV, o número total de
soluções possíveis seria da ordem de 1016 . Um computador capaz de calcular uma
solução em 10−8 segundos gastaria 19 anos para encontrar a melhor solução usando
um método que enumere todas as soluções possíveis.
Os métodos exatos possuem técnicas que otimizam a busca, reduzindo o número
de soluções, diminuindo o esforço computacional e, conseqüentemente, o tempo,
permitindo a aplicação em instâncias de maior porte. Ainda assim, a partir de certa
dimensão, o problema se torna inviável para um método exato e a escolha de um
novo método capaz de gerar boas soluções é justificada.
3.3
Heurísticas Construtivas
17
Os métodos heurísticos podem ser classificados da seguinte forma:
heurísticas construtivas: as soluções são construídas elemento a elemento, seguindo
algum critério de classificação, até que se tenha uma solução viável;
heurísticas de refinamento: partem de uma solução inicial viável qualquer e tentam
melhorá-la através de operações diversas, até que não seja mais possível ou
exista algum outro critério de parada;
heurísticas híbridas: combinam estratégias de duas ou mais heurísticas;
metaheurísticas: heurísticas inteligentes, capazes de escapar de ótimos locais e
áreas planas, além de serem mais flexíveis em sua aplicação.
3.2
Heurísticas Construtivas
Uma heurística construtiva gera uma solução de forma incremental, de modo que,
a cada iteração, um novo elemento é escolhido para integrar a solução. O elemento
escolhido varia de acordo com a função de avaliação utilizada e com o problema
abordado. A forma mais comum de escolha é a gulosa, na qual os elementos são
classificados de acordo com a função avaliação e o elemento melhor classificado é o
escolhido. A função de avaliação costuma ser específica para cada problema.
Os métodos aleatórios são heurísticas construtivas, nos quais os elementos são
adicionados de forma aleatória à solução até que esta esteja completa.
De acordo com Stutzle e Dorigo (2000), as soluções geradas por um algoritmo
de construção gulosa geralmente são melhores que as obtidas de forma aleatória. A
desvantagem da construção gulosa é que o número de soluções possíveis é pequeno.
A figura 3.1 apresenta um pseudo-código de uma heurística de construção gulosa.
procedimento Heurística Construtiva Gulosa;
1 sp = ∅;
2 enquanto sp não estiver completa
3
e = Função Gulosa(·);
4
sp = sp ⊗ e;
5 fim-enquanto;
6 retorne sp ;
fim Heurística Construtiva Gulosa;
Figura 3.1: Heurística Construtiva Gulosa - Pseudo-código.
Os algoritmos de construção gulosa são, na maioria das vezes, os métodos de
construção mais rápidos e quase sempre geram soluções que não se aproximam da
ótima. A aplicação de uma heurística de refinamento geralmente melhora os resultados. São exemplos de heurísticas construtivas para problemas de roteamento de
veículos: Vizinho mais próximo, Clark e Wright, Inserção mais barata, etc.
3.3
Heurísticas de Refinamento
3.3
18
Heurísticas de Refinamento
As heurísticas de refinamento partem de uma solução inicial completa e tentam
encontrar uma solução de melhor qualidade em sua vizinhança. Caso encontre, a
solução corrente é substituída pela nova solução e a busca continua. Esse processo é
repetido até que não exista uma solução melhor na vizinhança da solução corrente
ou até que algum critério de parada seja atendido.
A vizinhança de uma solução pode ser definida da seguinte forma: seja S o
conjunto de todas as soluções possíveis para um determinado problema de otimização
e f a função objetivo a minimizar. Uma função g, que varia com a estrutura do
problema tratado, associa cada solução s ∈ S a uma vizinhança N (s) ⊆ S. Um
movimento m transforma uma solução s em uma outra solução s0 , que esteja em sua
vizinhança. Logo, s0 ∈ N (s) é chamado de vizinho de s. A operação da aplicação do
movimento m em s gerando o elemento s0 pode ser representada da seguinte forma:
s0 ← s ⊕ m.
A figura 3.2 demonstra o pseudo-código de um algoritmo de refinamento que
recebe uma solução qualquer e retorna o melhor vizinho da mesma, caso exista.
procedimento Heurística de Refinamento (s ∈ S);
1 s0 = MelhorVizinho(s);
2 enquanto s0 6= s
3
s = s0 ;
4
s0 = MelhorVizinho(s);
5 fim-enquanto;
6 retorne s;
fim Heurística de Refinamento;
Figura 3.2: Heurística de Refinamento - Pseudo-código.
A escolha de uma estrutura de vizinhança é crucial para o desempenho de uma
heurística de refinamento e deve ser feita de forma específica para cada problema.
A estrutura de vizinhança define o conjunto de soluções que podem ser alcançadas
a partir de s em um único passo do algoritmo. As heurísticas de busca local possuem problemas comuns, como ficar facilmente presas a ótimos locais e depender
fortemente da solução inicial para alcançar bons resultados.
As principais heurísticas de refinamento serão descritas nas próximas seções.
3.3.1
Método da Descida
O Método da Descida parte de uma solução inicial qualquer e, a cada iteração,
analisa todos os vizinhos da solução corrente. Ao final de cada iteração, o melhor
vizinho é selecionado e se torna a solução corrente, desde que este represente uma
melhoria na função objetivo do problema. Como o Método da Descida só aceita
soluções de melhora, ele termina quando quando não existe um vizinho melhor do
que a solução corrente, ou seja, uma área plana ou um ótimo local é encontrado.
O comportamento do método em um problema de minimização pode ser visto na
figura 3.3.
3.4
Método da Descida
19
Função Objetivo
Solução Inicial
Ótimo Global
Ótimo Local
Figura 3.3: Comportamento de uma heurística de refinamento.
O pseudo-código do Método da Descida aplicado à minimização de uma função
f , partindo de uma solução s e utilizando uma estrutura de vizinhança N (·) pode
ser visto na Figura 3.4.
procedimento Descida(f (.), N (.), s);
1 V = {s0 ∈ N (s) | f (s0 ) < f (s)};
2 enquanto (|V| > 0) faça
3
Selecione s0 ∈ V, sendo s0 = arg min{f (s0 ) | s0 ∈ V};
4
s ← s0 ;
5
V = {s0 ∈ N (s) | f (s0 ) < f (s)};
6 fim-enquanto;
7 retorne s;
fim Descida;
Figura 3.4: Método da Descida - Pseudo-código.
3.3.2
Descida com Primeiro de Melhora
O método tradicional de descida/subida requer que toda a vizinhança de uma
solução seja explorada a cada iteração. Isso requer, em instâncias de maior porte,
um tempo computacional muito alto. O método de descida com primeiro de melhora
interrompe a busca e move para a próxima vizinhança assim que um melhor vizinho
é encontrado. Desta forma, apenas no pior caso toda a vizinhança é explorada.
Dada uma função f , uma solução s e uma vizinhança N (·), a figura 3.5 mostra o
procedimento de descida com primeiro de melhora.
3.4
Metaheurísticas
20
procedimento P rimeiraM elhora (f (·), N (·), s);
1 V = {s0 ∈ N (s)};
2 enquanto (|V | > 0) faça
3
selecione s0 ∈ V ;
4
se f (s0 ) < f (s);
5
então s ← s0 ;
6
V = {s0 ∈ N (s)};
7
senão V ← V \{s0 };
8
fim se;
9 fim enquanto;
10 retorne s;
fim procedimento;
Figura 3.5: Descida com Primeiro de Melhora - Pseudo-código.
3.4
Metaheurísticas
A palavra heurística é oriunda do verbo grego “heurisken”, que significa procurar,
encontrar, descobrir, enquanto o sufixo “meta” significa além, em um nível superior,
segundo Blum e Roli (2003). Genericamente, pode-se extrapolar o conceito de metaheurísticas como um processo inteligente de busca por soluções.
Uma boa definição de metaheurísticas é devida à Ribeiro (2002):
“As metaheurísticas são procedimentos destinados a encontrar uma boa
solução, eventualmente a ótima, consistindo na aplicação, em cada passo,
de uma heurística subordinada, a qual tem que ser modelada para cada
problema específico.”
As metaheurísticas e as heurísticas se diferenciam por, basicamente, dois fatores.
O primeiro é a capacidade das primeiras em escapar de ótimos locais, através de
técnicas peculiares a cada uma delas. O segundo é o fato das metaheurísticas serem
mais genéricas, ou seja, são aplicadas em uma variedade maior de problemas.
A forma de exploração do espaço de soluções permite dividir as metaheurísticas
em, pelo menos, duas categorias: busca local e busca populacional.
A busca no espaço de soluções nas metaheurísticas de busca local é feita através
de movimentos aplicados sobre a solução corrente, em busca de uma outra solução de
melhor qualidade em sua vizinhança. São exemplos de metaheurísticas de busca local: Busca Tabu, Simulated Annealing, Método de Pesquisa em Vizinhança Variável
e Iterated Local Search.
Os métodos de busca populacional armazenam um conjunto de boas soluções
e as combina de formas diversas. Esta combinação tenta reunir os bons atributos
presentes nas soluções e gerar uma outra ainda melhor. São exemplos de metaheurísticas de busca populacional: Algoritmos Genéticos, Algoritmos Meméticos e
Colônia de Formigas.
3.4
Inteligência Coletiva
3.4.1
21
Inteligência Coletiva
O termo Inteligência Coletiva ou Swarm Intelligence (IS) foi empregado pela
primeira vez em 1988 por Beni (1988), para descrever um sistema robótico celular,
no qual agentes simples se organizaram através do conceito do vizinho mais próximo.
Uma definição mais geral, feita por Bonabeau et al. (1999), é:
“Inteligência Coletiva é qualquer tentativa de projetar algoritmos ou dispositivos distribuídos de resolução de problemas inspirados no comportamento coletivo das colônias de insetos sociais e de outras sociedades
animais.”
Individualmente, os insetos sociais (que vivem em sociedade) têm capacidade de
memória limitada e são capazes apenas de realizar tarefas simples. Entretanto, de
acordo com Hölldobler e Wilson (1994) e Franks (1989), o comportamento coletivo
de uma colônia de insetos sociais é capaz de prover soluções inteligentes a diversos
problemas, como:
• carregar grandes objetos;
• formar pontes;
• encontrar o caminho mais curto entre a fonte de alimento e o ninho;
• criação e manutenção do ninho;
• regular a temperatura do ninho com precisão de até 1o C;
• dar preferência à fonte de comida mais rica disponível.
Um inseto social não tem conhecimento sobre como a tarefa que realiza afeta a
colônia. Suas ações são baseadas em decisões locais, utilizando-se de conhecimentos
primitivos e com resultados, geralmente, imprevisíveis. O comportamento inteligente
da colônia nasce como uma conseqüência da organização das tarefas e do cruzamento
de informações dos diversos insetos.
De acordo com Gaertner (2004), cientistas estudam estes tipos de espécies que
se auto-organizam para tentar entender como regras tão simples podem levar a um
sistema de comportamento tão complexo. Através de modelos abstratos que imitam
esse tipo de comportamento, diversas aplicações dotadas de Inteligência Coletiva
são introduzidas no nosso dia-a-dia.
A Inteligência Coletiva, na maioria das vezes, segue alguns princípios básicos:
• é necessário um certo número de agentes para que o sistema atue de forma
inteligente;
• interações aleatórias entre os agentes são necessárias para mudar o sistema de
forma global.
Nas formigas, as interações entre os agentes são feitas de forma indireta, através
do feromônio, como será visto na seção 3.5. As abelhas, por outro lado, se comunicam através de uma forma de dança rítmica, que indica, para as abelhas ociosas,
3.5
Algoritmos de Colônia de Formigas
22
a direção e a distância em que o alimento se encontra. Quanto maior a duração e
mais freqüente a dança é feita, melhor é a fonte de comida. Mesmo que as abelhas
só vejam uma única dança antes de partirem rumo ao alimento e, além do mais,
tendo em vista a inexistência de um dispositivo que determine o controle central da
qualidade do alimento encontrado por todas elas, ainda assim os agentes coletivos
são capazes de perceber as diferenças no ambiente e otimizar a coleta de comida.
É também conhecido como sinergia esse comportamento de trabalho ou esforço
conjunto de vários subsistemas para realização de uma tarefa complexa. De forma
genérica, pode ser definido como o efeito resultante da ação de vários agentes, que
atuam da mesma forma, tendo valor da ação conjunta resultante mais significativo
que a mera atuação individual.
Desde a década de 90, a Inteligência Coletiva (IS) também é muito explorada na
comunidade de robótica. Nesse caso, um sistema de agentes coletivos costuma ser
dito mais confiável que uma única máquina de funções complexas, conforme Gaertner (2004). Em um experimento do Idaho National Engineering and Environmental
Laboratory utilizando IS em robótica, os agentes coletivos foram capazes de determinar com sucesso o perímetro de um suposto vazamento de lixo tóxico. Quanto
maior o número de robôs envolvidos no processo, mais rápida a tarefa era concluída.
3.5
Algoritmos de Colônia de Formigas
Os algoritmos baseados em Colônia de Formigas (ou Ant Colony Optimization
- ACO) têm origem nos trabalhos de Marco Dorigo que, em Dorigo et al. (1991a),
propôs o algoritmo Ant System (AS) para solucionar o Problema do Caixeiro Viajante (PCV). Esse algoritmo consiste em um sistema multi-agente, no qual o comportamento de cada agente é inspirado no comportamento das formigas na natureza
(veja, para uma revisão completa, Dorigo e Blum (2005)). A partir de então, diversas variações desse algoritmo têm sido reportadas na literatura, nas mais diversas
aplicações. Além disso, é importante relatar que, bianualmente, os principais trabalhos no tema têm sido apresentados no evento ANTS - International Workshop on
Ant Colony Optimization.
A essência dos algoritmos ACO é a combinação de informações sobre a estrutura
do problema, conhecidas a priori e imutáveis, com as informações obtidas a partir
dos resultados gerados, conhecidas a posteriori e dinâmicas. Esta combinação de informações ajuda na convergência dos resultados e torna o processo auto-catalítico,
ou seja, se alimenta dos próprios dados gerados. Outra grande vantagem dos algoritmos ACO é a facilidade com que pode ser paralelizado computacionalmente.
De acordo com Bonabeau et al. (1999), os algoritmos baseados em Colônia de
Formigas são um dos mais bem sucedidos exemplos de inteligência Coletiva e têm
sido aplicados em diversas classes de problemas combinatoriais. Uma lista de aplicações de algoritmos de colônia de formigas a problemas combinatoriais diversos,
bem como as respectivas metodologias desenvolvidas, é apresentada na tabela 3.1,
retirada de Stutzle e Dorigo (2000).
As formigas atraem a atenção de pesquisadores devido ao elevado nível de organização que uma colônia pode atingir, especialmente quando comparado à sim-
3.5
Algoritmos de Colônia de Formigas
23
Tabela 3.1: Principais aplicações da metaheurística ACO.
Aplicação
Algoritmo
Ano Referências
AS
1991 Dorigo (1992), Dorigo et al. (1991b),
Colorni et al. (1996)
Ant-Q
1995 Gambardella e Dorigo (1995)
Problema
ACS e ACS-3-opt 1996 Gambardella e Dorigo (1996),
do
Dorigo e Gambardella (1997a),
Dorigo e Gambardella (1997b)
caixeiro
MMAS
1997 Stutzle e Hoos (1997), Stutzle (1999),
Stutzle e Dorigo (2000)
viajante
ASrank
1997 Bullnheimer et al. (1999c)
BWAS
2000 Stutzle e Hoos (1997)
2004 Hendtlass (2004)
AS-QAP
1994 Maniezzo et al. (1994)
Problema
HAS − QAP a
1997 Gambardella et al. (1999b)
quadrático
MMAS-QAP
1997 Stutzle e Hoos (1997), Stutzle e Dorigo (2000)
de
ANTS-QAP
1998 Maniezzo (1999)
alocação
AS − QAP b
1999 Maniezzo e Colorni (1999)
GA-ACO-LS
2006 Xu et al. (2006)
AS-JSP
1994 Colorni et al. (1994)
Problema
AS-FSP
1997 Stutzle (1998)
de
ACS-SMTTP
1999 Bauer et al. (1999)
agendamento
ACS-SMTWTP
1999 den Besten et al. (2000)
(scheduling)
ACO-RCPS
2000 Merkle et al. (2000)
2002 T’kindt et al. (2002)
Roteamento
AS-VRP
1997 Bullnheimer et al. (1999b),
Bullnheimer et al. (1999a)
de
HAS-VRP
1999 Gambardella et al. (1999a)
veículos
2005 Gambardella et al. (2005)
ABC
1996 Schoonderwoerd et al. (1996),
Schoonderwoerd et al. (1997)
ASGA
1998 White et al. (1998)
AntNet-FS
1998 Caro e Dorigo (1998a)
Roteamento
ABC-smart ants
1998 Bonabeau et al. (1998)
de redes
AntNet e AntNet-FA 1997 Caro e Dorigo (1997), Caro e Dorigo (1998a),
Caro e Dorigo (1998b)
Regular ants
1997 Subramanian et al. (1997)
2005 Bean e Costa (2005)
Coloração
ANTCOL
1997 Costa e Hertz (1997)
de grafos
2006 Bui e Nguyen (2006)
plicidade relativa do comportamento de cada membro da colônia. Em particular
para este trabalho, um objeto de estudo interessante de uma colônia de formigas é a
capacidade de encontrar o caminho mais curto entre a fonte de alimento e o ninho.
De acordo com Wilson e Hölldobler (1990), as formigas, mesmo sendo praticamente cegas, são capazes de estabelecer o caminho mais curto entre o formigueiro
3.5
Algoritmos de Colônia de Formigas
24
e a fonte de alimento, através da cooperação entre indivíduos, usando comunicação
indireta por modificações no ambiente.
Foi estudado também por Beckers et al. (1992) a capacidade das formigas de
se adaptarem a mudanças no ambiente, como, por exemplo, encontrar um novo
caminho mais curto, a partir do momento que o antigo se torna inviável.
A figura 3.6 ilustra uma experiência feita por Goss et al. (1989) para estudar o
comportamento das formigas. Inicialmente, elas exploram, aleatoriamente, a área
ao redor do formigueiro à procura de comida. Enquanto se deslocam, depositam
sobre o solo uma substância volátil chamada feromônio, que as auxilia a encontrar o
caminho de volta ao formigueiro. Desta forma, quando uma formiga estabelece uma
trilha ou caminho entre a fonte de alimento e o formigueiro, o caminho percorrido
ficará marcado por um rastro desta substância. As demais formigas à procura de
alimento detectam a presença de feromônio no solo e tendem a escolher o caminho
com a maior concentração do mesmo. As formigas que escolheram o caminho mais
curto farão o percurso em menor tempo e o rastro de feromônio será reforçado com
uma freqüência maior que nos caminhos mais longos. Assim, os caminhos mais
eficientes, ou seja, de menor distância percorrida, receberão maior quantidade de
feromônio e tenderão a ser os mais escolhidos. Por ser uma substância volátil, a
evaporação do feromônio evita que, com o tempo, um caminho que não esteja sendo
mais utilizado continue a influenciar a decisão das formigas.
R1
L1
L4
L1
L2
R1
?
L3
R3
?
L2
(a)
R2
(b)
L1
R1
L1
R4
L4
L6
R4
R2
R5 R6
L5
L6
L5
R5 R6
R1
L2
R2
R4
L4
L2
R2
L3
R3
(c)
L3
R3
(d)
Figura 3.6: Comportamento de formigas reais.
Observa-se, então, na figura 3.6, que: em 3.6(a), as formigas chegam a um ponto
de decisão; em 3.6(b), as formigas estão escolhendo, de forma aleatória, qual o caminho a seguir; em 3.6(c), as formigas que escolheram o caminho mais curto (caminho
de baixo) alcançam o outro lado mais rapidamente; e em 3.6(d), o feromônio (representado pelas linhas) acumula mais rapidamente no caminho mais curto.
3.5
Algoritmo Ant System
3.5.1
25
Algoritmo Ant System
O algoritmo Ant System (AS), proposto por Dorigo et al. (1991a), foi o primeiro
algoritmo que utiliza a formulação de Colônia de Formigas. Sua principal importância é servir como base para a criação do paradigma ACO de criação de algoritmos.
Nesse algoritmo, a cada iteração, as formigas decidem, de acordo com uma medida probabilística, qual o caminho a seguir dentre aqueles não visitados. Cada
formiga tem uma memória, também chamada de lista tabu, que armazena os caminhos percorridos por ela e previne que um caminho seja visitado pela formiga mais
de uma vez. A probabilidade de escolha de um caminho é proporcional ao rastro de feromônio e à atratividade do mesmo - que varia de acordo com o tipo e a
modelagem do problema em que o algoritmo está sendo aplicado. Se a formiga já
percorreu aquele caminho, a probabilidade de escolha é zero; caso contrário, é positiva. A escolha do caminho a ser seguido pela formiga é feita segundo a expressão:

β
α 
·
η
τ

(r,s)
(r,s)


X β , se s 6∈ Mk
α 

τ(r,u) · η(r,u)
pk (r, s) =
(3.1)
u6∈Mk






0,
caso contrário
Essa expressão é apresentada em Dorigo et al. (1991a). Nela, tem-se que:
• pk (r, s): probabilidade da formiga k mover-se do nó r para o nó s;
• τ(r,s) : quantidade de feromônio associado ao arco (r, s);
• η(r,s) : atratividade do arco (r, s);
• U : conjunto de arcos não visitados;
• Mk : lista tabu da formiga k;
• α e β: parâmetros de controle da influência de τ(r,s) e η(r,s) . Estão situado na
faixa [0, 1].
Caso o arco não tenha sido percorrido por formigas, a deposição de feromônio no
mesmo é zero; caso contrário, é positiva.
No roteamento de veículos, o parâmetro atratividade de um arco é chamado
de visibilidade e é calculado como o inverso da distância entre os consumidores ou
vértices do arco. As figuras 3.7 e 3.8 ilustram o comportamento da formiga e os
parâmetros que influenciam na decisão probabilística da mesma.
Na figura 3.7, a cidade j está mais próxima da cidade i, na qual a formiga se
encontra. Logo, para o parâmetro visibilidade, a cidade escolhida seria a cidade j.
Já na figura 3.8, a cidade k possui um rastro de feromônio mais forte (representado por uma linha mais grossa). Logo, de acordo com esse outro parâmetro, a
cidade escolhida seria a k.
É dito que uma formiga mudou de “estado” quando se move de um nó para outro.
Ao final de cada iteração, uma taxa de evaporação remove parte do feromônio,
reduzindo a quantidade da substância nos arcos. Isso evita que as formigas fiquem
3.5
Algoritmo Ant System
26
i
?
dir
dij
j
Memória da
formiga
dik
r
ηik
ηir
k
ηij
0
1, 0
0, 5
Figura 3.7: Parâmetro Visibilidade.
i
τir
τij
j
τik
r
k
Figura 3.8: Parâmetro Rastro de Feromônio.
presas em ótimos locais e, ao mesmo tempo, diminui a probabilidade de escolha de
arcos que não foram utilizados recentemente. A expressão que determina a variação
do feromônio no algoritmo Ant System é apresentada em Dorigo et al. (1991a) e é
dada por:
τ(r,s) (t + 1) = (1 − ρ) τ(r,s) (t) + ∆τ(r,s) (t)
(3.2)
Nesta expressão, tem-se que:
• ρ: taxa de evaporação;
• τ(r,s) (t): quantidade de feromônio associado ao arco (r, s) na iteração t;
• ∆τ(r,s) (t): variação do feromônio no arco (r, s) na iteração t.
A quantidade de feromônio a ser depositada nos arcos varia de acordo com a
qualidade da solução (distância percorrida). Isso é representado em Dorigo et al.
(1991a) pela expressão:
 k
∆τ
= 0, se a formiga k não passar pelo arco (r, s);


 (r,s)
(3.3)
Q

k

∆τ(r,s) = k , se a formiga k passar pelo arco (r, s).
L (t)
Em (3.3), tem-se que:
3.5
Algoritmo Ant System
27
• Q: quantidade de feromônio de cada formiga;
• Lk (t): distância percorrida pela formiga k na iteração t;
k
• ∆τ(r,s)
: quantidade de feromônio no arco (r, s) depositado pela formiga k.
A deposição do feromônio é feita ao final de cada iteração, ao contrário do que
acontece na natureza, em que é feita durante o caminho da formiga. Por isso, para
fins de compreensão, é considerado que, ao final de cada iteração, as formigas fazem o
caminho inverso da geração da solução, mas, desta vez, depositando o feromônio. A
quantidade de feromônio associada a cada arco representa o aprendizado da colônia
no decorrer do algoritmo.
Inicialmente, conforme aponta Dorigo et al. (1991a), foram definidos três algoritmos, diferindo apenas na forma como o feromônio é depositado: Ant-density,
Ant-quantity e Ant-cycle. Nos algoritmos Ant-density e Ant-quantity, o feromônio é
depositado durante a construção da solução; no algoritmo Ant-cycle, somente após
a construção da solução. Após testes de desempenho, foi verificado que o algoritmo Ant-cycle possui, dentre os três, o melhor desempenho. Assim, os algoritmos
Ant-density e Ant-quantity foram abandonados e o algoritmo Ant-cycle passou a
ser conhecido como Ant System. Essas informações também podem ser obtidas em
Dorigo (1992), Dorigo et al. (1991b), Colorni et al. (1992) e Colorni et al. (1996). A
figura 3.9 mostra o pseudo-código do algoritmo Ant System aplicado ao PCV.
1 repita
2
Aleatoriamente posicione m formigas em n nós
3
para nó = 1 até n faça
4
para formiga = 1 até m faça
5
Escolha, probabilísticamente, o próximo nó para se mover
6
fim para
9
fim para
7
Calcule a distância percorrida de cada formiga
8
Aplique o rastro feromônio de cada formiga
10
Aplique a evaporação do feromônio
11 até Condição-de-saída
Figura 3.9: Pseudo-código do Ant System aplicado ao PCV.
O algoritmo Ant System foi desenvolvido para o PCV mas, inicialmente, não era
capaz de competir com os melhores algoritmos existentes quando de sua publicação.
Os pesquisadores, então, propuseram novas mudanças, com o intuito de melhorar
seu desempenho. A primeira melhoria introduzida, chamada de estratégia elitista,
apresentada em Dorigo (1992) e Colorni et al. (1996), consistia em dar um reforço
adicional de feromônio aos arcos pertencentes à melhor solução global. A solução que
melhor atende à função objetivo, computada desde o início do algoritmo, é chamada
de “melhor solução global”. O nome “elitista” veio da analogia aos algoritmos genéticos, nos quais os melhores indivíduos são selecionados para as próximas gerações,
visando manter suas boas características. A estratégia, então, consistia em premiar
3.5
Algoritmo Ant Colony System
28
as formigas que tivessem arcos pertencentes à melhor solução até o momento, de
forma a procurar soluções ainda melhores em sua vizinhança.
Seguindo a estratégia elitista, uma outra importante melhoria feita no algoritmo
AS padrão foi a chamada ASrank , conforme Bullnheimer et al. (1999c). Nela, a cada
iteração, as formigas são classificadas de acordo com sua performance e apenas uma
fração das melhores formigas poderá depositar feromônio. Além disso, a quantidade
de feromônio a ser depositado pelas formigas varia de acordo com a quantidade a
ser depositada pela própria formiga e pela melhor formiga.
Uma outra modificação no algoritmo AS padrão, introduzida por Stutzle e Hoos
(1997), foi chamada de MAX-MIN Ant-System (MMAS). Para evitar a rápida convergência dos resultados e/ou a possibilidade que a busca fique presa em ótimos
locais, foram introduzidos limites máximos e mínimos à quantidade de feromônio
presente nos arcos. Esses limites, através da influência do feromônio na decisão das
formigas, controlam o comportamento geral da colônia e levam os resultados para
perto dos objetivos.
A principal modificação realizada no algoritmo AS padrão é chamada de Ant
Colony System e será vista na seção 3.5.2.
3.5.2
Algoritmo Ant Colony System
O algoritmo Ant Colony System (ACS) foi introduzido em Gambardella e Dorigo
(1996), Dorigo e Gambardella (1997a) e Dorigo e Gambardella (1997b), de forma a
melhorar a performance do algoritmo Ant System.
Segundo Stutzle e Dorigo (1999), o ACS possui três importantes diferenças com
relação ao algoritmo AS padrão:
• o ACS usa um critério de seleção mais agressivo;
• o feromônio é adicionado apenas aos arcos associados à melhor solução global;
• cada vez que uma formiga percorre um determinado arco (aij ), ela remove
parte do feromônio nele depositado.
Uma das modificações do ACS em relação ao AS é um novo critério de seleção, chamado pseudo-randômico-proporcional, no qual o parâmetro q0 controla a
formação das soluções, se de forma probabilística ou de forma gulosa, conforme a
expressão:
n

β o
α 
, se q ≤ q0 ;
η(r,u)
τ(r,u)
 arg max
u6∈M
s=
(3.4)


expressão (3.1), caso contrário.
Um número aleatório q é gerado e comparado ao parâmetro q0 , cada vez que a
formiga necessita escolher o próximo nó para se mover. O algoritmo funciona de
forma gulosa se o valor de q for menor que o parâmetro q0 . Desta forma, a geração
da solução valoriza o aprendizado gerado pela deposição do feromônio. Caso o valor
de q seja maior que q0 , a geração da solução será de feita de forma probabilística,
segundo a expressão (3.1).
O processo de deposição e evaporação do feromônio no ACS foi modificado em
relação ao AS, de modo que a matriz de feromônio seja atualizada de forma global e
3.5
Algoritmo Ant Colony System
29
1 repita
2
Aleatoriamente posicione m formigas em n nós
3
para nó = 1 até n faça
4
para formiga = 1 até m faça
5
Escolha o próximo nó para se mover
6
Aplique a regra de atualização local do feromônio
7
fim para
8
fim para
9
Calcule a distância percorrida pela formiga m
10
Executar Daemon-Actions (opcional)
11
Aplique a atualização global do feromônio
12 até Condição-de-saída
Figura 3.10: Pseudo-código do Ant Colony System aplicado ao PCV.
local. A atualização global é feita para privilegiar apenas os caminhos pertencentes
à melhor solução global, ou seja, a cada iteração, após todas as formigas terem
gerado suas soluções, apenas a formiga que gerou a melhor solução desde o início do
algoritmo irá depositar feromônio. De acordo com Dorigo e Gambardella (1997b), a
atualização global do ACS evita a lenta convergência dos resultados, concentrando
as buscas na vizinhança da melhor solução. A atualização global do feromônio é
feita pela expressão:
τ(r,s) = (1 − ρ) τ(r,s) + ρ/JΨgb ,
∀ (r, s) ∈ Ψgb
(3.5)
na qual:
• τ(r,s) : quantidade de feromônio associado ao arco (r, s);
• ρ: taxa de evaporação, tal que ρ ∈ [0, 1];
• JΨgb : menor distância percorrida, computada desde o início da aplicação do
algoritmo;
• Ψgb : melhor solução computada desde o início da aplicação do algoritmo.
Segundo Ellabib et al. (2003), a fase final do algoritmo AS (fase de evaporação)
é substituída, no ACS, por uma atualização local do feromônio, com a diferença de
ser aplicada durante a construção das soluções. Cada vez que uma formiga se move
de um arco para outro, a quantidade de feromônio associado ao arco é reduzida. O
resultado da atualização local é a modificação dinâmica da possibilidade de escolha
do caminho pelas formigas. Logo, cada vez que um arco é percorrido por uma
formiga, ele se torna ligeiramente menos desejável para as demais. A forma de
atualização local do feromônio pode ser visto na expressão:
τ(r,s) = (1 − ρ) τ(r,s) + ρτ0
para
• τ(r,s) : quantidade de feromônio associado ao arco (r, s);
(3.6)
3.5
Ant Colony Optimization - Considerações Gerais
30
• ρ: taxa de evaporação, de modo que ρ ∈ [0, 1];
• τ0 : quantidade de feromônio inicial em todos os arcos.
De acordo com Gambardella et al. (1999a), um bom valor inicial para τ0 é dado
por:
1
τ0 =
nJΨh
sendo JΨh a distância percorrida, calculada pela heurística do Vizinho mais Próximo,
introduzida por Flood (1956), e n é o número de nós.
Um procedimento chamado Daemon Actions pode ser usado, opcionalmente,
para auxiliar no processo centralizado de tomada de decisões pelo ACS, em situações
como ativar um procedimento de busca local ao final de cada iteração ou depositar
uma quantidade extra de feromônio sobre a melhor solução. Esses são exemplos de
decisões que não podem ser tomadas pelas formigas individualmente. A figura 3.10
mostra o pseudo-código do algoritmo Ant Colony System aplicado ao PCV.
3.5.3
Ant Colony Optimization - Considerações Gerais
De acordo com Dorigo et al. (1999), os algoritmos baseados em colônias de formigas possuem, de uma forma geral, as seguintes características:
• apesar de cada formiga ser capaz de encontrar uma solução, soluções de boa
qualidade só emergirão como resultado da interação coletiva entre as formigas;
• cada formiga faz uso apenas de suas próprias informações, além das informações locais sobre o nó que visita;
• as formigas se comunicam apenas de forma indireta, através da leitura e escrita
nas variáveis de rastro de feromônio;
• as formigas não são adaptáveis, pelo contrário, modificam a forma como o
problema é representado e percebido para as outras formigas.
Também de acordo com Dorigo et al. (1999), as formigas da colônia possuem
também características como:
• uma formiga procura por uma solução factível de custo mínimo
Jbψ = min Jψ (L, t)
ψ
• uma formiga k possui uma memória M k que usa para armazenar informações
sobre o caminho percorrido até o momento. Esta memória pode ser usada
para: (i) construir soluções factíveis; (ii) para avaliar a solução encontrada; e
(iii) refazer o caminho de trás para frente;
• uma formiga no estado sr = hsr−1 , ii pode-se mover para qualquer nó j em
sua vizinhança factível N ki , definida como N ki = {j|(j ∈ Ni ) f (hsr , ii ∈ S)};
3.5
Comparação entre Formigas Reais e Formigas Artificiais
31
• uma formiga k pode ser associada a um estado sks e a uma ou mais condições
de parada ek ;
• formigas começam de um estado inicial e movem-se para estados vizinhos
factíveis, construindo a solução de forma incremental. O procedimento de
construção termina quando pelo menos uma condição de parada ek de de
qualquer formiga k é atingido;
• uma formiga k localizada em um nó i pode-se mover para um nó j escolhido
de N ki . O movimento é selecionado de acordo com uma regra probabilística.
• a decisão probabilística da formiga baseia-se em: (i) os valores armazenados
de forma local na estrutura do nó Ai = [aij ], chamada tabela de roteamento da
formiga, obtida através da relação entre a quantidade de feromônio presente no
nó e valores heurísticos; (ii) a memória da formiga, que armazena seu passado;
e (iii) as restrições do problema.
• quando se movem do nó i para o nó j, as formigas podem atualizar a quantidade de feromônio presente no arco (i, j). Isto é chamado atualização on line
passo-a-passo do feromônio.
• uma vez construída a solução, a formiga pode retraçar o mesmo caminho
de trás para frente, atualizando o feromônio nos arcos atravessados. Isto é
chamado de atualização on line atrasada do feromônio.
• uma vez que a formiga tenha construído a solução e atualizado o feromônio, a
formiga morre, liberando recursos.
3.5.4
Comparação entre Formigas Reais e Formigas Artificiais
As formigas “artificiais” criadas por Dorigo possuem semelhanças e diferenças com
relação às formigas “reais” encontradas na natureza. Para Dorigo et al. (1999), entre
as semelhanças encontradas, destacam-se:
• Cooperação: tanto na natureza quanto no mundo virtual as formigas cooperam
entre si através da deposição e remoção do feromônio;
• Modificações no ambiente: o feromônio depositado pelas formigas atua nas
duas realidades, modificando o ambiente e, conseqüentemente, fixando o aprendizado gerado pelas formigas;
• Objetivos: as formigas virtuais ou reais partilham alguns objetivos em comum,
como encontrar o caminho mais curto;
• Inteligência / Coletividade: nas duas realidades, a inteligência é obtida através
da coletividade, pois o comportamento individual é insuficiente ou aleatório;
• Comportamento estocástico: a forma probabilística é característica as duas
realidades.
3.6
Metaheurística Busca Tabu
32
Entretanto, existem várias diferenças entre as formigas reais e as criadas por
Dorigo. As principais são:
• Tipo de Movimento: nas formigas reais, os movimentos são contínuos, enquanto nas artificiais são discretos;
• Memória: as formigas reais não possuem uma estrutura de memória como no
caso das virtuais, que as impeça de realizar movimentos.
• Feromônio: o depósito de feromônio no mundo artificial ocorre com base na
qualidade da solução encontrada;
3.6
Metaheurística Busca Tabu
A metaheurística Busca Tabu (BT) foi proposta, de forma independente, por
dois autores, Glover (1986) e Hansen (1986), e rapidamente se tornou uma das mais
robustas e usadas metaheurísticas para a resolução de problemas combinatoriais.
Isso pode ser visualizado pela lista apresentada na tabela 3.2, retirada de Bräysy
e Gendreau (2001), na qual são referenciadas aplicações dessa técnica a problemas
diversos de otimização combinatória.
A Busca Tabu estabelece regras que regem uma heurística de refinamento na
exploração do espaço de soluções. Através do uso de uma estrutura de memória
e da aceitação de movimentos de piora, visa evitar que a busca retorne a soluções
visitadas previamente.
A estrutura de memória presente é uma dos principais características da Busca
Tabu, pois armazena o histórico da busca e guia a procura de forma adaptativa,
prevenindo que a heurística de refinamento fique presa em ótimos locais ou realize
ciclos.
A Busca Tabu funciona a partir de uma solução inicial qualquer, vasculhando
toda a vizinhança da mesma, à procura pelo melhor vizinho. O melhor vizinho
encontrado, mesmo que seja uma solução pior que a atual, se torna a nova solução
corrente e o processo é repetido até que algum critério de parada seja atingido.
3.6
Metaheurística Busca Tabu
33
Tabela 3.2: Principais aplicações da metaheurística Busca Tabu no PRVJT.
Solução inicial
Operadores
Min. Observação
Rotas
Garcia et al. (1994)
Heurística I1 do Solomon 2-opt, Or-opt
Sim Vizinhança restrita a
arcos em distâncias próximas
Rochat e Taillard (1995) Modificação da
2-opt
Não Memória adaptativa
I1 do Solomon, 2-opt
Carlton (1995)
Heurística de inserção
Realocação
Não Busca Tabu Reativa
Potvin et al. (1996)
Heurística I1 do Solomon 2-opt*, Or-opt
Sim Vizinhança restrita a
arcos em distâncias próximas
Taillard et al. (1997)
Heurística I1 do Solomon CROSS
Não Janelas de tempo folgadas,
memória adaptativa
Badeau et al. (1997)
Heurística I1 do Solomon CROSS
Não Janelas de tempo folgadas,
memória adaptativa
Chiang e Russell (1997) Modificação
λ − interchange
Não Busca Tabu Reativa
da Russell (1995)
Backer et al. (2000)
Heurística de Savings
Troca, realocação,
Não Programação de restrições
2-opt*, 2-opt, Or-opt
para checar a factibilidade das soluções
Brandão (1999)
Heurística de inserção
Realocação, troca,
Não Vizinhança restrita a
GENI
arcos em distâncias próximas
Schulze e Fahle (1999) Solomon I1, I1 paralela Ejection chains, Or-opt Sim Rotas geradas armazenadas
e heurística de Savings
em um grupo
Tan et al. (2001b)
Heurística de inserção
λ − interchange,
Não Thangiah (1994)
2-opt*
Lau et al. (2000)
Heurística de inserção
Troca, realocação
Não Diversificação baseada em restrições
Cordeau et al. (2001)
Modificação da
Realocação, GENI
Não Heurística Sweep
Lau et al. (2003)
Relocação de
Troca, realocação
Sim Lista de espera para nós não visitados,
lista de espera
limite de número de rotas
Autor
3.6
Metaheurística Busca Tabu
34
Solução
Ciclagem
Função Objetivo
Ótimo Global
Movimento de Piora
Ótimo Local
Solução
Figura 3.11: Ciclagem na Busca Tabu.
Um problema que surge ao aceitar movimentos de piora e escolher sempre o
melhor vizinho é a ciclagem. Um exemplo de ciclagem ocorre quando um ótimo local
é atingido. Nesse caso, a Busca Tabu se moverá, então, para seu melhor vizinho, o
qual possui uma solução de pior qualidade. Quando este melhor vizinho se tornar a
solução corrente e a Busca Tabu vasculhar a vizinhança a partir do mesmo, o novo
melhor vizinho será novamente o ótimo local encontrado na iteração anterior. A
figura 3.11 demonstra a ocorrência da ciclagem na Busca Tabu.
O uso de uma estrutura de memória, conhecida como lista tabu, na qual são armazenados as soluções visitadas, evita que a ciclagem ocorra, ao proibir que a busca
retorne às soluções que constam na lista. Entretanto, o tempo de processamento de
todos os dados pertencentes à solução pode tornar o processo demasiado lento ou até
mesmo o inviabilizar. Para tornar o processo menos custoso computacionalmente,
a lista tabu, geralmente, é feita de forma a armazenar apenas os movimentos de exploração da vizinhança, reduzindo a quantidade de parâmetros a serem comparados
e, conseqüentemente, o tempo computacional necessário. Isto, contudo, traz novas
dificuldades ao processo, como será visto mais adiante.
Uma lista tabu de movimentos possui movimentos proibidos (ou tabus) que,
quando realizados, podem levar a uma solução já analisada anteriormente. Porém,
existe um conflito de objetivos, pois, por um lado, uma lista tabu grande evitaria a
ciclagem e, por outro, um mesmo movimento pode levar a diferentes soluções.
A lista tabu armazena os movimentos efetuados na forma de fila, ou seja, quando
a lista atinge seu tamanho máximo e um novo movimento deve ser adicionado, o
3.7
Metaheurística Busca Tabu
35
movimento mais antigo é excluído da mesma.
O número de iterações que um movimento estará proibido de ser realizado é
definido pelo tamanho da lista tabu. Uma lista tabu muito grande pode restringir
demais a busca, pois, ao tornar tabu um grande número de movimentos, o procedimento termina de forma prematura, por não existir movimentos factíveis a realizar.
Por outro lado, uma lista tabu muito pequena aumenta as chances do processo ciclar,
pois reduz o número de iterações em que o movimento é proibido de ser realizado.
Por isso, a Busca Tabu deve manter um rigoroso controle sobre o tamanho da
lista tabu. Uma forma de se contornar estes problemas é a implementação de uma
lista de tamanho variável, também chamada de lista tabu dinâmica. Ela tem seu
tamanho alterado periodicamente no decorrer do processo de Busca Tabu, tentando
evitar que a busca fique muito restrita ou cicle. Uma revisão mais completa sobre
lista tabu dinâmicas pode ser vista em Schaefer (1996) e Dammeyer e Voß (1993).
Apesar de todos os esforços para manter uma lista tabu de tamanho adequado,
é possível que um movimento considerado tabu leve a uma solução não analisada
ainda. Neste caso, uma função de aspiração pode tornar possível a aceitação de um
movimento pertencente à lista tabu, desde que leve a uma solução desconhecida e
com bons atributos. O critério de aspiração mais comum na Busca Tabu é baseado
na função de avaliação, ou seja, o movimento tabu é aceito somente se levar a uma
solução melhor do que a melhor solução existente até o momento.
Os critérios de parada mais comuns à Busca Tabu são:
• número de iterações sem melhora: o processo pára após certo número de iterações sem melhora;
• tempo de processamento: o processo pára após um tempo de processamento
pré-determinado;
• limite a atingir: o processo pára quando um limite pré-definido é alcançado.
A Figura 3.12 apresenta o procedimento Busca Tabu. De uma forma geral, a
Busca Tabu pode ser descrita como um conjunto de soluções iniciais viáveis x ∈ X,
no qual cada solução possui um conjunto vizinhança associado, N (x) ⊂ X, chamada
de vizinhança de x. Cada solução da vizinhança x0 ∈ N (x) pode ser alcançada
a partir de x através de um movimento previamente definido. A cada iteração, a
lista tabu restringe a vizinhança N (x) a uma vizinhança N 0 (x) ⊆ N (x), no qual
os elementos de N (x) classificados como tabu não serão parte da vizinhança N 0 (x).
Os movimentos classificados como tabu são impedidos por t iterações de serem
realizados.
Para uma referência mais detalhada sobre a BT, pode-se consultar, por exemplo:
Glover (1986), Glover (1989), Glover (1990), Glover e Laguna (1993), Glover e
Laguna (1997) e Hertz e de Werra (1990). Aplicações recentes da Busca Tabu ao
PRVJT podem ser vistas em Costa (2005) e em Fraga et al. (2005).
Por fim, duas outras estratégias muito utilizadas em conjunto com a Busca Tabu,
mas que não serão abordados aqui, são as estratégias de intensificação e diversificação. A intensificação direciona a busca no espaço de soluções para áreas e movimentos que, historicamente, levam a soluções de boa qualidade. A diversificação faz
o oposto da intensificação, levando a busca à movimentos não utilizados e regiões
não exploradas do espaço de soluções e que diferem das soluções já encontradas.
3.7
Reconexão por Caminhos
36
procedimento BT (f (.), N (.), a(.), |V|, fmin , |T |, BT max, s)
1 s? ← s;
{Melhor solução obtida até então}
2 Iter ← 0;
{Contador do número de iterações}
3 M elhorIter ← 0; {Iteração mais recente que forneceu s? }
4 T ← ∅;
{Lista Tabu}
5 Inicialize a função de aspiração a;
6 enquanto (f (s) > fmin e Iter − M elhorIter < BT max) faça
7
Iter ← Iter + 1;
8
Seja s0 ← s ⊕ m o melhor elemento de V ⊂ N (s) tal que
o movimento m não seja tabu (m 6∈ T ) ou
s0 atenda a condição de aspiração (f (s0 ) < a(f (s)));
9
Atualize a lista tabu T ;
10
s ← s0 ;
11
se (f (s) < f (s? )) então
12
s? ← s;
13
M elhorIter ← Iter;
14
fim-se;
15
Atualize a função de aspiração a;
16 fim-enquanto;
17 s ← s? ;
18 Retorne s;
fim BT ;
Figura 3.12: Pseudo-código da Busca Tabu
3.7
Reconexão por Caminhos
A técnica de Reconexão por Caminhos (Path Relinking) foi introduzida por
Glover (1996) como uma estratégia de intensificação dos resultados, através da exploração de trajetórias que conectam soluções elite (melhores soluções geradas).
A idéia principal do método é unir os bons atributos pertencentes às melhores
soluções em uma única solução. Ela funciona gerando e explorando caminhos no
espaço de soluções, partindo de uma solução corrente até uma solução elite, através
de movimentos que introduzem atributos da solução elite na solução corrente. Reconexão por Caminhos pode ser usada como um processo de intensificação a cada
ótimo local encontrado e, de acordo com Glover e Laguna (1997), essa é a forma
mais eficiente de utilização do método. A figura 3.13 ilustra a idéia geral da técnica
Reconexão Por Caminhos. A partir de uma solução inicial até uma solução guia, são
geradas diversas soluções no caminho, que possuem atributos de ambas as soluções
e que podem ser melhores que ambas. A técnica é aplicada em pares de soluções
(s1 ; s2 ), sendo s1 a solução corrente, obtida após um procedimento de busca local,
e s2 uma solução escolhida aleatoriamente de um limitado conjunto de soluções
elite, gerado durante a construção das soluções. Cada solução obtida ao final de
uma busca local é considerada como uma candidata a ser inserida no conjunto elite,
desde que ela seja melhor que a solução de pior qualidade do conjunto e apresente
um percentual mínimo de diferença em relação a cada solução do conjunto elite. Se o
conjunto estiver vazio, a solução é simplesmente inserida no conjunto. Se o conjunto
3.7
Reconexão por Caminhos
Solução
Inicial
37
Solução Guia
Figura 3.13: Idéia geral da técnica Reconexão Por Caminhos.
procedimento P athRelinking;
1 g ∗ ← s;
2 Atribuir a g 0 a melhor solução entre s e g;
3 Calcular o conjunto de movimentos possiveis ∆(s; g);
4 enquanto |∆(s; g)| =
6 0 faça;
00
5
Atribuir a g a melhor solução obtida
aplicando o melhor movimento de ∆(s; g) a g ∗ ;
6
Excluir de ∆(s; g) o movimento aplicado;
7
g ∗ ← g 00 ;
8
se f (g ∗ ) < f (g 0 ) então;
9
g0 ← g∗;
10
fim se;
11 fim enquanto;
12 retorne g 0 ;
fim procedimento;
Figura 3.14: Pseudo-código Path Relinking.
elite já possui o número máximo de soluções e a solução corrente é candidata a ser
inserida neste conjunto, então esta substitui a solução de pior qualidade.
O método de Reconexão por Caminhos inicia-se computando a diferença de simetria ∆(s1 ; s2 ) entre duas soluções s1 e s2 , resultando em um conjunto de movimentos
que deve ser aplicado a uma delas, dita solução inicial, para “transformar-se” na
outra, dita solução guia. A partir da solução inicial, o melhor movimento ainda
não executado de ∆(s1 ; s2 ) é aplicado à solução corrente, até que a solução guia
seja atingida. A melhor solução encontrada ao longo dessa trajetória é considerada
como candidata à inserção no conjunto elite e a melhor solução já encontrada é
atualizada. Um exemplo da aplicação do método em soluções s1 e s2 , para o caso
de uma rota do PRV e tendo o nó 1 definido como depósito, seria posto da seguinte
3.7
Reconexão por Caminhos
38
forma. Considere que s1 e s2 sejam dados como:
s1 : 1 − 2 − 3 − 4 − 5 − 1
s2 : 1 − 4 − 3 − 5 − 2 − 1
Logo, ∆(s1 ; s2 ) = {2 → 4, 4 → 5, 5 → 2}. Supondo que o movimento 4 → 5
apresentado promova o menor custo dentre os demais possíveis, ele será o escolhido.
Assim, a nova solução s01 , sem refinamento, ficará então da seguinte forma:
s01 : 1 − 2 − 3 − 5 − 4 − 1
s2 : 1 − 4 − 3 − 5 − 2 − 1
Assim, ∆(s01 ; s2 ) = {2 → 4, 4 → 2}. A solução s01 é formada por atributos de ambas
as soluções s1 e s2 . Observe que, quando o último movimento 2 → 4 for realizado, as
soluções s1 e s2 serão iguais. O pseudo-código da técnica de reconexão por caminhos
é apresentado na figura 3.14.
Uma aplicação da técnica de Reconexão por Caminhos ao PRVJT pode ser vista
em Ho e Gendreau (2006).
Capítulo 4
Metodologia Ant-TPR para
Resolução do PRVJT
Neste capítulo, é feita a descrição da metodologia proposta, de suas etapas de construção e do algoritmo final proposto. A seção 4.1 descreve as etapas de construção
a suas características. A seção 4.2 demonstra a forma de representação das soluções
geradas. Diferentes funções de avaliação para o algoritmo são propostas na seção
4.3. Os movimentos de realocação utilizados no algoritmo são vistos na seção 4.4.
Por fim, a seção 4.5 faz o detalhamento do algoritmo desenvolvido.
4.1
Metodologia Ant-TPR
A metodologia Ant-PR proposta consiste em, inicialmente, definir uma forma
de representação das soluções geradas. Em seguida, são definidos os movimentos de
realocação e a estrutura de vizinhança utilizados no algoritmo. Além disso, também
são definidas duas funções de avaliação, para controle da qualidade das soluções
geradas. Por fim, são definidos os parâmetros utilizados, as adaptações feitas e a
junção das metaheurísticas Ant Colony Optimization e Busca Tabu e da técnica de
intensificação Reconexão por Caminhos. Cabe ressaltar que a metodologia Ant-TPR
foi elaborada e implementada exclusivamente para o PRVJT. Sua descrição geral é
realizada a seguir e o pseudo-código associado está apresentado na figura 4.4.
4.2
Forma de Representação das Soluções
A representação da solução no PRVJT consiste em um conjunto de rotas, geradas
através do algoritmo desenvolvido para a solução do problema, que possuem um
determinado custo associado, atribuído por uma função de avaliação, definida na
seção 4.3. Na tabela 4.1 é apresentada a forma de representação de uma solução
Tabela 4.1: Forma de representação de uma solução.
D−5−6−7−D
D−1−D
D − 2 − 3 − 4 − D 450, 00
|
{z
Rota 1
} |
{z
Rota 2
} |
39
{z
Rota 3
} | {z }
Custo
4.3
Funções de Avaliação
40
2
1
7
3
D
6
5
4
Figura 4.1: Instância fictícia de 7 cidades.
para uma instância do PRV de sete cidades, apresentada na figura 4.1, no qual cada
campo constitui uma rota, tendo custo dado pelo campo específico.
4.3
Funções de Avaliação
Inicialmente, foram definidos dois tipos de função de avaliação para as soluções
geradas. A primeira função faz a avaliação das soluções através da penalização das
restrições violadas. Já a segunda função atua de forma lexicográfica.
A primeira função de avaliação proposta, baseada no conceito de penalidades, é
dada por:
X
f (s) = µN (s) + αE(s) + βW (s) +
drs
(4.1)
(r,s)∈A
Na expressão, tem-se que:
• N (s): número de veículos empregados na solução;
• E(s): soma dos excessos de capacidade de todos os veículos (zero, caso não
ocorra);
• W (s): soma de todas as violações referentes às restrições de janelas de tempo;
• µ, α e β: fatores de penalidades não negativos e auto-adaptativos, sendo α
associado à capacidade dos veículos; β associado à maior janela de tempo da
instância; e µ associado ao número de cidades da instância elevado ao quadrado
(conforme proposto em Taillard et al. (1997));
• drs : distância entre os consumidores (r, s);
• A: conjunto dos arcos pertencentes à solução gerada.
Esta função de avaliação penaliza as violações das restrições do problema, caso
existam, de forma auto-adaptativa para a instância em questão.
4.4
Movimentos de Realocação
41
Nela, os principais objetivos a serem cumpridos são dados pelo primeiro e quarto
termos da expressão, que são, respectivamente, a minimização do número de veículos utilizados na solução e a minimização da distância total percorrida. O primeiro
termo da expressão deve ser subtraído do resultado final, pois atua somente para
possibilitar a busca no sentido da minimização da frota, não tendo, portanto, relação
com o custo final da solução encontrada. O segundo e o terceiro termos serão sempre nulos em soluções viáveis, ou seja, quando não ocorrem violação das restrições
existentes no problema.
A outra função de avaliação utilizada é lexicográfica, ou seja, formada por um
conjunto de objetivos distintos, classificados segundo um critério de prioridades.
Nesta metodologia, três objetivos são considerados, na seguinte ordem de prioridade:
• primeiro: minimizar o número de veículos utilizados;
• segundo: minimizar o número de consumidores na menor rota;
• terceiro: minimizar a distância total percorrida.
De forma geral, nos métodos heurísticos, a solução é feita em duas fases, de modo
que, inicialmente, é feita a redução do número de veículos, capaz de atender a todos
os consumidores, e, em seguida, ser feita a minimização da distância percorrida.
Nesta metodologia, cada nova solução gerada é comparada com a anterior, avaliando-se, primeiramente, o critério de maior prioridade. O próximo objetivo é
avaliado somente caso a avaliação com relação a este primeiro critério produza um
resultado melhor ou igual à solução anterior. Existem duas etapas na fase de busca
local. Na primeiro delas, o segundo objetivo é utilizado, até que um ótimo local
seja atingido. Então, na segunda etapa, este objetivo é descartado e o seguinte
(minimização da distância percorrida) assume seu lugar.
4.4
Movimentos de Realocação
Um movimento de realocação consiste em retirar um consumidor de uma rota
qualquer e inseri-lo em uma outra posição, que pode ser tanto dentro da mesma rota
quanto em uma outra rota distinta.
O movimento de realocação dentro de uma mesma rota é chamado de realocação
Intra-rota. Na figura 4.2, o consumidor 4 estava situado entre o consumidor 10 e o
depósito (0) e foi realocado para entre os consumidores 6 e 3 da mesma rota.
O movimento de realocação envolvendo duas rotas distintas é chamado realocação Inter-Rotas. Na figura 4.3, o consumidor 4 estava situado entre o consumidor
10 e depósito (0) de uma rota e foi realocado para entre os consumidores 2 e 8 de
uma outra rota.
A estrutura de vizinhança considerada neste trabalho combina os dois tipos de
movimentos anteriores. Assim, nesta estrutura, um vizinho s0 é obtido de uma
solução s através de movimentos de realocação intra-rotas ou inter-rotas.
Uma estratégia interessante e muito simples, chamada de Elimina Rotas, é proposta no presente trabalho, para contribuir com o objetivo de minimização do
número de veículos. A estratégia consiste em aplicar os movimentos de realocação
de forma ordenada, de modo que os consumidores são escolhidos a partir da menor
4.5
Algoritmo Ant-TPR
42
Figura 4.2: Movimento de realocação Intra-rota.
Figura 4.3: Movimento de realocação Inter-rotas.
rota e realocados a partir da maior rota, privilegiando a eliminação de consumidores
das menores rotas e a manutenção das maiores rotas. Porém, se um dos consumidores da rota não pode ser realocado, a rota deve ser deixada inalterada e o processo
continua para as demais rotas, até que os consumidores pertencentes à maior rota
sejam analisados. Esta estratégia simples e de pouco esforço computacional proporciona forte redução do número de veículos, principalmente nas iterações iniciais, nas
quais o nível de feromônio nos arcos é igual ou muito próximo e as formigas acabam
atuando de forma gulosa, ou seja, o aprendizado dado pelo feromônio ainda não
influencia na tomada de decisões.
4.5
Algoritmo Ant-TPR
Os algoritmos desenvolvidos baseados em colônia de formigas são apenas conceituais, ou seja, podem ser implementados de diversas maneiras. Nesta seção serão
apresentados os passos da implementação da metodologia Ant-TPR.
Nos algoritmos ACO padrão, a cada iteração é gerado um certo número de
formigas e cada uma delas gera uma solução completa para o problema. Pelo fato de
os algoritmos ACO terem sido desenvolvidos, inicialmente, para o PCV, no qual não
existem restrições de capacidade ou janelas de tempo, esta seria uma forma simples
e eficiente para a atuação de cada formiga.
Porém, no PRVJT, estas restrições estão presentes e cada algoritmo procura se
adaptar a estas restrições de forma diferente.
4.5
Algoritmo Ant-TPR
43
A maioria dos autores contorna esse problema através da criação de depósitos
fictícios, quando necessário. Todas as formigas partem do depósito e, sempre que
uma formiga não consegue dar continuidade à formação de sua rota (devido às
restrições existentes), ela retorna ao depósito. Porém, como a memória de cada
formiga previne que ela retorne aos consumidores já visitados, um novo depósito
(fictício ou virtual) é criado, com as mesmas coordenadas do depósito original e o
processo continua, até que todos os consumidores sejam visitados por cada formiga.
Ao final de cada iteração, existe sempre o número pré-definido de formigas e cada
formiga sozinha é responsável por uma solução completa para o problema.
Nesta metodologia, a adaptação para o PRVJT foi tratada de forma diferente,
pois cada solução é formada por uma ou mais formigas. A cada iteração, uma lista
restrita de consumidores candidatos (LRCC) é gerada, contendo todos os consumidores (com exceção do depósito) da instância a ser solucionada. Além disso, uma
lista tabu para nascimento de novas formigas (LTPNNF) e uma lista tabu geral das
formigas (LTGF) (que representa a memória da formiga) são geradas, contendo,
inicialmente, apenas o depósito. Um vetor de rotas geral (VRG) é criado e, inicialmente, não contém nenhuma rota. Em seguida, uma formiga é atribuida a um
consumidor qualquer, escolhido aleatoriamente dentre os consumidores da LRCC, de
modo que o consumidor selecionado nunca pertencerá à LTPNNF. A LTPNNF evita
que, em uma futura iteração, uma formiga seja colocada ou em uma posição que não
permita a formação de novas rotas ou em uma posição já colocada anteriormente.
Um vetor de rotas para a formiga é então iniciado e, caso o consumidor escolhido
já pertença a alguma rota, o vetor rota da formiga (VRF) receberá, desse modo, a
rota do consumidor. A formiga escolhe, dentre os consumidores da LRCC, para qual
consumidor se moverá, de acordo com a expressão (3.4). Cada formiga possui sua
própria lista tabu (LTF) que, inicialmente, é uma cópia da LTGF e para a qual serão
movidos os consumidores analisados. A função da LTGF é evitar que as formigas
visitem consumidores que estejam no meio de rotas, ou seja, que não estejam ou
na primeira ou na última posição dos vetores de rotas das formigas. A união entre
rotas geradas pelas formigas só é possível quando os consumidores envolvidos estão
nas extremidades de cada rota. Quando o consumidor escolhido pela formiga já
pertencer a uma rota, o algoritmo selecionará a rota do consumidor escolhido e
tentará realizar a união.
A cada tentativa mal-sucedida de movimento da formiga (violação de qualquer
uma das restrições existentes), a LTF receberá o consumidor envolvido, para que ela
não retorne aos consumidores já analisados. Caso o movimento da formiga de um
consumidor para outro respeite todas as restrições, a LTGF e o VRG são, então,
atualizados, e a LTF recebe novamente a LTGF. A formiga, assim, move-se para o
último consumidor da rota gerada e continua seus movimentos, até que não existam
mais movimentos possíveis, ou seja, até que todos os consumidores pertençam à
LTF. A formiga, neste caso, é eliminada; sua rota gerada fica armazenada no VRG;
a LRCC e a LTPNNF são atualizadas, de acordo com a LTGF; e uma nova formiga
será gerada. Quando não existirem mais consumidores na LRCC, o custo da solução
gerado pelo conjunto de formigas é analisado e a matriz de feromônio é atualizada.
O psedo-código da metodologia Ant-TPR é apresentado na figura 4.4.
A atuação da metodologia Ant-TPR será demonstrada nas figuras a seguir. A
figura 4.5 mostra uma instância fictícia do PRVJT com 7 consumidores a ser solu-
4.5
Algoritmo Ant-TPR
44
1 MelhorSolução ← PiorSoluçãoPossível
2 MelhorSoluçãoAnterior ← PiorSoluçãoPossível
3 enquanto <> CondiçãoSaída
4
Inicia parâmetros
5
ContaSoluções ← 0
6
enquanto ContaSoluções ≤ 10 OU
FO(SoluçãoGerada) ≥ FO(MelhorSoluçãoAnterior)
7
ListaRestritadeConsumid.Candidatos (LRCC) ← Consumidores da instância
8
ListaTabuParaNascimentodeNovasFormigas (LTPNNF) ← Depósito
9
Lista Tabu Geral das Formigas (LTGF) ← Depósito
10
enquanto LRCC <> 0
11
Selecione aleatoriamente um dos consumidores da LRCC
12
Posicione uma formiga no consumidor selecionado
13
Lista Tabu da Formiga (LTF) ← LTGF
14
enquanto LTF < NúmeroConsumidoresInstância
15
De acordo com o critério de seleção, escolha o próximo movimento
16
Atualizar: LTF, LRCC, VGR
17
fim enquanto
18
fim enquanto
19
se FO(SoluçãoGerada) < FO(MelhorSoluçãoAnterior)
20
então MelhorSoluçãoAnterior ← SoluçãoGerada
Saia do laço enquanto (6)
21
senão ContaSoluções ← ContaSoluções + 1
22
fim se
23
fim enquanto
24
Aplique Busca Local na SoluçãoGerada
25
Aplique Reconexão a cada n iterações
26
se FO(SoluçãoGerada) < FO(MelhorSolução)
27
então se ContaSoluções > 50
28
então TABU
29
fim se
30
MelhorSolução ← SoluçãoGerada
31
fim se
32 fim enquanto
Figura 4.4: Pseudo-código Ant-TPR.
cionada.
Na figura 4.6, uma formiga foi posicionada, de forma aleatória, no consumidor
2. As linhas partindo desse consumidor para cada um dos demais representam suas
opções de movimento.
Baseado nas equações de escolha descritas na expressão (3.4) e respeitando-se as
restrições existentes, supõe-se que o movimento executado foi partir do consumidor
2 para o consumidor 3. Nessa posição, a formiga analisa suas novas opções, como
visto na figura 4.7.
4.5
Algoritmo Ant-TPR
45
2
1
7
3
D
6
4
5
Figura 4.5: Instância do PRVJT a ser solucionada.
1
7
6
D
3
4
5
Figura 4.6: A formiga analisa suas opções de movimento.
Novamente, como pode ser visto na figura 4.8, partindo da cidade 3 e supondo
que o novo consumidor escolhido seja o consumidor 4, a formiga analisa suas opções
de movimento.
No momento em que não mais existirem movimentos possíveis para a formiga
executar (devido às restrições ou caso todos os consumidores já tenham sido visitados), as ligações ao depósito são feitas e a rota gerada pela formiga será integrada
ao conjunto de rotas (fig. 4.9).
Por fim, na figura 4.10 uma nova formiga é aleatoriamente posicionada em um
consumidor que não pertença a nenhuma rota, analisa suas opções de movimento e
continua o processo, até que não existam mais consumidores fora de rotas.
Logo, uma solução completa e factível é gerada pelo conjunto de formigas e o
algoritmo entrará na fase de refinamento (Daemon actions), conforme a figura 4.11.
A fase de refinamento quase sempre é capaz de melhorar as soluções geradas pelas
formigas.
A solução criada por Dorigo et al. (1991a), e seguida pela maioria dos autores,
é mais simples, pois utiliza apenas uma memória para cada formiga, sendo cada
formiga responsável por uma solução completa. Entretanto, a modelagem das formigas desta forma não permite que uma escolha inicialmente ruim se torne uma escolha
4.5
Algoritmo Ant-TPR
46
2
1
7
D
6
4
5
Figura 4.7: Após movimentar-se, a formiga analisa suas novas opções de movimento.
2
1
7
6
D
3
5
Figura 4.8: A formação da rota continua, enquanto gerar soluções factíveis.
melhor. Um exemplo é apresentado nas figuras 4.12 e 4.13. Suponha que o primeiro
consumidor escolhido para integrar uma rota tenha uma janela de tempo em que
mais correto seria atendê-lo por último (representado na figura 4.12 pelo consumidor
1). A formiga se moverá para o consumidor e dará prosseguimento à formação de
sua rota, concretizando a má escolha, como pode ser visto na figura 4.13.
Da forma como a metodologia Ant-TPR foi modelada, esse fato tem menor
chance de ocorrer, pois os consumidores que pertencem às extremidade de rotas
podem fazer parte de novas rotas em formação, desde que respeitem as restrições
existentes. Logo, uma nova formiga pode desfazer a rota do consumidor 1 e anexá-la
a uma nova rota, desde que represente uma melhora na função objetivo, conforme
a figura 4.15.
Em lugar de gerar um conjunto fixo de soluções por iteração, são geradas novas
soluções, até que surja uma solução melhor que a melhor solução da iteração anterior ou até um valor escolhido (foi adotado, de forma experimental, o valor 10).
A solução encontrada é refinada por uma heurística de busca local e a função desenvolvida de eliminação de rotas completas. Após certo número de iterações, o
processo de Busca Tabu é acionado sempre que ocorra uma melhora no valor da
função objetivo. Esse intervalo de tempo sem a atuação da BT é necessário porque,
4.5
Algoritmo Ant-TPR
47
2
1
7
6
3
D
4
5
Figura 4.9: Ao final da excursão da formiga, são adicionadas ligações ao depósito.
2
7
6
D
3
4
5
Figura 4.10: Uma nova formiga é posicionada e o processo continua.
inicialmente, não existe a inteligência gerada pelo aprendizado das formigas. Foi
definido, experimentalmente, o valor de 50 iterações como tempo mínimo necessário
ao aprendizado das formigas, a partir do qual a Busca Tabu é acionada. Devido ao
elevado número de possibilidades combinatórias, a BT tem mais chances de alcançar
melhores resultados, pois atua de forma dependente da solução inicial e, com isso,
é capaz de um refinamento mais apurado. Periodicamente, o processo de reconexão
por caminhos é acionado, tentando trazer bons atributos da melhor solução existente
para a solução corrente (também experimentalmente, foi definido um valor de 15%
do número de consumidores da instância).
4.5
Algoritmo Ant-TPR
48
2
1
7
3
D
6
4
5
Figura 4.11: Solução completa e factível gerada pelas formigas.
2
1
7
3
D
6
4
5
Figura 4.12: O consumidor 1 isolado em uma rota.
2
1
7
6
D
3
4
5
Figura 4.13: Solução prejudicada pelo consumidor 1.
4.5
Algoritmo Ant-TPR
49
2
1
7
3
D
6
4
5
Figura 4.14: Ant-TPR: O consumidor 1 momentaneamente isolado em uma rota.
2
1
7
6
D
3
4
5
Figura 4.15: Ant-TPR: Formiga integra o consumidor 1 à nova rota formada.
Capítulo 5
Resultados Computacionais
Neste capítulo, são relatados os resultados computacionais obtidos pela metodologia Ant-TPR proposta, detalhes de sua implementação, além de comparações com
outras metodologias relevantes para o Problema de Roteamento de Veículos com
Janelas de Tempo. A seção 5.1 começa abordando detalhes de implementação do
software desenvolvido. Em seguida, apresenta-se a comparação das funções de avaliação propostas na seção 4.3, de modo a permitir a escolha daquela que melhor se
adeque aos objetivos desse trabalho. Por fim, são mostrados os melhores resultados
obtidos e são feitas comparações com as demais metodologias relevantes.
5.1
Implementação da Metodologia Ant-TPR
O algoritmo Ant-TPR foi implementado em linguagem C + +, utilizando o compilador Builder 5.0 da Borland, e executado em um computador Pentium 4 2.4 GHz,
com 512 MB de memória RAM, sob plataforma Windows XP Pro. Foram utilizadas,
para teste, as instâncias, ou problemas-teste, introduzidos por Solomon (1987), usados amplamente como referência de desempenho de algoritmos para o PRVJT. Essas
instâncias são formadas por três grupos distintos de consumidores, a saber:
• grupo C - os consumidores estão distribuídos geograficamente em grupos de
consumidores agrupados (clustering) uns dos outros;
• grupo R - os consumidores são distribuídos aleatoriamente (randoming) e distantes uns dos outros;
• grupo RC - uma mistura dos dois grupos anteriores.
As instâncias do tipo 1, ou seja, C1, R1 e RC1, possuem janelas de tempo
estreitas, nas quais o intervalo de tempo em que o serviço em cada consumidor deve
ser iniciado é definido por intervalos curtos de tempo. Já nas instâncias do tipo 2
(C2, R2 e RC2), os intervalos de janelas de tempo são maiores e, por isso, diz-se que
esses problemas apresentam janelas de tempo largas.
A Tabela 5.1 descreve o formato dos problemas-teste utilizados. Nesta tabela,
cada campo tem o seguinte significado:
• NumCidades: representa o número de cidades consideradas na instância;
50
5.1
Implementação da Metodologia Ant-TPR
51
Tabela 5.1: Formato das instâncias Solomon para o PRVJT
NumCidades
CapacVeic
IdCidade
CoordX CoordY Demanda InícioJT FimJT TS
• CapacVeic: representa a capacidade dos veículos utilizados;
• IdCidade: número ou nome que identifica uma certa cidade;
• CoordX e CoordY: coordenadas geográficas que definem a localização da cidade
identificada;
• Demanda: representa a demanda requerida pela cidade identificada;
• InícioJT e FimJT: intervalo de janela de tempo definido para a cidade identificada;
• TS: tempo gasto para realizar o serviço na dada cidade identificada.
Inicialmente, a metodologia Ant-TPR foi testada com diferentes tipos de função
de avaliação, de forma a determinar qual seria a melhor proposta.
A primeira função de avaliação objeto de teste é baseada em penalidades, conforme a expressão (4.1), mas tendo o primeiro termo desconsiderado, ou seja, a minimização da frota não sendo considerado um objetivo a ser atingido. Essa primeira
versão é referenciada neste trabalho como Ant-P.
A segunda função de avaliação é a apresentada na expressão (4.1), considerandose todos os termos em questão. É referenciada como Ant-P2.
A terceira função de avaliação é lexicográfica, tendo sido apresentada na seção
4.3. É denominada como Ant-L e, como será visto ao longo desse capítulo, produziu
os melhores resultados. Como o algoritmo Ant-L foi avaliado por tempo de execução
e os demais por número de iterações, foi escolhido uma faixa de tempo equivalente
para comparação dos mesmos. Os resultados gerados por cada algoritmo podem ser
vistos na tabela 5.2.
Tabela 5.2: Comparação entre as funções de avaliação propostas.
R1
R2
C1
C2
RC1
RC2
Total
(a)
13, 83
5,18 10,00 3,00 13,38
6,13
493(d)
Ant-P 1204, 42(b) 901,67 826,98 587,38 1374,29 1037,74 55809(e)
1062, 5(c) 712,3 779,1 352,0 955,5 685,5 43540(f)
Ant-P2
Ant-L
13,17
1237,67
873,0
12,42
1227,92
609,7
4,75
1317,49
1072,0
3,09
972,41
623,2
10,00
829,05
837,7
10,00
838,12
611,6
3,00
595,06
383,5
3,00
591,05
602,0
13,00
1397,26
1017,9
12,13
1396,26
621,6
4,13
1117,34
778,2
3,38
1184,78
611,1
447
57731
44028
421
58351
34354
Para a tabela 5.2, tem-se (os valores são referentes às melhores soluções encontradas durante as execuções):
5.2
Comparação entre o Algoritmo Ant-TPR e Algoritmos da Literatura
52
• (a) é o valor médio do número de veículos da solução;
• (b) é a média da distância total percorrida;
• (c) é a média do tempo computacional gasto, em segundos;
• (d) é a soma do número de veículos de todas as soluções;
• (e) é a distância total percorrida;
• (f ) é a soma do tempo computacional total de todas as instâncias.
Conforme pode ser visto na tabela 5.2, o algoritmo com função de avaliação
lexicográfica produziu os melhores resultados dentre os testado. O Ant-L produziu
o menor número de veículos e em menor tempo. Entretanto, os demais algoritmos
foram capazes de uma maior redução na distância total percorrida. É confirmado
pela literatura que os objetivos podem ser antagônicos. O algoritmo de função de
avaliação lexicográfica Ant-L passou então a ser chamado Ant-TPR, em analogia a
associação Formiga - Busca Tabu - Reconexão por Caminhos (Ant - Tabu Search Path Relinking).
Em Fraga et al. (2006b) e Fraga et al. (2006a) podem ser vistos mais detalhes
de implementação e resultados sobre funções de avaliação similares utilizadas na
resolução do mesmo problema.
5.2
Comparação entre o Algoritmo Ant-TPR e Algoritmos da Literatura
O algoritmo Ant-TPR desenvolvido foi avaliado em cinco intervalos de tempo
pré-definidos: 100, 600, 1200 e 3600 segundos, com a finalidade de se conhecer o
comportamento do método em diversas situações. O algoritmo é interrompido na
primeira iteração após o tempo pré-determinado, gerando pequenas variações no
tempo de execução. Para cada intervalo de tempo, foram feitas dez execuções por
instância, cada uma delas partindo de uma semente diferente de números aleatórios.
Os melhores resultados produzidos pela metodologia Ant-TPR em cada instância podem ser vistos nas Tabelas 5.3, 5.4, 5.5, 5.6, 5.7 e 5.8. Os ótimos globais ou
melhores resultados obtidos de heurísticas diversas que são reportados neste trabalho foram obtidos de Sintef (2005). As colunas “Ant-TPR” mostram os melhores
resultados produzidos pela metodologia proposta.
Para o grupo C de instâncias (conforme Tabelas 5.3 e 5.4), todos os ótimos globais
são conhecidos na literatura. Em 16 das 17 instâncias desse grupo, o algoritmo AntTPR foi capaz de encontrá-los e, em 9 delas, os ótimos locais foram encontrados em
até 100 segundos. O número de veículos encontrados em todo o grupo C foi igual
ao relatado na literatura.
Para o subgrupo R1 (conforme Tabelas 5.5 e 5.6), duas instâncias (R101 e R102)
tiveram resultados melhores que os da literatura. No subgrupo R2, o algoritmo AntTPR produziu resultados com apenas um veículo acima dos resultados relatados na
literatura.
5.2
Comparação entre o Algoritmo Ant-TPR e Algoritmos da Literatura
53
Tabela 5.3: Resultados da metodologia Ant-TPR nas instâncias C1.
Instância Veic. Lit. Dist. Lit. Veic. Ant-TPR Dist. Ant-TPR
C101
10,00
828,94
10,00
828,94
C102
10,00
828,94
10,00
828,94
C103
10,00
828,06
10,00
828,06
C104
10,00
824,78
10,00
825,54
C105
10,00
828,94
10,00
828,94
C106
10,00
828,94
10,00
828,94
C107
10,00
828,94
10,00
828,94
C108
10,00
828,94
10,00
828,94
C109
10,00
828,94
10,00
828,94
Média
10,00
828,38
10,00
828,46
Tabela 5.4: Melhores resultados da metodologia Ant-TPR nas instâncias C2.
Instância Veic. Lit. Dist. Lit. Veic. Ant-TPR Dist. Ant-TPR
C201
3,00
591,56
3,00
591,56
C202
3,00
591,56
3,00
591,56
C203
3,00
591,17
3,00
591,17
C204
3,00
590,60
3,00
590,60
C205
3,00
588,88
3,00
588,88
C206
3,00
588,49
3,00
588,49
C207
3,00
588,29
3,00
588,29
C208
3,00
588,32
3,00
588,32
Média
3,00
589,86
3,00
589,86
A instância RC107 do subgrupo RC1 (Tabela 5.7) obteve um resultado melhor
que o encontrado na literatura. O subgrupo RC2 (Tabela 5.7) obteve um resultado
com apenas um veículo a mais que a soma dos melhores resultados da literatura.
Na tabela 5.9 (adaptada a partir de Gambardella et al. (1999a)), a metodologia
Ant-TPR é comparada a outras metodologias quanto à eficiência (tempo necessário)
na resolução das instâncias Solomon de 100 consumidores. Os métodos considerados
foram:
• Adaptive memory programming, de Rochat e Taillard (1995), designado como
(RT);
• Large neighbourhood search, de Shaw (1998), nomeado como (SW);
• Guided local search, a partir de Kilby et al. (1999), identificado como (KPS);
• Alternate K-exchange Reduction, de Cordone e Wolfler-Calvo (2001), chamada
de (CW);
• MACS-VRPTW: Multiple Ant Colony System, de Gambardella et al. (1999a),
chamado de (MACS);
• Adaptive memory programming de Taillard et al. (1997), denominado de (TB);
5.2
Comparação entre o Algoritmo Ant-TPR e Algoritmos da Literatura
54
Tabela 5.5: Melhores resultados da metodologia Ant-TPR nas instâncias R1
Instância Veic. Lit. Dist. Lit. Veic. Ant-TPR Dist. Ant-TPR
R101
19,00
1645,79
18,00
1615,23
R102
17,00
1486,12
17,00
1441,77
R103
13,00
1292,68
13,00
1303,04
R104
9,00
1007,24
10,00
1001,47
R105
14,00
1377,11
14,00
1385,30
R106
12,00
1251,98
12,00
1253,53
R107
10,00
1104,66
10,00
1169,32
R108
9,00
960,88
9,00
1004,73
R109
11,00
1194,73
12,00
1176,25
R110
10,00
1118,59
11,00
1136,08
R111
10,00
1096,72
11,00
1066,84
R112
9,00
982,14
10,00
985,75
Média
11,92
1209,89
12,25
1211,61
Tabela 5.6: Melhores resultados da metodologia Ant-TPR nas instâncias R2
Instância Veic. Lit. Dist. Lit. Veic. Ant-TPR Dist. Ant-TPR
R201
4,00
1252,37
4,00
1256,23
R202
3,00
1191,70
3,00
1238,08
R203
3,00
939,54
3,00
961,13
R204
2,00
825,52
2,00
853,60
R205
3,00
994,42
3,00
1021,50
R206
3,00
906,14
3,00
935,66
R207
2,00
890,61
2,00
957,19
R208
2,00
726,75
2,00
739,49
R209
3,00
909,16
3,00
923,72
R210
3,00
939,34
3,00
971,67
R211
2,00
892,71
3,00
798,22
Média
2,73
951,66
2,82
968,77
• Parallel Hybrid Genetic Algorithm, de Berger et al. (2001), referenciado como
(BBB).
A tabela 5.9 mostra, ainda, três colunas para cada subgrupo de instâncias, denominadas como:
• V - média de veículos (objetivo principal);
• D - média das distâncias percorridas;
• T - tempo de execução.
Todos os resultados são referentes às melhores soluções encontradas dentre o número
de execuções feitas (10) para cada instância.
5.2
Comparação entre o Algoritmo Ant-TPR e Algoritmos da Literatura
Tabela 5.7: Melhores resultados da metodologia Ant-TPR nas instâncias RC1
Instância Veic. Lit. Dist. Lit. Veic. Ant-TPR Dist. Ant-TPR
RC101
14,00
1696,94
15,00
1638,29
RC102
12,00
1554,75
13,00
1500,49
RC103
11,00
1261,67
11,00
1277,48
RC104
10,00
1135,48
10,00
1155,82
RC105
13,00
1629,44
14,00
1536,43
RC106
11,00
1424,73
12,00
1401,66
RC107
11,00
1230,48
11,00
1216,96
RC108
10,00
1139,82
11,00
1143,60
Média
11,50
1384,16
12,13
1358,84
Tabela 5.8: Melhores resultados da metodologia Ant-TPR nas instâncias RC2
Instância Veic. Lit. Dist. Lit. Veic. Ant-TPR Dist. Ant-TPR
RC201
4,00
1406,91
4,00
1432,05
RC202
3,00
1365,65
4,00
1206,51
RC203
3,00
1049,62
3,00
1060,45
RC204
3,00
798,41
3,00
800,78
RC205
4,00
1297,19
4,00
1314,84
RC206
3,00
1146,32
3,00
1160,29
RC207
3,00
1061,14
3,00
1117,74
RC208
3,00
828,14
3,00
866,77
Média
3,25
1119,17
3,38
1119,93
55
5.2
R1
D
1214,8
1212,95
1213,35
1211,64
1210,83
1208,43
1202
1197,42
1198,37
1201,47
1201,79
1200,33
1241,89
1233,88
1230,48
1220,35
1251,40
1242,40
1227,92
1221,98
1222,31
1199,97
T
100
300
600
1200
1800
1200
3600
7200
V
3,38
3,33
3,33
3,33
3,33
3,62
3,62
3,62
RC2
D
1191,87
1168,34
1163,08
1153,63
1149,28
1207,37
1155,47
1139,79
T
100
300
600
1200
1800
1300
3900
7800
2900
292
3275
8187
16375
1800
103
602
1203
1804
3608
3,38
3,38
3,38
3,38
3,38
3,25
3,38
3,38
3,38
3,38
3,38
1133,42
1139,7
1248,34
1220,28
1198,63
1258,15
1252,71
1184,78
1156,60
1140,64
1128,25
2900
946
1933
5798
11596
1800
108
611
1249
1815
3611
Comparação entre o Algoritmo Ant-TPR e Algoritmos da Literatura
V
12,55
MACS 12,45
12,38
12,38
12,38
12,83
RT
12,58
12,58
12,45
SW
12,35
12,33
KPS 12,67
CW
12,5
12,64
TB
12,39
12,33
BBB 12,17
12,58
Ant- 12,42
TPR 12,33
12,25
12,42
Tabela 5.9: Comparação da eficiência da metodologia Ant-TPR com outras
C1
RC1
R2
C2
T
V D
T
V
D
T
V
D
T
V
D
100 10 828,4 100 12,46 1395,47 100 3,05 971,97 100
3 593,19
300 10 828,38 300 12,13 1389,15 300
3 969,09 300
3 592,97
600 10 828,38 600 12,08 1380,38 600
3 965,37 600
3 592,89
1200 10 828,38 1200 11,96 1385,65 1200
3 962,07 1200
3 592,04
1800 10 828,38 1800 11,92 1388,13 1800
3 960,31 1800
3 591,85
450 10 832,59 540 12,75 1381,33 430 3,18 999,63 1600
3 595,38
1300 10 829,01 1600 12,5 1368,03 1300 3,09 969,29 4900
3 590,32
2700 10 828,45 3200 12,33 1269,48 2600 3,09 954,36 9800
3 590,32
900
12,05 1363,67 900
1800
12 1363,68 1800
3600
11,95 1364,17 3600
2900 10 830,75 2900 12,12 1388,15 2900
3 966,56 2900
3 592,29
1382 10 834,05 649 12,38 1408,87 723 2,91 995,39 1332
3 591,78
2296 10 830,41 2926 12,08 1404,59 1877
3 1046,56 3372
3 592,75
6887 10 828,59 7315
12 1387,01 5632
3 1029,65 10116
3 591,14
13774 10 828,45 14630 11,9 1381,31 11264 3 1013,35 20232
3 590,91
1800 10 828,50 1800 11,88 1414,86 1800 2,73 1056,59 1800
3 590,06
108 10 858,22 108 12,38 1423,78 108 3,09 1003,16 111 3,00 594,43
610 10 838,12 612 12,13 1396,26 622 3,09 972,41 623 3,00 591,05
1256 10 835,35 1211 12,13 1373,23 1257 3,00 966,96 1252 3,00 590,35
1883 10 831,90 1821 12,13 1377,08 1832 3,00 956,13 1823 3,00 590,28
3637 10 830,51 3614 12,13 1362,78 3626 3,00 947,80 3629 3,00 589,86
56
5.2
Comparação entre o Algoritmo Ant-TPR e Algoritmos da Literatura
57
Tabela 5.10: Comparação entre Ant-TPR e MACS
Ant-TPR
Ant
Ant
Ant
Ant
Ant
Ant
x
TPR
TPR
TPR
TPR TPR TPR
MACS
Final
100s
600s
1200s 1800s 3600s
Número de veículos 2,21% 4,42% 3,44% 2,95% 2,70% 3,19%
Distância percorrida -0,56% 4,02% 1,44% 0,44% 0,02% -1,00%
Tempo (s)
20,81% -94,01% -65,92% -31,13% 1,82% 101,23%
Tabela 5.11: Comparação entre Ant-TPR e BBB
Ant-TPR
Ant
Ant Ant Ant Ant
x
TPR TPR TPR TPR TPR
BBB
Final 100s 600s 1200s 1800s
Número de veículos 2,72% 4,94% 3,95% 3,46% 3,21%
Distância percorrida -0,56% 4,02% 1,44% 0,45% 0,02%
Tempo (s)
-
Ant
TPR
3600s
3,70%
-1,00%
-
O tempo computacional não pode ser comparado diretamente por vários motivos. Primeiro, os autores usaram diferentes tipos de computador. Segundo, alguns
métodos não foram especificamente implementados para o PRVJT. A metodologia MACS foi executada em uma estação Sun UltraSparc 1, de 167MHz, tendo 70
Mflop/s (Dongarra, 1997); RT usou um computador de 15 Mflop/s Silicon Graphics; SW usou uma estação Sun UltraSparc de 63 Mflop/s; KPS usou uma estação
DEC Alpha de 25Mflops/s; CW utilizou um Pentium de 18 Mflop/s; TB usou uma
estação Sun Sparc 10 de 10 Mflop/s; BBB utilizou uma computador Pentium 400
MHz, equivalente a 54 Mflops/s. Cada autor testou sua metodologia em um determinado intervalo de tempo, de forma a avaliar o desempenho do algoritmo proposto.
Na tabela 5.12 (retirada de Chen e Ting (2005)) são mostrados os melhores
resultados obtidos por diversos métodos heurísticos nas instâncias Solomon de 100
consumidores para o PRVJT.
5.2
Comparação entre o Algoritmo Ant-TPR e Algoritmos da Literatura
Tabela 5.12: Ant-TPR vs. outras metodologias
Metod. / Grupo
R1
R2
C1
C2
RC1
a
12, 6
3,1
10
3
12,6
TS − P
1294, 70b 1185,90 861,00 602,50 1465,00
Potvin et al. (1996)
639c
722
435
431
586
12,17
2,82
10
3
11,5
TS − T
1209,35 980,27 828,38 589,86 1389,22
Taillard et al. (1997)
13774
20232 14630 16375 11264
12
2,73
10
3
11,63
M ACS
1217,73 967,75 828,38 589,86 1382,42
Gambardella et al. (1999a) 1800
1800
1800
1800
1800
11,92
2,73
10
3
11,5
BBB
1221,10 975,43 828,48 589,93 1389,89
Berger et al. (2001)
13,20
5,00
10,10
3,25
13,50
HGA
1227,00 980,00 861,00 619,00 1427,00
Chen et al. (2001)
13,10
4,60
10,00
3,30
12,70
SAT S
1213,16 952,30 841,92 612,75 1415,62
Tan et al. (2001a)
12,08
2,91
10,00
3,00
11,75
T ESA
1215,14 953,43 828,38 589,86 1385,47
Li e Lim (2003)
1474
3882
201
1220
916
12,83
3,09
10
3
12,5
IACS
1203,56 932,23 828,76 589,86 1363,84
Chen e Ting (2005)
425
437
239
363
403
12,25
2,82
10,00
3,00
12,13
Ant-TPR
1211,61 968,77 828,46 589,86 1358,84
(Geral)
2857,21 3142,06 847,80 606,76 2420,04
12,58
3,09
10,00
3,00
12,38
Ant-TPR
1242,40 1003,16 858,22 594,43 1423,78
(100s)
108,03 110,95 107,51 102,83 107,91
12,42
3,09
10,00
3,00
12,13
Ant-TPR
1227,92 972,41 838,12 591,05 1396,26
(600s)
609,72 623,17 611,56 602,05 621,61
12,33
3,00
10,00
3,00
12,13
Ant-TPR
1221,98 966,96 835,35 590,35 1373,23
(1200s)
1255,73 1252,17 1211,19 1203,17 1257,27
12,25
3,00
10,00
3,00
12,13
Ant-TPR
1222,31 956,13 831,90 590,28 1377,08
(1800s)
1882,91 1822,70 1820,62 1803,61 1832,30
12,42
3,00
10,00
3,00
12,13
Ant-TPR
1199,97 947,80 830,51 589,86 1362,78
(3600s)
3636,62 3629,09 3613,97 3607,92 3625,89
58
RC2
3,4
1476,10
662
3,38
1117,44
11596
3,25
1129,19
1800
3,25
1159,37
5,00
1223,00
5,60
1120,37
3,25
1142,48
2669
3,75
1079,81
370
3,38
1119,93
2635,30
3,38
1252,71
108,27
3,38
1184,78
611,14
3,38
1156,60
1249,10
3,38
1140,64
1814,67
3,38
1128,25
3610,68
Total
427
64679
32957
410
57953
833390
407
57525
100800
405
57523
478
59405
84000
470
57799
15400
411
57467
100639
432
56429
21146
416
57201
121776
425,00
59834,87
6036,50
421,00
58351,36
34353,94
419,00
57779,87
69419,72
418,00
57536,32
102634,69
420,00
56947,18
202841,18
Capítulo 6
Conclusões Gerais e Trabalhos
Futuros
6.1
Conclusões Gerais
Neste trabalho, foi apresentado um algoritmo híbrido denominado Ant-TPR,
baseado nas metaheurísticas Ant Colony Optimization e Busca Tabu, além da técnica
de Reconexão por Caminhos, desenvolvido para solucionar o Problema de Roteamento de Veículos com Janela de Tempo (PRVJT).
Na metodologia desenvolvida, as soluções para o PRVJT são geradas pela metaheurística ACO, refinadas com busca local e Busca Tabu. Periodicamente, a técnica
de Reconexão por Caminhos é acionada, para intensificar a busca sobre regiões
promissoras e tentar agrupar, em uma única solução, bons atributos pertencentes às
soluções já encontradas.
O método foi avaliado em 56 problemas-teste, propostos por Solomon (1987),
produzindo, de forma isolada, alguns resultados melhores que os relatados na literatura e permanecendo, de forma global, a menos de 3% das melhores metodologias
existentes. Apesar dos bons resultados, a metodologia ainda pode ser melhor explorada, com o uso de uma função de avaliação lexicográfica mais elaborada e com
maior quantidade de objetivos secundários, que atuem de forma a guiar a busca
por soluções de melhor qualidade. O uso de uma função simples, com um único
objetivo secundário além dos esperados para medida de desempenho, limitou muito
a busca, pois foi incapaz de diferenciar adequadamente as vizinhanças das soluções
encontradas.
A associação entre as metaheurísticas Colônia de Formigas e Busca Tabu foi
capaz de proporcionar resultados interessantes e que devem ser melhor estudados,
através de novas implementações e testes.
Dentre as propostas da metodologia, foi visto que o uso de uma função de avaliação do tipo lexicográfica é capaz de proporcionar melhores soluções do que funções
baseadas em penalidades.
A forma proposta para a movimentação e geração de rotas pelas formigas, através
do uso de uma memória comum, além da memória da formiga, também produziu
bons resultados e deve ser melhor estudada e comparada com a forma utilizada pelos
demais autores que se detém no tema.
Apesar da técnica de Reconexão por Caminhos ter sido capaz de melhorar os
59
6.2
Trabalhos Futuros
60
resultados, da forma como foi implementada gera um custo computacional alto.
Logo, algumas modificações devem ser feitas em sua implementação, de modo que
continue a influenciar de forma benéfica as soluções, mas não exija tanto tempo de
processamento.
Por fim, a metodologia Ant-TPR, aplicada ao Problema de Roteamento de Veículos com Janelas de Tempo, foi capaz de produzir resultados com diferença inferior
a 3% dos melhores resultados existentes e ainda produziu algumas soluções isoladas
melhores que as relatadas na literatura.
6.2
Trabalhos Futuros
Os trabalhos futuros serão feitos de forma a dar continuidade ao estudo aqui
apresentado. Inicialmente, a criação de novos objetivos secundários que ajudem a
guiar a busca é a prioridade, na tentativa de levar a metodologia Ant-TPR a alcançar
os melhores resultados da literatura, tanto em desempenho quanto em eficiência.
Em seguida, deverá ser feita uma nova sintonia, mais completa, dos diversos
parâmetros envolvidos na metodologia. Para isso, deve-se realizar maior número de
testes para calibragem final dos mesmos, na busca do resultado desejado.
Por fim, a reestruturação e implementação do algoritmo desenvolvido, de forma a
implementá-lo em paralelismo computacional, visando ganho de eficiência e melhor
atuação em problemas de maior porte.
Bibliografia
Backer, B. De; Furnon, V.; Kilby, P.; Prosser, P. e Shaw, P. (2000). Solving Vehicle
Routing Problems Using Constraint Programming and Metaheuristics. Journal
of Heuristics, v. 6, p. 501–523.
Badeau, P.; Gendreau, M.; Guertin, F.; Potvin, J.Y. e Taillard, É. D. (1997).
A Parallel Tabu Search Heuristic for the Vehicle Routing Problem with Time
Windows. Transportation Research Part C: Emerging Technologies, v. 5, p. 109–
122.
Balinski, M. e Quandt, R. (1964). On a integer program for a delivery problem.
Operations Research, v. 12, p. 300–304.
Bauer, A.; Bullnheimer, B.; Hartl, R. F. e Strauss, C. (1999). An ant colony optimization approach for the single machine total tardiness problem. In Proceedings
of the 1999 Congress on Evolutionary Computation (CEC’99), pág. 1445–1450,
Piscataway, NJ. IEEE Press.
Bean, Nigel e Costa, Andre. (2005). An analytic modelling approach for network
routing algorithms that use “ant-like” mobile agents. Comput. Networks, v. 49,
n. 2, p. 243–268.
Beckers, R.; Deneubourg, J.L. e Goss, S. (1992). Trails and U-turns in the selection
of the shortest path by the ant Lasius niger. Journal of Theoretical Biology, v.
159, p. 397–415.
Beni, Gerardo. (1988). The concept of cellular robotic systems. In Proceedings 1988
IEEE Int. Symp. On Intelligent Control, pág. 57–62, (1988).
Berger, J.; Barkaoui, M. e Bräysy, O. (2001). A parallel hybrid genetic algorithm for
the vehicle routing problem with time windows. Working paper, Defense Research
Establishment Valcartier, Canada.
Blum, C. e Roli, A. (2003). Metaheuristics in Combinatorial Optimization: Overview
and Conceptual Comparison. ACM Computing Surveys, v. 35, n. 3, p. 268–308.
Bonabeau, E.; Dorigo, M. e Théraulaz, G. (1999). From Natural to Artificial Swarm
Inteligence. Oxford University Press.
Bonabeau, E.; Henaux, F.; Guérin, S.; Snyers, D.; Kuntz, P. e Theraulaz, G. (1998).
Routing in telecommunication networks with “Smart” ant-like agents. In Proceedings of IATA’98, Second International Workshop on Intelligent Agents for
61
Referências Bibliográficas
62
Telecommunication Applications, volume Lectures Notes in AI vol. 1437, Berlin,
Germany. Springer Verlag.
Brandão, J. (1999). Metaheuristic for the Vehicle Routing Problem with Time
Windows. Voss, S.; Martello, S.; Osman, I.H. e Roucairol, C., editors, Metaheuristics - Advances and Trends in Local Search Paradigms for Optimization,
pág. 19–36, Boston, EUA. Kluwer Academic Publishers.
Bräysy, O. e Gendreau, M. (2001). Metaheuristics for the Vehicle Routing Problem
with Time Windows. Technical Report SINTEF STF42 A01025.
Bui, N. Thang e Nguyen, ThanhVu H. (2006). An agent-based algorithm for generalized graph colorings. GECCO’06: Proceedings of the 8th Annual Conference on
Genetic and Evolutionary Computation, pág. 19–26, New York, NY, USA. ACM
Press.
Bullnheimer, B.; Hartl, R. F.; , e Strauss, C. (1999)a. An improved ant system
algorithm for the vehicle routing problem. Annals of Operations Research, v. 89,
p. 319–328.
Bullnheimer, B.; Hartl, R. F. e Strauss, C. (1999)b. Applying the Ant System to
the vehicle routing problem. Voss, S.; Martello, S.; Osman, I.H. e C.Roucairol„
editors, Meta-Heuristics: Advances and Trends in Local Search Paradigms for
Optimization, pág. 285–296, Boston, EUA. Kluwer Academic Publishers.
Bullnheimer, B.; Hartl, R. F. e Strauss, C. (1999)c. A new rank-based version of the
Ant System: a computational study. Central European Journal for Operations
Research and Economics, v. 7(1), p. 25–38.
C. E. Miller, A.W. Tucker e Zemlin, R.A. (1960). Integer programming formulation
of travelling salesman problems. Journal of the ACM, v. 7, p. 326–329.
Carlton, W.B. A Tabu Search Approach to the General Vehicle Routing Problem.
PhD Thesis, University of Texas, Austin, EUA, (1995).
Caro, G. Di e Dorigo, M. (1997). AntNet: A mobile agents approach to adaptive
routing. Technical Report IRIDIA/97-12, IRIDIA.
Caro, G. Di e Dorigo, M. (1998)a. Extending AntNet for best-effort Quality-ofService routing. Unpublished presentation at ANTS’98 - From Ant Colonies
to Artificial Ants: First International Workshop on Ant Colony Optimization
http://iridia.ulb.ac.be/ants98/ants98.html, October 15-16.
Caro, G. Di e Dorigo, M. (1998)b. Two ant colony algorithms for best-effort routing
in datagram networks. Pan, Y.; Akl, S. G. e Li, K., editors, Proceedings of the
Tenth IASTED International Conference on Parallel and Distributed Computing
and Systems (PDCS’98), pág. 541–546, Anheim. IASTED/ACTA Press.
Chen, Chia-Ho e Ting, Ching-Jung. (2005). Algorithms for vehicle routing and
scheduling problems with time windows constraints. Journal of the Eastern Asia
Society for Transportation Studies, v. 6, p. 2822–2836.
Referências Bibliográficas
63
Chen, T.K.; Lee, L.H. e Ke, O. (2001). Hybrid genetic algorithm in solving vehicle
routing problem with window constraints. Asia-Pacific Journal of Operational
Research, v. 18, p. 121–130.
Chiang, W.C. e Russell, R.A. (1997). A Reactive Tabu Search Metaheuristic for the
Vehicle Routing Problem with Time Windows. INFORMS Journal on Computing,
v. 9, p. 417–430.
Colorni, A.; Dorigo, M. e Maniezzo, V. (1992). Distributed Optimization by Ant
Colonies. In Proceedings of the First European Conference on Artificial Life
(ECAL 91), pág. 134–142, (1992).
Colorni, A.; Dorigo, M. e Maniezzo, V. (1996). The ant system: Optimization
by a colony of cooperating agents. IEEE Transactions on Systems, Man, and
Cybernetics-Part B, v. 26(1), p. 29–41.
Colorni, A.; Dorigo, M.; Maniezzo, V. e Trubian, M. (1994). Ant System for jobshop
scheduling. JORBEL - Belgian Journal of Operations Research, Statistics and
Computer Science, v. 34(1), p. 39–53.
Cordeau, J.F.; Laporte, G. e Mercier, A. (2001). A Unified Tabu Search Heuristic
for Vehicle Routing Problems with Time Windows. Journal of the Operational
Research Society, v. 52, p. 928–936.
Cordone, R. e Wolfler-Calvo, R. (2001). A Heuristic for the Vehicle Routing Problem
with Time Windows. Journal of Heuristics, v. 7(2), p. 107–129.
Cormen, T. H.; Leiserson, C. E.; Rivest, R. L e Stein, C. (2002). Algoritmos: Teoria
e Prática. Tradução da Segunda Edição Americana por Vandenberd D. de Souza.
Campus, Rio de Janeiro.
Costa, D. e Hertz, A. (1997). Ants can colour graphs. Journal of the Operational
Research Society, v. 48, p. 295–305.
Costa, T. A. Metaheurísticas Híbridas GRASP-Busca Tabu Aplicadas ao Problema
de Roteamento de Veículos com Janelas de Tempo. Dissertação de Mestrado,
Centro Federal de Educação Tecnológica de Minas Gerais, Belo Horizonte, (2005).
Dammeyer, F. e Voß, S. (1993). Dynamic tabu list management using the reverse
elimination method. Hammer, P.L., editor, Tabu Search, volume 41, pág. 31–46.
Baltzer Science Publishers, Amsterdan.
Dantzig, G. B. e Ramser, J. H. (1959). The truck dispatching problem. Management
Science, v. 6, p. 80–91.
denBesten, M.; Stutzle, T. e Dorigo, M. (2000). Ant colony optimization for the
total weighted tardiness problem. Schoenauer, M.; Deb, K.; Rudolph, G.; Yao, X.;
Lutton, E.; Merelo, J. J. e Schwefel, H.S., editors, Proceedings of PPSN-VI, Sixth
International Conference on Parallel Problem Solving from Nature, volume 1917
of Lecture Notes in Computer Science, pág. 611–620, Berlin, Germany. Springer
Verlag.
Referências Bibliográficas
64
Desrochers, M. e Laporte, G. (1991). Improvements and extensions to the MillerTucker-Zemlin subtour elimination constraints. Operations Research Letters, v.
10, p. 27–36.
Dorigo, M. Optimization, Learning and Natural Algorithms (in Italian). PhD Thesis,
Dipartimento di Elettronica, Politecnico di Milano, Milão, Itália, (1992).
Dorigo, M. e Blum, C. (2005). Ant colony optimization theory: a survey. Theoretical
Computer Science, v. 344, p. 243–278.
Dorigo, M.; Caro, G. Di e Gambardella, L. M. (1999). Ant Algorithms for Discrete
Optimization. Artificial Life, v. 5, n. 2, p. 137–172.
Dorigo, M. e Gambardella, L. M. (1997)a. Ant colonies for the traveling salesman
problem. BioSystems, v. 43, p. 73–81.
Dorigo, M. e Gambardella, L. M. (1997)b. Ant colony system: A cooperative learning
approach to the traveling salesman problem. IEEE Transactions on Evolutionary
Computation, v. 1, p. 53–66.
Dorigo, M.; Maniezzo, V. e Colorni, A. (1991)a. The Ant System: an autocatalytic optimization process. Technical Report 91-016 Revised. Dipartimento di
Elettronica, Politecnico di Milano, Itália.
Dorigo, M.; Maniezzo, V. e Colorni, A. (1991)b. Positive feedback as a search
strategy. Technical Report 91-016, Dipartimento di Elettronica, Politecnico di
Milano, Italy.
Ellabib, I.; Basir, O. A. e Calamai, P. (2003). A new Ant Colony System updating
strategy for Vehicle Routing Problem with Time windows. MIC2003: The Fifth
Metaheuristics International Conference, pág. 18–1 – 18–6, (2003).
Flood, M. M. (1956). The Traveling Salesman Problem. Operations Research, v. 4,
p. 61–75.
Fraga, M. C. P.; Souza, S. R. e Costa, T. A. setembro(2006)a. Um algoritmo
híbrido baseado em Colônia de Formigas e Reconexão por Caminhos para resolução do PRVJT. Anais do XXXVIII Simpósio Brasileiro de Pesquisa Operacional,
Goiânia, GO. SOBRAPO, CD-ROM.
Fraga, M. C. P.; Souza, S. R.; Costa, T. A. e Souza, M. J. F. (2005). Algoritmos
baseados em GRASP e Busca Tabu para resolução do Problema de Roteamento
de Veículos com Janela de Tempo. VIII Encontro de Modelagem Computacional.
ISBN 85-904971-2-7.
Fraga, M. C. P.; Souza, S. R.; Costa, T. A. e Souza, M. J. F. agosto(2006)b. Um
algoritmo baseado em Colônia de Formigas para resolução do PRVJT. Anais do
SPOLM 2006: IX Simpósio de Pesquisa Operacional e Logística da Marinha, Rio
de Janeiro, RJ. Marinha do Brasil, CD-ROM.
Franks, N.R. (1989). Army Ants: A Collective Intelligence, volume 7. Scientific
American.
Referências Bibliográficas
65
Gaertner, Dorian. (2004). Natural Algorithms for Optimization Problems. Final
Year Project Report.
Gambardella, L.; Montemanni, R.; Rizzoli, A. e Donati, A. (2005). Ant Colony
System for a Dynamic Vehicle Routing Problem. Journal of Combinatorial Optimization, v. 10(4), p. 327–343(17).
Gambardella, L. M. e Dorigo, M. (1995). Ant-Q: A reinforcement learning approach
to the traveling salesman problem. Prieditis, A. e Russell, S., editors, Proceedings
of the Twelfth International Conference on Machine Learning (ML-95), pág. 252–
260, Palo Alto, CA. Morgan Kaufmann Publishers.
Gambardella, L. M. e Dorigo, M. (1996). Solving symmetric and asymmetric TSPs
by ant colonies. ICEC96 Proceedings of the IEEE Conference on Evolutionary
Computation, pág. 622–627. IEEE Press, (1996).
Gambardella, L. M.; Taillard, É. D. e Agazzi, G. (1999)a. MACS-VRPTW: A
Multiple Ant Colony System for Vehicle Routing Problems with Time Windows.
D. Corne, M. Dorigo e Glover, F., editors, New Ideas in Optimization, pág. 63–76.
McGraw-Hill.
Gambardella, L. M.; Taillard, É. D. e Dorigo, M. (1999)b. Ant colonies for the
quadratic assignment problem. Journal of the Operational Research Society, v.
50(2), p. 167–176.
Gambardella, L. M.; Taillard, É. D. e Dorigo, M. (1999)c. Ant Colonies for the
Quadratic Assignment Problems. Journal of Operational Research Society, v. 50,
p. 167–176.
Garcia, B.L.; Potvin, J.Y. e Rousseau, J.M. (1994). A Parallel Implementation
of the Tabu Search Heuristic for Vehicle Routing Problems with Time Window
Constraints. Computers & Operations Research, v. 21, p. 1025–1033.
Garvin, W. M.; Cranball, H. W.; John, J. B. e Spellman, R. A. (1957). Applications
of linear programming in the oil industry. Management Science, v. 3, p. 407–430.
Gavish, B. e Graves, S. (1979). The travelling salesman problem and related
problems. Working Paper 7905, Graduate School of Management, University
of Rochester, Rochester, NY.
Gavish, B. e Graves, S. (1982). Scheduling and routing in transportation and distributions systems: Formulations and new relaxations. Working paper, Graduate
School of Management, University of Rochester, Rochester, NY.
Glover, F. (1986). Future paths for Integer Programming and Links to Artificial
Intelligence. v. 5, p. 553–549.
Glover, F. (1989). Tabu Search: Part I. ORSA Journal of Computing, v. 1, p.
190–206.
Glover, F. (1990). Tabu Search: Part II. ORSA Journal of Computing, v. 2, p.
4–32.
Referências Bibliográficas
66
Glover, F. (1996). Tabu search and adaptative memory programming - advances,
applications and challenges. Barr, R.; Helgason, R. e Kennington, J., editors, Interfaces in Computer Sciences and Operations Research, pág. 1–75. Kluwer Academic Publishers.
Glover, F. e Laguna, M. (1993). Tabu Search. Reeves, In C.R., editor, Modern
Heuristic Techniques for Combinatorial Problems, Advanced Topics in Computer
Science Series, Capítulo 3, pág. 70–150. Blackwell Scientific Publications.
Glover, F. e Laguna, M. (1997). Tabu Search. Kluwer Academic Publishers, Boston.
Goss, S.; Aron, S.; Deneubourg, J. L. e Pasteels, J. M. (1989). Self-organized
shortcuts in the Argentine ant. Naturwissenschaften, v. 76, p. 579–581.
Hansen, P. (1986). The steepest ascent mildest descent heuristic for combinatorial
programming. Proceedings of Congress on Numerical Methods in Combinatorial
Optimization, Capri, Itália.
Hendtlass, Tim. (2004). TSP optimisation using multi tour ants. IEA/AIE’2004:
Proceedings of the 17th International Conference on Innovations in Applied Artificial Intelligence, pág. 523–532. Springer Springer Verlag Inc, (2004).
Hertz, A. e deWerra, D. (1990). The tabu search metaheuristic: how we used it.
Annals of Mathematics and Artificial Intelligence, v. 1, p. 111–121.
Hölldobler, B. e Wilson, E.O. (1994). Journey to the Ants. Bellknap Press/Harvard
University Press.
Ho, Sin C. e Gendreau, Michel. (2006). Path relinking for the vehicle routing
problem. Journal of Heuristics, v. 12, p. 55–72.
IBGE,.
(2001).
Contas
Nacionais
Trimestrais.
http://www.ibge.gov.br/home/presidencia/noticias/28032002pib.shtm,
acessado em 7 de agosto de 2006 às 15:00.
Kilby, P.; Prosser, P. e Shaw, P. (1999). Guided Local Search for the Vehicle Routing
Problems With Time Windows. S.Voss,; Martello, S.; Osman, I.H. e C.Roucairol„
editors, Meta-heuristics: Advances and Trends in Local Search for Optimization,
pág. 473–486. Kluwer Academic Publishers, Boston, EUA.
Lau, H.C.; Lim, Y. F. e Liu, Q. (2000). Diversification of Neighborhood via
Constraint-based Local Search and Its Application to VRPTW. Working paper,
School of Computing, National University of Singapore.
Lau, H.C.; Sim, M. e Teo, K.M. (2003). Vehicle Routing Problem with Time
Windows and a Limited Number of Vehicles. European Journal of Operational
Research, v. 148, p. 559–569.
Li, H. e Lim, A. (2003). Local search with annealing-like restarts to solve the
VRPTW. European Journal of Operational research, v. 150, p. 115–127.
Referências Bibliográficas
67
Maniezzo, V. (1999). Exact and approximate nondeterministic tree-search procedures for the quadratic assignment problem. INFORMS Journal on Computing,
v. 11(4), p. 358–369.
Maniezzo, V. e Colorni, A. (1999). The Ant System applied to the quadratic
assignment problem. IEEE Transactions on Data and Knowledge Engineering, v.
11(5), p. 769–778.
Maniezzo, V.; Colorni, A. e Dorigo, M. (1994). The Ant System applied to the
quadratic assignment problem. Technical Report IRIDIA/94-28, IRIDIA.
Merkle, D.; Middendorf, M. e Schmeck, H. (2000). Ant colony optimization for
resource-constrained project scheduling. In Proceedings of the Genetic and Evolutionary Computation Conference (GECCO-2000), pág. 893–900, San Francisco,
CA. Morgan Kaufmann Publishers.
Potvin, J.Y.; Kervahut, T.; Garcia, B.L. e Rousseau, J.M. (1996). The Vehicle
Routing Problem with Time Windows Part I: Tabu Search. INFORMS Journal
on Computing, v. 8, p. 157–164.
Ribeiro, C.C. (2002). Metaheuristics and Applications. In Advanced School on
Artificial Intelligence, Portugal.
Rochat, Y. e Taillard, É. D. (1995). Probabilistic Diversification and Intensification
in Local Search for Vehicle Routing. Journal of Heuristics, v. 1, p. 147–167.
Russell, R.A. (1995). Hybrid heuristics for the vehicle routing problem with time
windows. Transportation Science, v. 29, p. 156–166.
Schaefer, A. (1996). Tabu search techniques for large high-school timetabling problems. Proceedings of the 30th National Conference on Artificial Intelligence, pág.
363–368, (1996).
Schoonderwoerd, R.; Holland, O. e Bruten, J. (1997). Ant-like agents for load balancing in telecommunications networks. In Proceedings of the First International
Conference on Autonomous Agents, pág. 209–216. ACM Press, (1997).
Schoonderwoerd, R.; Holland, O.; Bruten, J. e Rothkrantz, L. (1996). Antbased
load balancing in telecommunications networks. Adaptive Behavior, v. 5(2), p.
169–207.
Schulze, J. e Fahle, T. (1999). A Parallel Algorithm for the Vehicle Routing Problem
with Time Window Constraints. Annals of Operations Research, v. 86, p. 585–607.
Shaw, P. (1998). Using Constraint Programming and Local Search Methods to
Solve Vehicle Routing Problems. Maher, M. e Puget, J.-F., editors, Proceedings
of of the Fourth International Conference on Principles and Practice of Constraint
Programming (CP’98), pág. 417–431. Springer-Verlag, (1998).
Referências Bibliográficas
68
Sintef,.
(2005).
Best
Known
Solutions
Identified
by
Heuristics
for
Solomon’s
(1987)
Benchmark
Problems.
http://www.sintef.no/static/am/opti/projects/top/vrp/bknown.html,
acessado em 31 de julho de 2006 às 13:00.
Solomon, M. M. (1987). Algorithms for vehicle routing and scheduling problems
with time windows constraints. European Journal of Operational Research, v. 35,
p. 254–266.
Stutzle, T. (1998). An ant approach to the flow shop problem. In Proceedings of the
6th European Congress on Intelligent Techniques & Soft Computing (EUFIT’98),
volume 3, pág. 1560–1564. Verlag Mainz, Aachen.
Stutzle, T. (1999). Local Search Algorithms for Combinatorial Problems: Analysis,
Improvements, and New Applications. Infix, Sankt Augustin, Germany.
Stutzle, T. e Dorigo, M. (1999). ACO algorithms for the traveling salesman problem.
Miettinen, K.; Makela, M. M.; Neittaanmaki, P. e Periaux, J., editors, Recent
advances in genetic algorithms, evolution strategies, evolutionary programming,
genetic programming and industrial applications. John Wiley and Sons.
Stutzle, T. e Dorigo, M. (2000). The Ant Colony Optimization Metaheuristic:
Algorithms, Applications, and Advances. Technical Report IRIDIA-2000-32.
Stutzle, T. e Hoos, H. H. (1997). The MAX-MIN Ant System and local search for
the traveling salesman problem. Bäck, T.; Michalewicz, Z. e Yao, X., editors, Proceedings of the 1997 IEEE International Conference on Evolutionary Computation
(ICEC’97), pág. 309–314, Piscataway, NJ. IEEE Press.
Subramanian, D.; Druschel, P. e Chen, J. (1997). Ants and reinforcement learning: A case study in routing in dynamic networks. In Proceedings of IJCAI-97,
International Joint Conference on Artificial Intelligence, pág. 832–838. Morgan
Kaufmann, (1997).
Taillard, É. D. (1998). FANT: Fast Ant System. Technical Report IDSIA-46-98,
IDSIA, Lugano, Switzerland.
Taillard, É. D.; Badeau, P.; Gendreau, M.; Guertin, F. e Potvin, J.Y. (1997). A
Tabu Search Heuristic for the Vehicle Routing Problem with Soft Time Windows.
Transportation Science, v. 31, p. 170–186.
Tan, K. C.; Lee, L. H. e Ou, K. (2001)a. Artificial intelligence heuristics in solving
vehicle routing problems with time window constraints. Engineering Applications
of Artificial Intelligence, v. 14, p. 825–837.
Tan, K. C.; Lee, L. H.; Zhu, Q. L. e Ou, K. (2001)b. Heuristic methods for vehicle
routing problem with time Windows. Artificial Intelligence in Engineering, v. 15,
p. 281–295.
Referências Bibliográficas
69
T’kindt, Vincent; Monmarché, Nicolas; Tercinet, Fabrice e Laügt, Daniel. (2002).
An Ant Colony Optimization algorithm to solve a 2-machine bicriteria flowshop
scheduling problem. European Journal of Operational Research, v. 142, p. 250–
257(2).
Toth, P. e Vigo, D. (2002). The Vehicle Routing Problem. SIAM - Society for
Industrial and Applied Mathematics, Philadelphia, 1a edição.
White, T.; Pagurek, B.; , e Oppacher, F. (1998). Connection management using
adaptive mobile agents. Arabnia, H.R., editor, Proceedings of the International
Conference on Parallel and Distributed Processing Techniques and Applications
(PDPTA’98), pág. 802–809, Berlin, Germany. CSREA Press.
Wilson, E.O. e Hölldobler, B. (1990). The ants. Springer-Verlag, Berlin.
Xu, Yi-Liang; Lim, Meng-Hiot; Ong, Yew-Soon e Tang, Jing. (2006). A GAACO-local search hybrid algorithm for solving quadratic assignment problem.
GECCO’06: Proceedings of the 8th annual conference on Genetic and evolutionary computation, pág. 599–606, New York, NY, USA. ACM Press.
Download

Uma metodologia híbrida Colônia de Formigas