resolvendo o problema do caixeiro viajante via ... · do caixeiro viajante (pcv) através de um...
TRANSCRIPT
UNIVERSIDADE FEDERAL DE OURO PRETO DEPARTAMENTO DE COMPUTAÇÃO
RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA PROCEDIMENTO DE BUSCA ADAPTATIVA ALEATÓRIA
GULOSA COM CONSTRUÇÃO BASEADA EM REDES NEURAIS
AUTO-ORGANIZÁVEIS
ALAN ROBERT RESENDE DE FREITAS
ORIENTADOR(A): Prof. Frederico Gadelha Guimarães
DEZEMBRO 2009
Dedico este trabalho a meus pais, que tanto contribuíram para minha formação.
AGRADECIMENTOS
Agradeço a todos que direta ou indiretamente contribuíram para o desenvolvimento deste trabalho. A meus pais, pelo apoio em todos os momentos de dificuldade. A meu orientador, Frederico Gadelha Guimarães, por todo o conhecimento passado durante a produção deste trabalho e por toda a paciência e dedicação. Às tias Consolação e Aparecida pela ajuda e abrigo quando necessários. Ao DECOM e UFOP pelo ensino gratuito de qualidade. Por fim, aos amigos da Tôa Tôa pela amizade e pelos momentos bons em Ouro Preto.
RESUMO
Problemas da classe Não-Polinomial (NP) são muito difíceis de se resolver com métodos enumerativos pois o tempo de processamento é absolutamente inviável a não ser quando instâncias muito pequenas de problemas estão sendo resolvidas, já que o aumento do tempo do processamento é exponencial.
Para contornar este problema, podem ser usadas heurísticas que em vários casos podem encontrar soluções de boa relação custo(ou tempo de processamento)/benefício, considerando-se os tamanhos da instâncias.
Neste trabalho, é proposta uma abordagem para o Problema do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas auto-organizáveis (SOM) em sua fase construtiva e busca Tabu para o refinamento das soluções.
Experimentos para a dedução dos melhores parâmetros para as redes neurais e busca Tabu também são apresentados neste trabalho. Entre os parâmetros que podem mudar o comportamento do método estão o numero de neurônios em relação ao número de cidades, o modo como é selecionado o neurônio vencedor na fase de competição e o número de neurônios que são influenciados na fase de cooperação.
Outra preocupação é também fazer com que as redes neurais gerem soluções com alta diversidade, o que é fundamental para o GRASP. Após todas as definições básicas, um estudo de abordagens para o Problema de Roteamento de Veículos é apresentado. Palavras-chave: Problema do Caixeiro Viajante, redes auto-organizáveis, otimização combinatória, Metaheurísticas, Problema de Roteamento de Veículos, Busca Tabu, GRASP
ABSTRACT
Problems of the Non-Polinomial (NP) class are very hard to solve with enumeration methods since the processing time is absolutely impracticable unless the instances being solved are very small, since the growth of the processing time is exponential.
To deal with this problem, it is possible to use some heuristics that are able to find solutions with a good relation between processing time and quality, regarding the size of the instances.
This work proposes an approach for the Travelling Salesman Problem (TSP) through an Greedy Randomized Adaptive Search Procedure (GRASP) that uses Artificial Neural Networks (ANN) based on Self-organizing Maps (SOM) for the construction phase and a Tabu Search for the local search phase.
Experiments for the deduction of the best parameters for the ANN and the Tabu Search are also shown in this work. The number of neurons according to the number of cities, the way the winner neuron is selected in the competition phase and the number of neurons influenced by the winner in the cooperation phase are some of the parameters that may change the behavior of the method.
Another concern is also to make the ANN create high diversity solutions, which is fundamental for the GRASP to work appropriately. Apart from all of the basic definitions, a study of approaches for the Vehicle Routing Problem is presented. Keywords: Travelling Salesman Problem, Self-organizing Maps, Combinatorial Optimization, Meta heuristics, Vehicle Routing Problem, Tabu Search, GRASP
SÍMBOLOS, ABREVIATURAS, SIGLAS E CONVENÇÕES
ACO Otimização por Colônia de Formigas (Ant Colony Optimization) BT Busca Tabu EA Algoritmos Evolucionários (Evolutionary Algorithms) GRASP Procedimento de Busca Adaptativa
Aleatória Gulosa (Greedy Randomized Adaptive Search Procedure) FI First Improvement MTS Match Twice and Stitch NN Vizinho mais próximo (Nearest Neighbor) NP Não-Polinomial PCV Problema do Caixeiro Viajante RNA Redes Neurais Artificiais (Artificial Neural Networks) PRV Problema do Roteamento de Veículos SA Recozimento Simulado (Simulated Annealing) SOM Mapas Auto-Organizáveis (Self-Organizing Maps) TS Busca Tabu (Tabu Search) TSP Travelling Salesman Problem
ÍNDICE
CAPÍTULO I – PRELIMINARES................................................9 I.1–INTRODUÇÃO .................................................................................. 9 I.2–OBJETIVOS.....................................................................................13 I.1.1 – Objetivos Gerais................................................................ 13 I.1.2 – Objetivos Específicos ...................................................... 14
I.3–REVISÃO BIBLIOGRÁFICA ...........................................................14 I.4–ORGANIZAÇÃO DO TRABALHO...................................................19
CAPÍTULO II – PCV E PRV ..................................................... 21 II.1–PROBLEMA DO CAIXEIRO VIAJANTE .......................................21 II.1.1 – Modelagem ....................................................................... 23 II.1.2 – Computando uma solução ......................................... 25 II.1.3 – Instâncias do problema............................................... 31
II.2–PROBLEMA DE ROTEAMENTO DE VEÍCULOS .........................32 CAPÍTULO III – REDES NEURAIS AUTO-ORGANIZÁVEIS...................................................................................................... 35 III.1-‐CONCEITOS BÁSICOS..................................................................35 III.2–REDES SOM PARA RESOLUÇÃO DO PCV ..............................37 III.3-‐ALGORITMO ................................................................................39 III.3.1 – Inicialização da Rede.................................................. 39 III.3.2 – Competição ..................................................................... 40 III.3.3 – Cooperação ..................................................................... 41 III.3.4 – Adaptação ....................................................................... 43
III.4–EXEMPLO DE EXECUÇÃO ..........................................................47 CAPÍTULO IV – METAHEURÍSTICAS GRASP E BUSCA TABU........................................................................................... 49 IV.1-‐GRASP ........................................................................................49 IV.2–BUSCA TABU ..............................................................................52 IV.2–GRASP REATIVO ......................................................................58
CAPÍTULO V – RESULTADOS .............................................. 61 V.1–PCV...............................................................................................61 V.2-‐PRV ...............................................................................................64 V.3–GERAÇÃO DE DIVERSIDADE.......................................................68 V.3.1 – Pela taxa de aprendizado ........................................... 71 V.3.2 – Pelo número de neurônios em relação às cidades............................................................................................................... 72 V.3.3 – Pelo número de neurônios influenciados pelo neurônio vencedor........................................................................ 75 V.3.4 – Pela escolha do neurônio vencedor........................ 77
CAPÍTULO VI – CONCLUSÕES E TRABALHOS FUTUROS...................................................................................................... 83 REFERÊNCIAS BIBLIOGRÁFICAS ........................................ 87
CAPÍTULO I – PRELIMINARES
I.1–Introdução Problemas combinatórios podem ser encontrados
em várias situações práticas em que se deve procurar uma
combinação de valores ótimos em um conjunto finito de
soluções. Estes problemas são normalmente NP-
completo ou NP-difícil, ou seja, não existe um método
matemático que encontre a solução ótima em um tempo
polinomial.
Para contornar este problema, é interessante fazer
o uso de heurísticas, que apesar de nem sempre
encontrarem o ótimo global do dado problema, podem
encontrar soluções aceitáveis com um tempo de
processamento polinomial em relação ao tamanho da
instância de entrada.
Neste trabalho, será abordado em princípio o
problema do caixeiro viajante (PCV) com um
10
procedimento de busca adaptativa aleatória gulosa
(Greedy Randomized Adaptive Search Procedure -
GRASP). O GRASP é um procedimento que gera
soluções iniciais e refina estas soluções um dado número
de vezes sem considerar a solução das iterações
anteriores, atingindo resultados que não têm
necessariamente relação com o resultado da iteração
anterior. Isto faz com que o procedimento seja não-
determinístico e possa assim percorrer melhor o espaço
de busca das soluções.
O PCV é também muito interessante pois é um
caso particular do problema de roteamento de veículos
(PRV) e é utilizado para testar novas técnicas de
otimização combinatória. A definição do problema é
basicamente achar a menor rota possível que passe por
todas as cidades de um conjunto, visitando cada cidade
uma única vez. Para um conjunto de n cidades, existem
(n-1)!/2 rotas possíveis, o que torna inviável o cálculo da
melhor solução possível através de um método de força
bruta pois o número de rotas cresce fatorialmente em
relação ao número de cidades. Atualmente, o PCV não
11
tem ainda uma solução matemática que possa ser
calculada em tempo polinomial.
Neste trabalho, uma Rede Neural Artificial Auto-
Organizável (Self-Organizing Maps - SOM) é utilizada
na geração de soluções iniciais do GRASP, gerando
soluções iniciais relativamente boas, já a princípio. Na
fase de refinamento do GRASP, o método de Busca Tabu
(BT) é utilizado, levando a solução a um ótimo local.
Após algumas execuções do GRASP temos uma boa
relação entre o custo de processamento e a qualidade da
solução.
Já existem trabalhos que propõem soluções para o
PCV, como o k-opt (Lin & Kernighan, 1973), em que k
sub-rotas da rota corrente são substituídas por outras k
sub-rotas de modo que uma rota menor seja produzida.
Baseada neste método, foi proposta a heurística de Lin-
Kernighan onde o valor ideal de k é determinado a cada
iteração.
Quando redes SOM são aplicadas ao PCV temos
um método eficiente pois não existe a necessidade de
avaliação das soluções a cada iteração. Este é um fator
12
que pode representar uma economia de tempo de
processamento relativamente grande em alguns casos
com um grande número de cidades. Além disto, redes
SOM geralmente encontram soluções boas o suficiente
para que possam ser usadas como soluções finais em
várias situações práticas.
Assim, será proposta aqui uma solução do PCV
utilizando o GRASP, sendo que será utilizada uma rede
SOM para a definição da solução inicial do procedimento
e uma busca Tabu para o refinamento da mesma.
As redes SOM produzem soluções para o PCV
que são normalmente de relativa qualidade porém não
são localmente ótimas. Assim, o procedimento GRASP
usará as redes SOM para geração de uma solução inicial
e uma busca Tabu será usada para que se chegue a uma
solução que seja então um ótimo local.
Para que o GRASP ache boas soluções, é
fundamental que as soluções iniciais tenham uma
diversidade elevada (Feo & Resende, 1995), podendo
assim convergir para diferentes ótimos locais no processo
de refinamento. Será objeto de estudo deste trabalho,
13
então, os parâmetros convenientes para que se controle a
diversidade das soluções iniciais geradas.
I.2–Objetivos
I.1.1 – Objetivos Gerais Neste trabalho será apresentada uma solução para
o Problema do Caixeiro Viajante (PCV) e Problema do
Roteamento de Veículos (PRV). Ambos são bastante
estudados na literatura e é proposta neste trabalho uma
solução baseada em Redes Neurais Artificiais Auto-
Organizáveis, usadas juntamente com o refinamento de
buscas locais de primeira melhora (First Improvement -
FI) e Busca Tabu (BT). Para uma maior exploração do
espaço de busca é também usado o Procedimento de
Busca Adaptativa Aleatória Gulosa (GRASP) com a
intenção de se gerar diversidade para as soluções
estudadas.
14
I.1.2 – Objetivos Específicos Além dos testes com as Redes Neurais e seus
resultados, é também estudada neste trabalho a relação
entre os valores de configuração das Redes Neurais que
geram maior diversidade nas soluções encontradas,
mesmo que esta diversidade penalize de certo modo a
qualidade das soluções geradas. Isso é extremamente
importante já que as Redes Neurais serão usadas como
ferramenta de criação de soluções iniciais para o GRASP,
procedimento em que a diversidade de suas soluções
iniciais é primordial para que após o refinamento o
mesmo tenha uma convergência para diferentes ótimos
locais, o que aumenta a probabilidade de se encontrar
uma melhor solução entre as soluções refinadas geradas.
I.3–Revisão Bibliográfica Definir quais foram os primeiros estudos sobre o
PCV é uma tarefa complicada já que existem estudos
antigos de matemáticos sobre o assunto do século XIX,
como por exemplo, os estudos de W.R. Hamilton e
Thomas Kirkman, que deram origem ao conceito de ciclo
hamiltoniano (Hankins, 1980). Em 1857, Hamilton criou
15
um jogo matemático denominado Jogo Icosiano, onde o
objetivo era encontrar o ciclo hamiltoniano de um
dodecaedro em que cada vértice é visitado uma e apenas
uma vez, sendo o ponto de partida também o ponto final.
Figura 1. Ciclo Hamiltoniano (Christoph Sommer)
Na década de 1930, a forma geral do problema
parece surgir de estudos novos, destacando-se Karl
Menger (Schrijver, 2005), que define o problema
considerando um algoritmo que o resolve por força-bruta
e observando que o algoritmo guloso de procura pela
vizinhança mais próxima a cada passo não é ótimo. Logo
depois, Hassler Whitney (Schrijver, 2005), da
Universidade de Princeton, começa a usar o termo
16
Travelling Salesman Problem (TSP) ou Problema do
Caixeiro Viajante (PCV).
Nas décadas de 1950 e 1960, surgiram
importantes contribuições de George Dantzig, Delbert
Ray Fulkerson e Selmer M. Johnson da RAND
Corporation em Santa Mônica. Eles expressaram o PCV
como uma problema de programação linear e
desenvolveram o método de plano de cortes para
solucioná-lo (Dantzig, 1959). O método se baseia em
refinar um conjunto de soluções factíveis por meio de
expressões de desigualdade lineares, chamados de cortes.
Assim, conseguiram uma solução ótima para uma
instância de 49 cidades construindo uma rota e provando
que nenhuma outra rota poderia ser menor.
Nas décadas seguintes, o problema foi estudado
por vários pesquisadores, sendo que em 1972, Richard
M. Karp mostrou que o ciclo hamiltoniano era NP-
completo (Applegate, 2006), o que implica na
complexidade não-polinomial do PCV. Deste estudo
surge explicação para a dificuldade computacional de se
achar rotas ótimas. Nas décadas de 1970 e 1980, foi feito
progresso quando Grötschel, Padberg, Rinaldi e outros
17
conseguiram encontrar soluções para instâncias de até
2392 cidades, usando o método de plano de cortes e o
método de ramificação e podas (Grötschel, 1980);
(Grötschel & Holland, 1991); (Padberg & Rinaldi, 1987);
(Padberg & Rinaldi, 1991).
Na década de 1990, Applegate, Bixby, Chvátal e
Cook desenvolveram um programa chamado Concorde
que tem sido usado em muitas soluções atuais que são
recordes (Applegate, 2006). Em 1991, foi publicada uma
biblioteca chamada TSPLib (Reinelt, 1991): uma coleção
de instâncias de variadas dificuldades que tem sido usada
por diferentes grupos de pesquisa para comparar
resultados. Essa é a biblioteca de instâncias que será
usada neste trabalho.
Em 2005, Cook e outros calcularam uma rota
ótima para uma instância de 33,810 cidades que resolvia
um problema relacionado ao desenvolvimento de um
micro-chip (Applegate, 2006). Atualmente, esta é a maior
instância da biblioteca TSPLib. Para outras instâncias
com milhões de cidades, soluções que provavelmente
variam em 1% do ótimo podem ser encontradas.
18
O GRASP (Feo & Resende, 1995) foi um
algoritmo primeiramente usado para o problema da
cobertura de conjuntos (Feo & Resende, 1989). É um
algoritmo que consiste basicamente de duas fases: de
construção e de busca local. Após várias iterações no
GRASP, a melhor solução encontrada é tida como
resultado.
A Busca Tabu (BT) (Glover & Laguna, 1997) foi
uma solução inicialmente usada para problemas de
programação inteira e teve depois seu algoritmo descrito
de maneira generalizada para uso em outros problemas
de otimização combinatória (Adams et al., 1988). A
principal característica deste método é que ele permite
soluções de piora em relação à solução atual para tentar
fugir de um ótimo local. Para que não se retorne a
soluções anteriores, estruturas de memória são usadas.
As redes SOM podem ser usadas para resolver
PCVs, porém elas não levam a um ótimo local sem a
ajuda de uma outra heurística de refinamento (Veira et
al., 2003). Em algumas instâncias da biblioteca TSPLib,
o uso de redes SOM apenas levam a resultados que, na
média, divergem em apenas 3,7% das rotas ótimas
19
conhecidas. Foram também estudados parâmetros que
fazem as redes SOM levarem a melhores soluções para
PVC porém estes parâmetros podem não ser válidos caso
haja a intenção de se refinar a solução obtida com um
outro método, como o GRASP.
I.4–Organização do Trabalho Este é um trabalho dividido em sete capítulos,
incluindo a introdução, onde são contextualizados os
problemas, a solução proposta, objetivos, suas aplicações
e estudos prévios.
No Capítulo II são explicados em detalhes quais
são os problemas e o que os tornam aplicáveis a várias
situações práticas. O PCV é explicado em detalhes, assim
como sua transformação em um PRV.
No Capítulo III há uma breve explicação sobre
Redes Neurais seguida de uma apresentação das Redes
Neurais Auto-Organizáveis, que são usadas no trabalho
para a geração de soluções iniciais para o procedimento
GRASP.
20
No Capítulo IV, as metaheurísticas GRASP e
busca Tabu são detalhadas. São definidos os parâmetros
que podem ser configurados e suas consequências.
No Capítulo V são apresentados os resultados da
aplicação do método proposto a instâncias padrão dos
problemas propostos. São incluídos neste capítulo,
comparações com outros resultados obtidos com
diferentes métodos.
No Capítulo VI são apresentadas as conclusões
sobre o trabalho desenvolvido e ideias de trabalhos
futuros que podem ser desenvolvidos, baseando-se nestas
conclusões.
CAPÍTULO II – PCV E PRV
II.1–Problema do Caixeiro Viajante
Apesar de parecer modesto, o PCV é muito
estudado por cientistas. A definição do problema é
basicamente encontrar a menor rota que passa por todas
as cidades de um mapa sendo que nenhuma cidade pode
ser visitada mais de uma vez.
O PCV foi inicialmente formulado como um
problema matemático e é um dos problemas mais
estudados em otimização como um padrão para testar a
eficiência de metaheurísticas. Assim, vários métodos
para a solução do problema são conhecidos.
22
Figura 2. Representação de um PCV.
Este é um problema que tem várias aplicações
desde planejamento e logística até o desenvolvimento de
micro-chips. Podem também ser usadas metáforas, onde
as cidades do PCV podem representar clientes, pontos de
solda ou fragmentos de DNA e o conceito de distância
pode representar o tempo de viagem, o custo ou a
similaridade entre fragmentos de DNA.
Partimos do pressuposto de que não existe
algoritmo eficiente que resolve o PCV em tempo
polinomial pois o mesmo pertence a classe NP-completo
23
(Applegate, 2006). O pior caso de execução de pequenas
instâncias de apenas centenas de cidades do PCV pode
demorar anos para ser concluído.
II.1.1 – Modelagem O PCV pode ser modelado como um grafo em
que cidades são representadas por vértices e as ligações
são as arestas. Assim, a distância entre as cidades fica
sendo representada pelo comprimento das arestas. Com
esta representação, a rota do PCV se torna um ciclo
hamiltoniano e o ótimo global do problema é também o
ciclo hamiltoniano mais curto possível.
Em problemas simétricos, a distância de ida e de
volta entre duas cidades é a mesma, o que forma um
grafo não direcionado. Esta simetria faz com que o
número de rotas possíveis caia pela metade. Já em um
PCV assimétrico, podem não existir caminhos entre duas
cidades ou as distâncias podem ser diferentes, o que gera
um grafo direcionado. Acidentes de automóveis, ruas de
mão-única ou preços de passagem que podem ser
diferentes de acordo com a cidade de partida e chegada
24
são exemplos que podem fazer o uso de PCV
assimétricos necessário.
No PCV métrico, o comprimento da aresta define
a métrica do cálculo da distância entre as cidades.
Quando as cidades são vistas como pontos no plano,
muitas funções de distância naturais são métricas. No
PCV Euclidiano, a distância entre duas cidades é a
distância Euclidiana entre dois pontos correspondentes e
é essa a métrica considerada neste trabalho. Além deste,
existem também o PCV retilíneo, onde a distância entre
duas cidades é a soma da diferença entre suas
coordenadas x e y, e a métrica máxima, onde a distância
é o máximo entre as diferenças das coordenadas x e y.
Estas duas últimas podem ser úteis para definir a
operação de uma máquina que perfura circuitos.
As medidas de distância não satisfazem apenas
com estas métricas em vários problemas em que se deve
definir rotas pois para alguns modos de transporte, como
o avião, viagens podem ser mais rápidas mesmo cobrindo
uma distância maior, por exemplo. Em sua definição, o
PCV não permite que cidades sejam visitadas mais de
uma vez, porém várias aplicações práticas precisam desta
25
constante. Nestes casos, uma instância não-métrica
simétrica pode ser reduzida em uma métrica. Isso
substitui o grafo original com um grafo completo no qual
a distância é trocada pela menor distância entre as
cidades no grafo original.
É importante citar que o fato de ser necessário
retornar à cidade inicial do problema não aumenta a
complexidade computacional do problema.
II.1.2 – Computando uma solução Os métodos mais comuns para tratar estes
problemas consistem em desenvolver algoritmos para
procurar soluções exatas, o que vai ser relativamente
rápido para instâncias pequenas, ou desenvolver
heurísticas, que calculam soluções boas que não podem
ser confirmadas como ótimas.
O problema tem se mostrado ser NP-difícil
mesmo para o caso onde as cidades estão em um plano
com distâncias Euclidianas ou para outros casos mais
restritivos. Retirar a condição de que cada cidade seja
visitada apenas uma vez não remove a dificuldade do
26
problema pois pode ser facilmente percebido que neste
caso a melhor rota ainda seria uma que visitaria cada
cidade apenas uma vez desde que pela desigualdade
triangular, um atalho que pula a cidade já visitada era o
que diminuiria o comprimento total da rota (Applegate,
2006).
Geralmente, se a medida de distância é métrica e
simétrica, o problema se torna um problema APX-
completo (Lawler, 1985), o que quer dizer que se pode
conseguir boas aproximações com o uso de heurísticas.
Existe também o problema de maximização, que é o de
encontrar a rota mais comprida possível.
A solução exata mais intuitiva para o problema é
a de tentar todas as permutações, o que caracteriza o
método de força bruta. A ordem de complexidade deste
tipo de abordagem é de O(n!), ou seja, o fatorial do
número de cidades, o que pode tornar esta solução
imprática mesmo para 20 cidades. Uma solução baseada
em programação dinâmica pode resolver o problema em
um tempo O(n22n) (Bellman, 1962), porém a solução de
programação dinâmica requer um espaço exponencial,
pois são necessários métodos de inclusão e exclusão.
27
Algumas outras abordagens também são
possíveis, como algoritmos de ramificação e poda que
podem ser usados para instâncias de 40 a 60 cidades,
algoritmos de melhora progressiva que usam técnicas
rememorativas da programação linear e funcionam bem
para instâncias de até 200 cidades ou implementações de
algoritmos de ramificação e poda com poda de gerações
específicas para o problema (Applegate, 2006).
Uma solução exata para 15.112 cidades na
Alemanha do TSPLib foi descoberta em 2001 usando o
método de planos de corte já proposto na década de 50
(Dantzig et al., 1954), baseado em programação linear. O
processamento foi feito em uma rede de 110
processadores na Universidade de Rice e na Universidade
de Princeton. O processamento total foi de 22,6 anos para
um único processador de 500MHz. Em maio de 2004, o
problema de se visitar todas as 24.978 cidades da Suécia
foi resolvido. Uma rota de aproximadamente 72.500
kilometros foi descoberta e foi-se provado que não existe
uma rota menor (Applegate et al., 2004).
Em março de 2005, o PCV de se passar por todos
os 33.810 pontos em um circuito foi resolvido usando o
28
Concorde TSP Solver. Uma rota de tamanho 66.048.945
unidades foi encontrada e foi provado que não existe rota
mais curta. O processamento levou aproximadamente
15,7 anos de CPU (Applegate et al. 2006). Em abril de
2006, uma instância com 85.900 pontos foi resolvida
com o Concorde TSP Solver, levando mais de 136 anos
de CPU (Applegate et al., 2006).
Várias heurísticas e algoritmos de aproximação
que levam a boas soluções em pouco tempo foram
desenvolvidas. Métodos modernos podem encontrar
soluções para problemas de até milhões de cidades em
um tempo razoável e uma grande probabilidade de
estarem apenas 3% próximas do ótimo.
Existem heurísticas construtivas, como o
algoritmo do vizinho mais próximo (Nearest Neighbour -
NN), uma solução gulosa onde deixamos o caixeiro
decidir a cidade mais próxima ainda não visitada no seu
próximo movimento. Este algoritmo leva rapidamente a
uma rota efetivamente pequena. Para n cidades
distribuídas em um plano aleatoriamente, o algoritmo
leva a uma solução 25% maior do que a melhor rota na
média (Rosenkrantz, 1977).
29
Contudo, existem várias distribuições arranjadas
de cidades que fazem o NN retornar a pior rota (Gutin et
al., 2002) tanto para PCVs simétricos quanto
assimétricos. Existe também um fator de aproximação
Θ(log |V|) para instâncias que satisfazem a desigualdade
triangular (Rosenkrantz et al., 1977).
Existe uma nova heurística construtiva chamada
Match Twice and Stitch (MTS) (Kahng & Reda, 2004)
que empiricamente tem desempenho superior a todas as
outras heurísticas construtivas existentes. MTS faz duas
combinações sequenciais, onde a segunda combinação é
executada depois de se deletar todas as arestas da
primeira combinação para que se produza uma coleção
de ciclos. Os ciclos são então costurados para produzir a
rota final.
Outra classe de heurísticas que pode ser utilizada
para a resolução deste tipo de problema é a da Melhora
Iterativa. Como o método de Pairwise Exchange ou
técnica 2-opt que se baseia em remover duas arestas e
substituí-las por outras duas (Lin & Kernighan, 1973).
Depois, se reconectam os fragmentos criados pela
remoção das arestas iterativamente para se encontrar uma
30
rota nova e menor. Este é um caso particular do método
k-opt.
Existe também a heurística k-opt, que tem um
comportamento semelhante, sendo o método mais
popular o 3-opt. O k-opt é na verdade um caso específico
da heurística V-opt, que é um método mais generalizado.
Além de todas já citadas, ainda existem as
heurísticas de melhora aleatória, que podem ser
melhorias de algoritmos baseados em cadeias de Markov
(Kemeny, 1959) que usam algoritmos heurísticos de
busca local e podem chegar a rotas extremamente
próximas do ótimo para instâncias de 850 cidades
facilmente ou algoritmos de mudança aleatória de rotas
que são atualmente os mais sofisticados algoritmos de
busca e funcionam com até 100.000 cidades.
Escolhendo-se uma rota e alguns pontos
próximos, troca-se os caminhos entre eles para se criar
um novo caminho aleatório à medida que diminuímos o
valor da menor rota conhecida o que leva após certo
tempo a um mínimo local.
31
Assim, o PCV é um critério de avaliação para
várias heurísticas desenvolvidas para otimização
combinatória como Algoritmos Genéticos (AG) (Banzhaf
et al., 1998), onde cada indivíduo pode representar um
rota e após várias iterações temos uma evolução da
população por processos de mutação e/ou cruzamento,
Recozimento Simulado (Simulated Annealing - SA)
(Kirkpatrick et al., 1983), onde usa-se uma analogia com
a termodinâmica para que se fuja de ótimos locais e se
encontre um ótimo global, Busca Tabu (Glover &
Laguna, 1997), método de otimização com estruturas de
memória que evitam o retorno para um ótimo local já
pesquisado, o método de colônia de formigas (Dorigo,
1992) e o de entropia cruzada (De Boer et al., 2005) entre
outros.
II.1.3 – Instâncias do problema Para medida de padronização dos problemas e ter-
se assim confiabilidade nas comparações entre os
métodos propostos, existe a biblioteca TSPLIB (Reinelt,
1991) que contém vários modelos de instâncias. Os
problemas relacionados são mantidos e várias instâncias
32
representam cidades que realmente existem ou
disposições de circuitos impressos reais.
II.2–Problema de Roteamento de Veículos
Um problema que deriva do PCV é o Problema
do Roteamento de Veículos (PRV). O problema básico é
o de atender um dado número de clientes com veículos
que partem de dados depósitos. Uma de suas restrições é
que cada veículo tem uma capacidade máxima e não
pode atender aos clientes se a demanda for maior que
esta capacidade. O problema foi inicialmente formulado
(Dantzig & Ramser, 1959), para a aplicação no problema
de distribuição de gasolina para estações de venda.
A partir desta definição inicial podemos ter
diferentes funções objetivos a serem minimizadas, como
o custo da operação, o tempo total de transporte, a
distância percorrida, tempo de espera, benefício, serviço
ao cliente, utilização dos veículos ou utilização dos
recursos.
33
Figura 3. Representação de um PRV com 1 depósito e
3 pétalas.
O PRV tem sido foco de vários estudos devido à
necessidade de redução com custos de transporte, que
alteram significantemente o custo final de um produto ao
consumidor. Com soluções mais eficientes para o PRV
podemos reduzir o valor final destes produtos.
Existem variantes do PRV, como o Problema do
Roteamento de veículos com Janela de Tempo (PRVJT),
que considera o tempo gasto para atender os clientes. No
34
PRVJT, cada consumidor tem uma janela de tempo para
que possa ter um tempo de atendimento (Oliveira, 2007).
Outras variantes que valem a pena serem citadas
são o PRV com Coleta e Entrega (Psaraftis, 1988), onde
um certo número de bens devem ser movidos de alguns
locais de coleta para outros locais de entrega, ou o PRV
com Coleta e Entrega First in First Out, onde o item que
está sendo entregue deve ser necessariamente o último
que foi coletado.
Apesar destes, podemos considerar vários outros
fatores relacionados ao transporte que aumentam o preço
final de produto: o preço dos combustíveis em diferentes
locais, pedágios, manutenção de veículos e a conservação
das vias.
CAPÍTULO III – REDES NEURAIS AUTO-ORGANIZÁVEIS
III.1-Conceitos básicos
Redes Neurais baseadas em mapas auto-
organizáveis (redes SOM) (Kohonen, 2007) pertencem à
uma classe de Redes Neurais chamadas Redes Neurais
Competitivas, na qual os neurônios competem entre si
para serem ativados. Assim, a princípio, só acontece a
ativação de um neurônio.
Em um mapa auto-organizável, os neurônios são
dispostos em forma de uma grade normalmente uni ou
bidimensional. Apesar de outras dimensões serem
possíveis, elas não são comuns. Os neurônios são então
atualizados de maneira seletiva de acordo com o valores
de entrada que constituem o processo competitivo de
aprendizagem. Assim, cria-se um mapa a partir de
valores de entrada onde a posição espacial de cada
36
neurônio guarda propriedades estatísticas dos dados de
entrada.
São três os processos básicos do Algoritmo do
SOM, o competitivo, onde é definido o neurônio
vencedor baseando em cálculos de distância Euclidiana,
o adaptativo, onde é feita a devida atualização nos
neurônios de acordo com um parâmetro, e o processo
cooperativo, que determina a influência do neurônio
vencedor em sua vizinhança.
Figura 4. Estrutura de uma rede SOM bi-
dimensional.
37
III.2–Redes SOM para resolução do PCV Pode ser desenvolvida uma topologia
unidimensional para redes SOM que é apresentada como
a seguir.
Figura 5. Estrutura de uma rede SOM
unidimensional.
Quando o algoritmo SOM é usado, os neurônios
são mantidos de acordo com uma estrutura adotada.
Quando os neurônios são atraídos pelas cidades, pode ser
percebido que a configuração final dos neurônios será um
mapa topológico conectando todas as cidades. Contudo,
como a solução do PCV é o menor caminho que percorra
todas as cidades e retorne ao ponto inicial, pode ser
observado que a solução unidimensional não é a mais
38
apropriada para o problema. Isso acontece por que essa
estrutura não garante que a última cidade visitada é o
ponto de partida.
Para resolver esta restrição, é necessário adotar
uma estrutura em forma de anel (Vieira, 2003), o que
garante que começando de qualquer ponto, o ponto final
após todas as cidades tendo sido visitadas será o ponto de
partida.
Figura 6. Estrutura de uma rede SOM toroidal.
Esta nova estrutura faz com que o vencedor possa
influenciar homogeneamente seus vizinhos. A
implementação desta modificação pode ser feita a partir
de um vetor onde ficam os valores dos neurônios em
39
cada posição. Assim, a função de vizinhança pode ser
feita a partir das posições deste vetor.
III.3-Algoritmo
III.3.1 – Inicialização da Rede O modo como o método será inicializado tem
grande influência nos resultados do algoritmo, como o
tempo de convergência para uma solução.
Para efeitos de estudos de geração de diversidade
nas redes SOM, como serão explicadas mais adiante,
foram estudados modos diferentes de inicialização da
rede.
A primeira maneira foi uma inicialização dos
neurônios em posições aleatórias do espaço. A
desvantagem deste método foi que os neurônios estavam
inicialmente embaralhados, o que faz com que haja um
maior tempo de processamento gasto no processo de
atingir uma configuração topológica que assegure a
vizinhança entre os neurônios.
40
Outro método implementado foi a inicialização
dos neurônios em volta do centro do mapa definido pela
média das coordenadas das cidades. Era esperado que
assim se resultasse em uma distribuição mais homogênea
dos neurônios no mapa, porém esta abordagem também
resultou em um alto custo computacional devido à
desorganização dos neurônios em seu estado inicial.
Para redução dos efeitos colaterais mencionados,
a simples abordagem adotada foi a da inicialização dos
neurônios em um retângulo envolvendo todas as cidades.
A partir das cidades, são determinados os limites do
mapa e os neurônios são dispostos homogeneamente
como um quadro retangular em volta das cidades. Então
o retângulo funciona como um anel que converge para as
cidades à medida que o processo de aprendizagem
acontece, mantendo a vizinhança dos neurônios e
resultando em uma convergência mais rápida.
III.3.2 – Competição Neste processo, é definido um neurônio vencedor
em relação a uma dada cidade. Esse neurônio vencedor
será o que tem a menor distância Euclidiana até esta
41
cidade, como sugere a equação (1). Para este neurônio, o
algoritmo segue à fase de cooperação e adaptação.
Depois, uma nova cidade é selecionada e o algoritmo
volta à fase de competição.
(1)
As cidades são escolhidas de forma aleatória, o
que dá o caráter não-determinístico do algoritmo.
III.3.3 – Cooperação Antes do processo de adaptação se inicializar, é
necessário estabelecer o parâmetro que definirá quão
ajudados serão os vizinhos dos neurônios vencedor. A
função de vizinhança é responsável por determinar isto e
é normalmente definida por uma função gaussiana com
uma variável de variância.
42
Figura 7. Função de vizinhança.
Como a variância decai com o tempo, a função
gaussiana vai sendo multiplicada por valores cada vez
menores, reduzindo a influência do neurônio vencedor
nos outros. Contudo, todos os neurônios são atualizados
mesmo quando a influência do neurônio vencedor é
muito baixa.
Desta maneira, uma atualização seletiva é
implementada de modo em que temos um ponto de corte
para a função de vizinhança onde apenas vizinhos até
este ponto de corte são atualizados. Assim, com o passar
do tempo, o número de neurônios até o ponto de corte
decresce, o que leva a um menor tempo de
processamento.
43
III.3.4 – Adaptação O algoritmo SOM tem 2 parâmetros de
adaptação, a taxa de aprendizado αn e a função de
vizinhança σn, onde uma função gaussiana é adotada. Foi
convencionada (Haykin, 1998) uma evolução
exponencial destes parâmetros como a das equações (2) e
(3) para que seja atingida uma convergência mais
rapidamente.
(2)
(3)
Onde n=0,1,2..., representa o número de iterações
e τ1 e τ2 são constantes de tempo exponenciais. Contudo,
estas equações são heurísticas e outros métodos podem
ser adotados. Deve ser lembrado que os parâmetros de
adaptação são fundamentais para a convergência do
algoritmo.
44
Em experimentos existentes de aplicação de redes
SOM para soluções de PCV (Vieira et al., 2003), foram
identificadas as equações (4) e (5) de adaptação de
parâmetros que levaram a uma convergência mais rápida.
Isto é muito importante, pois o objetivo deste trabalho é
conciliar um sub-ótimo de uma problema de PCV com
um tempo de processamento mínimo.
(4)
(5)
A equação (4) determina a evolução da taxa de
aprendizado, que neste caso não precisa de um valor
inicial, já que depende apenas do número de iterações.
45
Figura 8. Relação entre a taxa de aprendizado e o
número de iterações.
Já a equação (5) determina a evolução da função
de vizinhança. Este parâmetro requer uma inicialização
adequada, já que o seu valor em uma dada iteração
depende de seu valor na iteração passada.
46
Figura 9. Relação entre a função de vizinhança e o
número de iterações.
Uma sugestão da literatura é que todos os
neurônios sofram influência do neurônio vencedor nas
primeira iterações. Já que a inicialização do método dos
neurônios consiste de um quadro retangular envolvendo
todas as cidades, outros experimentos (Vieira et al.,
2003) também demonstraram que a inicialização do
parâmetro σ deve promover ao menos uma influência do
neurônio vencedor em ¼ dos outros neurônios. Uma
47
formulação inicial desta maneira demandaria um σ inicial
de acordo com a equação (6):
(6)
onde l é o número de neurônios e c é uma
constante (sendo c=8 o valor adotado). Assim, pode ser
visto que a inicialização da variância é diretamente
relacionada ao número de neurônios de entrada.
III.4–Exemplo de execução A Figura (10) apresenta a representação de
estados de execução de uma rede auto-organizável para a
resolução de um PCV de 70 cidades pertencente à
biblioteca TSPLib. Os pontos representam as cidades e o
laço representa o estado dos neurônios. Na Figura (10) se
percebe a situação dos neurônios nas iterações 0, 5, 10,
15, 20 e 25, respectivamente.
48
Figura 10. Aplicação de redes SOM (25 iterações) a
um PCV de 70 cidades.
CAPÍTULO IV – METAHEURÍSTICAS GRASP E BUSCA TABU
IV.1-GRASP O GRASP (Greedy Randomized Adaptive Search
Procedure), é um algoritmo comumente usado para
problemas de otimização combinatória. Podendo ser
usado de várias maneiras, no GRASP se tem a construção
de uma solução inicial e esta é refinada a partir de uma
busca local (Feo & Resende, 1995).
Em outros métodos, temos simplesmente o foco
na busca local, para que se possa encontrar soluções
melhores a medida que percorremos o espaço de busca.
Já no GRASP, é privilegiada a construção de uma
solução inicial já boa para que depois se faça o uso de
uma busca local apenas para o refinamento desta solução
no âmbito de pequenas melhorias.
Para se usar o método GRASP, é preciso uma
solução inicial aleatória que já atenda a todas as
50
restrições do problema. No caso do PCV, isto seria uma
rota qualquer no conjunto de cidades que mesmo sendo
uma solução boa já atendesse às restrições que definem o
PCV. Pode-se partir de uma solução vazia e se fazer
inserções nesta solução até que se tenha uma solução
viável para o problema. Nesta fase, é fundamental que se
trabalhe o caráter não-determinístico do problema.
Para a construção de uma solução inicial, se
utiliza algum método semi-guloso, que gere uma solução
relativamente boa, tendo em vista a função que pretende-
se otimizar, porém não totalmente guloso de modo a
tornar o método determinístico. Neste trabalho, para a
fase de construção de uma solução inicial viável para o
problema, serão usadas redes SOM, do modo como estão
apresentadas no capítulo III.
A partir desta solução inicial, a solução é então
refinada a partir de um método de busca local, que neste
trabalho será a busca Tabu. Na implementação desta
abordagem, é importante que se leve em consideração
quão determinística é a solução inicial e quais parâmetros
levam a melhores resultados após o processo de busca
local.
51
Isso acontece porque, em determinados casos,
podem se desenvolver soluções boas, no processo de
construção de solução inicial, que levam sempre para um
conjunto restrito de ótimos locais e não encontram assim
soluções novas que poderiam ser melhores do que as
antigas à medida que as iterações do GRASP vão
ocorrendo e o espaço de busca vai sendo percorrido. O
contrário também pode ocorrer, quando se deixa o
processo de construção de solução inicial muito aleatório,
o que incentiva a criação de soluções de baixa qualidade
que não chegam a se tornar soluções boas ou melhores
que seriam sem o GRASP após o processo de
refinamento.
Pode se fazer variações do método com funções
de probabilidade para a escolha de uma melhor solução
inicial ou mesmo para a adaptação dos parâmetros.
Vários autores aplicaram o modelo do GRASP para
diferentes problemas de otimização desde que o modelo
foi descrito por Feo e Resende em 1989 (Festa &
Resende, 2002). O Pseudo-código (1) ilustra o
funcionamento do método:
52
Enquanto uma condição de parada não for
atingida faça: solução = criar_solução_inicial(); solução = busca_local(solução); se solução é a melhor todas as soluções já conhecidas gravar(solução); Fim se
Fim Enquanto
Pseudo-código 1. GRASP.
Neste trabalho, o método que cria uma solução
inicial será baseado em redes neurais e o método que faz
a busca local será uma busca Tabu, como a que é
apresentada logo a seguir.
IV.2–Busca Tabu A busca Tabu (Fred Glover, 1997) é um método
pertencente às técnicas de busca local, sendo que
estruturas de memória são usadas para aprimorar a
qualidade das soluções encontradas. Quando certa
solução é testada, esta é marcada como tabu e não é
53
examinada novamente. Assim, mais soluções do espaço
de busca são examinadas.
O nome do método vem das listas tabu, que são as
listas com as soluções não permitidas. Na forma mais
básica do problema, estas listas são basicamente
formadas pelos últimos elementos visitados. De acordo
com problemas específicos, as listas podem conter mais
soluções proibidas devido a restrições do problema que
resultariam em movimentos ilegais em certos contextos.
A busca Tabu usa inicialmente um método de
busca local, que leva até um ótimo local. O método de
busca local implementado foi o método FI (First
Improvement). Nesta abordagem, tem-se uma solução
inicial de uma dada qualidade que ocupa inicialmente o
lugar da melhor solução atual. A partir disto, são
estudados todos os vizinhos possíveis desta solução. Se
ao percorrer as soluções vizinhas ocorre alguma solução
de maior qualidade do que a melhor solução atual, esta
solução vizinha ocupa o lugar da melhor solução atual e
o processo é iniciado novamente. Caso contrário, se não é
encontrada melhor solução do que a atual, esta é
declarada um ótimo local e o processo finaliza.
54
Este é um método para refinamento simples e
relativamente eficiente para alguns casos. Este método,
porém, pára sempre em um ótimo local e não tem uma
grande preocupação em fugir deste ótimo.
Para a representação do problema neste método
de descida, matrizes nx2 foram usadas para a
representação das rotas, sendo n o número de cidades e
em cada linha se representando as coordenadas x e y que
definem a posição de uma cidade no espaço Euclidiano.
Cada solução com n cidades tem (n*(n-1))/2 possíveis
soluções vizinhas, se estudarmos as soluções que são
geradas pela troca de duas cidades de posição na rota
inicial. Quando todos os vizinhos são piores do que a
solução atual, a declaramos como um ótimo local.
55
Figura 11. Representação de dois mínimos locais.
Grande parte dos métodos de busca local
terminam ao encontrar um ótimo local. Para explorar
melhor o espaço de busca com regiões que não seriam
exploradas por um método convencional FI, a busca
Tabu modifica a estrutura de vizinhança de acordo com
estruturas de memória. Isso faz com que uma solução
pior do que a atual seja permitida, desde que esteja
pesquisando por uma área do espaço de busca ainda não
explorada.
Para guardar a soluções que seriam uma volta a
uma solução já visitada, é criada uma lista Tabu, que
56
define movimentos que são proibidos pois retornam a
alguma condição anterior. Inicialmente, para casos mais
simples, uma busca Tabu poderia ser apenas todas as
últimas soluções visitadas e a cada nova iteração
ocorreria uma comparação com todas as soluções já
visitadas para que se evitasse o retorno a uma solução já
visitada. O problema com este tipo de abordagem é o alto
custo computacional para comparar todas as soluções
Tabu com a solução atual e o gasto de memória que isso
poderia ter para instâncias maiores, o que poderia fazer o
processo não valer a pena.
Uma solução para este problema é criar uma lista
de movimentos Tabu, sendo que soluções que precisam
de um movimento Tabu para serem atingidas são
consideradas também soluções Tabu pois possivelmente
é uma solução que já foi visitada. Contudo, isso levanta
um novo problema: quando apenas um atributo é
marcado como Tabu, um conjunto de soluções (dentro
dele a solução que já foi visitada) é marcado como Tabu.
Algumas destas soluções que são evitadas poderiam ser
de excelente qualidade e podem não serem visitadas. Para
reduzir este problema, é criado um critério que faz com
57
que soluções Tabu sejam aceitas em determinados casos.
Um critério normalmente usado é que uma solução pode
ser aceita se melhorar a melhor solução até então
conhecida.
Um problema que pode ser usado para mostrar a
funcionalidade da busca Tabu é justamente o PCV. Uma
busca Tabu pode ser usada para encontrar soluções muito
satisfatórias para um PCV, ainda mais quando se está
partindo de uma solução inicial de qualidade, como as
que serão geradas neste trabalho através de redes SOM e
refinadas por uma busca local. Novamente na busca Tabu
usa-se a troca entre duas cidades para a procura de
cidades vizinhas e a distância para percorrer toda a rota
para determinar a qualidade das soluções. Novas
soluções vão sendo criadas até que um critério de parada
seja atingido, como por exemplo o número de iterações, e
a rota de maior qualidade conhecida é retornada.
Desta maneira descrita, pode-se descrever a busca
Tabu como no Pseudo-código (2):
58
S = S0; //solução atual = solução inicial
S* = S; //melhor solução já vista = solução atual
listaTabu = {}; //lista inicialmente vazia Enquanto (critério de parada não for satisfeito) S’ = Melhor_solução_não_tabu_entre_os_vizinhos_de_(S); Se custo(S’) < custo(S*) então S* = S’ Senão Se custo(S’)>custo(S) então listaTabu = listaTabu U {S}; Fim Se Fim Se S = S’; Fim Enquanto Fim BuscaTabu
Pseudo-código 2. Busca Tabu.
IV.2–GRASP reativo O GRASP reativo (Feo & Resende, 1995), é uma
modificação do GRASP convencional, no qual o
parâmetro de aleatoriedade utilizado na fase de
construção é auto-ajustado de acordo com as soluções
previamente encontradas. Este é um método que tem
59
várias possibilidades de partida para a fase construtiva,
etapa inicial de cada iteração.
Um diferente parâmetro de aleatoriedade pode ser
usado na fase construtiva de cada iteração. Inicialmente,
todos os parâmetros têm a mesma probabilidade de serem
escolhidos. A qualidade das soluções encontradas com
cada parâmetro é guardada e de tempos em tempos as
probabilidades de um parâmetro ser usado são
atualizadas de acordo.
Pode-se descrever o GRASP reativo como no
Pseudo-código (3):
60
GRASP Reativo fmin = valor maior que qualquer solução
possível do algoritmo; iter = 1; A = {a1,a2,a3…av}; Para k = 1 até v faça count = [k] = 0; score[k] = 0; p[k] =
1/v; fim do Para Enquanto não (Condição de parada) faça Selecione a[k] com probabilidade de
escolha p[k] s1 = Fase_construtiva(a[k]); s2 = Busca_local(s1); Se (f(s2) < fmin) então s = s2; fmin = f(s2); fim do Se count[k] = count[k] + 1; score[k] = score[k] + f(s2); Se (iter mod (frequência de atualização)
= 0) então avg[k] = score[k]/count[k] para
todo k possível Q[k] = (fmin/avg[k]) para todo k
possível sigma = somatório de todos os
elementos de Q p[k] = Q[k]/sigma para todo k
possível; fim do Se fim do Enquanto retorne s;
Fim GRASP Reativo Pseudo-código 3. GRASP Reativo.
CAPÍTULO V – RESULTADOS
V.1–PCV Inicialmente, foram feitos testes com a biblioteca
TSPLib, que fornece PCVs para que exista critério de
comparação entre os diferentes métodos que solucionam
o problema.
Para as resoluções dos problemas que são
apresentadas a seguir, sendo n o número de cidades de
cada instância, foram usados os seguintes parâmetros:
Taxa de aprendizado inicial da rede:
Número de neurônios para uma instância de m
cidades:
Variância inicial da função de vizinhança:
62
Variância de escolha do neurônio vencedor: ψ =
[0.2,0.5,0.8]
Uma maior detalhamento sobre a justificativa
destes valores está na seção V.3, onde estão definidos os
métodos usados para geração de uma maior diversidade
nas redes neurais e assim, se percorrer mais o espaço
possível de busca.
Apesar dos estudos para se descobrir os valores
convenientes para os parâmetros, os valores de ψ e n não
reduzem de acordo com o número atual de iterações.
Como os valores convenientes para diferentes instâncias
podem ser diferentes, foram feitos testes de eficiência do
algoritmo usando-se mais de um valor possível para ψ e
n utilizando-se de um GRASP reativo.
Com estes parâmetros, e executando o GRASP
com 100 iterações, foram obtidos os resultados
apresentados na Tabela (1).
63
Tabela 1 – Erro médio dos resultados obtidos
Fase Construtiva Instância erro (%) std (%) min (%) bier127 16,68 7,98 5,72 eil51 8,69 3,94 3,45 eil76 12,49 5,62 4,12 kroA200 23,12 15,54 5,75 lin105 15,21 9,96 2,34 pcb442 39,64 33,61 19,33 pr107 9,33 6,60 1,00 pr136 16,67 7,87 5,89 pr152 15,536 9,65 4,06 rat195 25,60 14,49 11,36 rd100 14,31 7,58 3,09 st70 10,03 5,69 1,95 Busca Local GRASP Instância erro (%) std (%) min (%) tempo(m) bier127 8,08 2,80 3,29 1,19 eil51 5,37 1,68 2,58 0,06 eil76 6,93 1,54 3,78 0,22 kroA200 7,99 2,74 1,20 4,07 lin105 6,57 4,18 0,02 0,36 pcb442 10,98 3,08 7,16 15,25 pr107 2,63 2,73 0,17 0,35 pr136 5,92 2,16 2,46 0,50 pr152 4,62 2,93 1,00 0,65 rat195 11,63 2,47 7,57 2,16 rd100 6,72 2,94 1,23 0,79 st70 5,00 2,72 1,12 0,29
64
Todas as instâncias testadas pertencem à
biblioteca TSPLib. Nas tabelas deste trabalho, “erro”
indica o erro médio das soluções geradas em cada
iteração, “std” indica o desvio padrão das soluções
geradas pelo método, “min” indica o erro médio da
solução que teve o menor erro médio em todas as 100
iterações e “tempo” é o tempo em minutos gasto para que
ocorra uma iteração. O erro médio mínimo da busca local
é também o resultado do GRASP, já que este foi
executado apenas uma vez para cada instância.
No geral, o erro médio após a busca local foi de
6,87% e após o GRASP foi de 2,63%.
V.2-PRV
O maior benefício que se pode obter na utilização
de redes SOM para soluções de PRV é a divisão da rota
em pétalas, já que redes SOM com menos neurônios que
cidades podem classificar estas cidades em grupos de
acordo com suas características, neste caso, a posição no
plano Euclidiano.
65
Foram também feitos experimentos com 50
execuções de GRASP para as mesmas instâncias,
dividindo as cidades em 3 e 5 pétalas e analisando as
rotas geradas. As redes SOM têm a tarefa de dividir as
cidades em pétalas e criar um depósito central, onde
todas as pétalas se encontram. A Tabela (2) e Tabela (3)
mostram o erro médio das soluções geradas com pétalas
em relação às soluções de apenas uma pétala.
66
Tabela 2 – Erro médio dos resultados obtidos
com 3 pétalas
Fase Construtiva Instância erro (%) std (%) min (%) bier127 15,84 4,99 7,88 eil51 15,96 4,86 9,84 eil76 14,22 3,75 9,20 kroA200 19,42 7,60 8,96 lin105 19,64 5,73 11,49 pcb442 25,87 10,73 16,56 pr107 23,64 10,15 10,78 pr136 19,57 4,35 13,34 pr152 23,55 11,32 11,55 rat195 19,53 5,67 12,46 rd100 19,31 5,09 10,45 st70 19,05 6,05 9,71 Busca Local GRASP Instância erro (%) std (%) min (%) tempo(m) bier127 13,57 4,54 6,36 0,27 eil51 14,17 4,36 9,47 0,05 eil76 12,41 2,97 8,44 0,09 kroA200 13,45 3,45 8,34 0,60 lin105 17,13 4,72 10,69 0,19 pcb442 14,34 2,12 10,41 4,15 pr107 21,16 9,74 9,97 0,26 pr136 16,07 3,28 10,90 0,35 pr152 20,43 10,17 9,14 0,41 rat195 14,57 2,09 10,92 0,46 rd100 15,87 4,25 8,80 0,15 st70 17,13 5,69 8,67 0,11
67
Tabela 3 – Erro médio dos resultados obtidos com 5
pétalas
Fase Construtiva Instância erro (%) std (%) min (%) bier127 21,45 4,95 17,22 eil51 24,85 5,07 17,39 eil76 22,65 3,71 17,91 kroA200 23,97 4,49 17,07 lin105 29,43 7,49 18,18 pcb442 22,93 6,96 15,42 pr107 31,33 13,01 19,39 pr136 25,33 6,15 15,87 pr152 32,21 12,47 18,15 rat195 22,49 3,93 16,28 rd100 26,39 5,13 20,66 st70 28,18 5,88 22,44 Busca Local GRASP Instância erro (%) std (%) min (%) tempo(m) bier127 18,88 4,30 15,53 0,12 eil51 23,13 4,42 16,07 0,05 eil76 20,79 3,82 16,60 0,08 kroA200 21,29 3,48 16,59 0,45 lin105 28,02 7,37 16,04 0,15 pcb442 16,96 2,25 13,72 1,90 pr107 29,38 11,98 16,48 0,19 pr136 23,07 5,24 15,17 0,14 pr152 30,19 11,91 16,59 0,18 rat195 19,79 3,23 15,65 0,35 rd100 24,52 4,67 19,56 0,10 st70 26,05 5,12 20,90 0,06
Claramente, as soluções geradas têm um erro
médio maior que as soluções de apenas uma pétala. Isso
68
se justifica pelo fato de haver uma cidade a mais para
cada pétala e pela condição de que as pétalas serão bem
divididas, o que elimina a possibilidade de um veículo
fazer a rota ótima enquanto os outros ficam parados.
No geral, o erro médio após a busca local foi de
15,85% para o problema de 3 pétalas e de 25,93% para o
problema de 5 pétalas. Já o erro médio das soluções
encontradas após 50 iterações de GRASP foi de 9,34%
para o problema de 3 pétalas e de 16,57% para o
problema de 5 pétalas.
V.3–Geração de diversidade Em estudo prévio sobre a aplicação de redes
SOM a PCVs (Vieira et al., 2003), foram feitos estudos
sobre valores para os parâmetros que seriam
convenientes para que houvesse a geração de soluções de
maior qualidade.
Para se aplicar o método GRASP a qualquer
problema, é importante que se tenha soluções não só de
qualidade mas também de diversidade na fase
69
construtiva. Isso faz com que o espaço de busca seja mais
bem percorrido e aumenta a possibilidade de se achar
melhores soluções mesmo que as soluções iniciais que
serão refinadas sejam normalmente piores do que seriam
com outros parâmetros que não valorizam a diversidade.
Assim, é clara a necessidade de se definir novos
parâmetros para o funcionamento do método que
valorizem a diversidade das soluções geradas e não só a
qualidade inicial das soluções que saem da fase
construtiva.
Para avaliar a capacidade de diversidade das
soluções geradas pelas redes SOM, os principais
parâmetros do algoritmo foram estudados (Batista et al.,
2009) para que se tivesse maior diversidade na média das
soluções geradas . Para o estudo foi utilizada uma
instância aleatória de 30 cidades e os parâmetros foram
variados a cada 100 iterações do GRASP.
Durante os testes foi observada uma relevante
independência dos parâmetros, que tiveram
comportamento muito semelhante com pequeno desvio
padrão mesmo com a variação dos outros parâmetros.
70
Foi convencionada (Haykin, 1998) uma evolução
exponencial destes parâmetros como a das equações (7),
(8) e (9) para que seja atingida uma convergência mais
rapidamente. As equações (7) e (8) representam
respectivamente como as taxas de aprendizado e número
de neurônios influenciados pelo neurônio vencedor
mudam de acordo as iterações. Nestas equações t
representa a quantidade de iterações já realizadas. A
equação (9) representa que existirão n neurônios para m
cidades e a equação (10) faz com que o neurônio
vencedor passe sua condição de vencedor para outro
neurônio, como será explicado mais adiante.
(7)
(8)
(9)
(10)
As constantes usadas foram ,
e .
71
V.3.1 – Pela taxa de aprendizado
A taxa de aprendizado inicial foi variada no
intervalo de 0,5 a 2,0 e pelos experimentos foi possível
observar que o mapa de Kohonen foi capaz de gerar
soluções para a faixa de valores de 1,0 a 1,5 e teve um
custo computacional bem semelhante para os diferentes
valores, como o esperado.
Figura 12. Custo médio das soluções para diferentes
valores da taxa de aprendizado.
72
Figura 13. Tempo médio consumido para diferentes
valores da taxa de aprendizado.
V.3.2 – Pelo número de neurônios em relação às cidades O número de neurônios empregados em relação
ao número de cidades pode também mudar a qualidade e
diversidade das soluções geradas. Para um conjunto de m
cidades e n neurônios, foram feitos testes para determinar
qual fator de proporcionalidade β levaria a melhores
resultados para um dado número de cidades sendo n =
βm.
Este parâmetro em questão foi avaliado entre os
valores 1 e 2:
73
Figura 14. Distribuição das soluções geradas pela rede
SOM variando-se o número de neurônios.
Figura 15. Custo médio das soluções para diferentes
valores de proporção de neurônios.
74
Figura 16. Tempo médio consumido para diferentes
valores de proporção de neurônios.
De acordo com os histogramas e as curvas de
custo médio das soluções, é observado que o parâmetro
tem uma influência no grau de diversidade das soluções
geradas. Para menores valores de β, se observa melhores
soluções após a busca local apesar de piores soluções na
fase construtiva, o que é o foco deste trabalho.
Considerando-se também que com um menor número de
neurônios o tempo médio gasto para se obter as soluções
é menor, para se obter soluções com certa diversidade em
um tempo aceitável, sugere-se uma valor de β entre 1,2 e
1,6.
75
V.3.3 – Pelo número de neurônios influenciados pelo neurônio vencedor Para que na primeira iteração das redes SOM,
cerca de 25 a 100% dos neurônios sejam influenciados
pelo neurônio vencedor, o valor de deverá variar entre
0,05n e 0,30n.
Figura 17. Distribuição das soluções geradas pela rede
SOM variando-se o número de neurônios
influenciados pelo vencedor.
76
Figura 18. Custo médio das soluções para diferentes
números de neurônios influenciados pelo vencedor.
Figura 19. Tempo médio consumido para diferentes
valores de neurônios influenciados pelo vencedor.
77
Como se pode observar no histograma e no custo
médio das soluções para diferentes números de neurônios
influenciados pelo neurônio vencedor, é obtida maior
diversidade nas soluções geradas para valores menores de
neurônios influenciados. Porém, neste caso, o custo
computacional aumenta a medida que o número de
neurônios influenciados decresce. Assim, para uma
melhor relação entre tempo/diversidade, sugere-se
valores entre 0,08n e 0,15n neste trabalho.
V.3.4 – Pela escolha do neurônio vencedor No processo simples de competição das redes
SOM, o neurônio que tem a menor distância Euclidiana
em relação à cidade em questão é declarado o neurônio
vencedor. Assim o neurônio vencedor seria sempre o que
atendesse a condição .
Contudo, já que os neurônios neste caso
específico são organizados de forma toroidal, foi feita a
proposta de que o neurônio vencedor passasse a sua
condição para um de seus vizinhos. Isso criaria mais
diversidade nas soluções geradas sem comprometer
muito a qualidade das soluções geradas.
78
Depois de se definir o neurônio mais próximo da
cidade em questão, calcula-se que vai
definir a probabilidade de que o neurônio vencedor
passar o troféu. Assim, pode-se definir o número de
neurônios que têm chance de pegar o troféu pela equação
que vai sempre retornar um
número inteiro. Após algumas iterações, o valor de k
sempre será 1, como está representado na Figura (20).
Figura 20. Número de neurônios disputando o troféu
(k) em relação ao tempo (t).
79
Do modo como estão organizadas as equações,
podemos variar o valor de ψ entre 0 e 1, onde um valor
próximo de 0 indica uma construção mais gulosa (onde
sempre um neurônio apenas tem o troféu) e um valor
próximo de 1 indica uma construção mais aleatória, com
uma maior disputa pelo troféu. Fazendo o histograma dos
dois extremos de ψ em relação à qualidade das soluções
apos a fase de construção, tem-se os seguintes resultados
representados na Figura (21).
Figura 21. Qualidade das soluções geradas por redes
SOM com diferentes valores de ψ .
De acordo com o histograma da Figura (21),
percebe-se que para soluções gulosas em relação ao
neurônio vencedor, tem-se uma maior qualidade nas
soluções geradas. Porém, após um refinamento feito por
80
uma busca FI no mesmo conjunto de soluções, temos o
histograma representado na Figura (22).
Figura 22. Qualidade das soluções geradas pelo
GRASP com diferentes valores de ψ .
Pela Figura (22), percebe-se que mesmo após um
refinamento temos um conjunto de soluções de uma
média de qualidade mais alta com ψ = 0.0. Porém, o
conjunto que contém a solução de melhor qualidade está
no grupo que usou ψ = 1.0, pois a aleatoriedade
possibilitou que o GRASP percorresse melhor o espaço
de busca das soluções. Um estudo do comportamento do
algoritmo para diferentes valores de ψ está representado
na Figura (23).
81
Figura 23. Qualidade das soluções para diferentes
valores de ψ .
Na Figura (23), estão representados tanto o erro
médio (pelos quadrados, com valores mais altos) das
soluções após as duas fases do GRASP quanto o erro
médio da melhor das soluções após as diferentes fases do
GRASP (pelas riscas, com valores mais baixos). Na fase
construtiva, o erro médio das soluções geradas e da
melhor solução são maiores para condições mais
aleatórias de teste, ou seja, maiores valores de ψ.
82
Já após a busca local, mesmo com o erro médio
das soluções crescendo à medida que se aumenta o valor
de ψ, o erro médio da melhor das soluções é menor para
valores maiores de ψ, devido à possibilidade dada ao
GRASP de percorrer melhor o espaço de busca.
Assim, maiores valores de aleatoriedade podem
gerar piores resultados para as Redes Neurais,
isoladamente, porém melhores resultados para o GRASP.
Além disso, é importante destacar que valores
extremos de aleatoriedade também podem atrapalhar o
desempenho do GRASP, como está claro da Figura (23).
Assim, a partir dos experimentos e resultados
apresentados, sugere-se um valor de ψ = 0.8, evitando-se
também desta maneira valores extremos de aleatoriedade.
CAPÍTULO VI – CONCLUSÕES E TRABALHOS FUTUROS
Este trabalho propõe a utilização de um
procedimento de busca adaptativa aleatória gulosa com
construções baseadas em redes SOM e refinamento com
Busca FI e Tabu para o problema do Caixeiro Viajante.
Os resultados finais têm um erro relativamente
baixo (menos de 2%) em relação às soluções ótimas
conhecidas do TSPLIB e é absolutamente aplicável do
ponto de vista prático visto o pequeno tempo de
processamento que o método exige.
Assim, pode se evidenciar a competência do
método proposto e sua aplicabilidade para problemas
práticos. Assim, considera-se o presente trabalho
proposto apropriado para a aplicação em problemas
combinatórios que se relacionem com o Problema do
Caixeiro Viajante.
84
Para trabalhos futuros, sugere-se a utilização de
instâncias maiores do TSPLib, que permitisse uma
melhor análise da eficiência do algoritmo proposto.
Considerar outros parâmetros para o GRASP
reativo (Resende e Ribeiro, 2002) também seria uma boa
opção para o algoritmo. Ao contrário de testes
previamente feitos para definir os parâmetros mais
convenientes para a convergência do algoritmo, poderia
ser criada uma política de atualização dos parâmetros que
poderia ser controlada pelo próprio GRASP à medida que
o algoritmo estivesse em execução. Depois os parâmetros
que não tivessem uma boa aceitação poderiam ser
retirados, restando os que têm melhor desempenho.
Poderia ser considerado um GRASP com Path
Relinking. Esta é uma estratégia que pondera entre a
qualidade e a diversidade. A ideia do Path Relinking foi
primeiramente proposta por Glover (1997). Nesta
abordagem, são explorados caminhos que conectam
soluções de alta qualidade encontradas. Com este método
é evitada a repetição de soluções muito parecidas.
85
Quanto à aplicação do mesmo algoritmo para
PRV, seria fundamental o estudo de políticas de
penalização das cidades em relação a suas demandas.
Isso faria com que as demandas já fossem consideradas
na fase construtiva do GRASP e que o processo de
refinamento partisse de uma solução viável em relação a
estas demandas. Isso levaria o algoritmo a uma
aplicabilidade maior do que a atual. Uma das maneiras na
qual isso poderia ser feito é criando um novo mapa das
cidades e distanciando as cidades com maior demanda do
centro do mapa.
A Busca Local de Lin-Kernighan (1973) também
poderia ser usada antes da busca Tabu, o que resolveria
alguns atributos do problema que a busca Tabu não
consegue resolver tão bem ou demora muito para
resolver. A técnica se baseia em trocar pares de sub-rotas
para encontrar novas rotas. É uma generalização do
método k-opt, onde k caminhos são trocados para fazer
uma nova rota. O método de Lin-Kernighan é adaptativo,
assim a cada passo o valor mais conveniente para k é
definido novamente. A aplicação do método poderia
86
levar a soluções melhores em um menor tempo
computacional.
Outra aplicação prática de PRVs é quando se tem
vários depósitos com diferentes capacidades. Para se
implementar esta ideia, deveria haver um modo muito
diferente de avaliação das soluções.
87
REFERÊNCIAS BIBLIOGRÁFICAS
Adams, J., Balas, E.; Zawack, D. (1988) The shifting bottleneck procedure for job shop scheduling. Management Science, 34:57–73.
Applegate, D. L.; Bixby, R. E; Chvátal, V.; Cook, W. J.; Helsgaun K. (2004) “Sweden Home”, disponível em < http://www.tsp.gatech.edu/sweden/ >. Acesso em: 05 nov. 2009
Applegate, D. L.; Bixby, R. E.; Chvátal, V.; Cook, W. J. (2007). The Traveling Salesman Problem: A Computational Study. Princeton University Press. ISBN 978-0691129938.
Banzhaf, W.; Nordin, P.; Keller, R.; Francone, F. (1998) Genetic Programming - An Introduction, Morgan Kaufmann, San Francisco, CA.
Batista, L. S.; Freitas, A. R. R. de; Guimarães, F. G.; Ramirez, J. A. (2009) Resolvendo o Problema do Caixeiro Viajante via Procedimento de Busca Adaptativa Gulosa com Construção Baseada em Redes Neurais Auto-Organizáveis, IX Congresso Brasileiro de Redes Neurais e Inteligência Computacional, Ouro Preto, Minas Gerais.
Bellman, R. (1962), "Dynamic Programming Treatment of the Travelling Salesman Problem", J. Assoc. Comput. Mach. 9: 61–63, doi:10.1145/321105.321111
Dantzig, G. B.; Fulkerson, and S. M. Johnson, R. (1954), "Solution of a large-scale traveling salesman problem", Operations Research 2: 393–410.
Dantzig, G. B.; Ramser, R.H. (1959) “The Truck Dispaching Problem”, Management Science. 6. 80.
88
Dantzig, G. B. (1959) Linear programming and extensions. Princeton University Press.
De Boer, P-T., Kroese, D.P, Mannor, S. and Rubinstein, R.Y. (2005). A Tutorial on the Cross-Entropy Method. Annals of Operations Research, 134 (1), 19--67.
Dorigo M. (1992). Optimization, Learning and Natural Algorithms, PhD thesis, Politecnico di Milano, Italy
Feo, T.A. Feo; Resende, M.G.C. (1989) A probabilistic heuristic for a computationally difficult set covering problem. Operations Research Letters, 8:67–71.
Feo, T.A.; Resende, M.G.C. (1995) Greedy randomized adaptive search procedures, Journal of Global Optimization, 6:109-133.
P. Festa and M.G.C. Resende (2002) GRASP: An annotated bibliography. In C.C. Ribeiro and P. Hansen, editors, Essays and Surveys on Metaheuristics, pp. 325–367, Kluwer Academic Publishers.
Glover, F.; Laguna, M. (1997) Tabu Search. Kluwer, Norwell, MA.
Grötschel, M. (1980) On the symmetric travelling salesman problem: Solution of a 120-city problem., Mathematical. Programming. Studies 12, 61-77
Grötschel, M.; Holland, O. (1991) Solution of Large Scale Symmetric Travelling Salesman Problems., Mathematical Programming, n. 51, p. 141-202
Gutin, G.; Yeo, A.; Zverovich, A. (2002), "Traveling salesman should not be greedy: domination analysis of greedy-type heuristics for the TSP", Discrete Applied Mathematics 117 (1–3): 81–86, doi:10.1016/S0166-218X(01)00195-0
Hankins, Thomas L. (1980) Sir William Rowan Hamilton. The Johns Hopkins University Press. ISBN 978-0801822032
89
Haykin, S. (1998) "Neural Networks: A Comprehensive Foundation", 2nd Edition, Prantice Hall.
Kahng, A. B.; Reda, S. (2004) "Match Twice and Stitch: A New TSP Tour Construction Heuristic," Operations Research Letters, 32(6). pp. 499-509.
Kirkpatrick, S.; Gelatt C. D.; Vecchi M. P. (1983) "Optimization by Simulated Annealing". Science. New Series 220 (4598): 671-680. ISSN 00368075. Retrieved 2009-01-16. Kohonen, T.; Honkela, T. (2007). "Kohonen network". Scholarpedia.
Lawler E. L.; Lenstra J. K.; Rinnooy Kan A. H. G.; Shmoys D. B., editors (1985) The Traveling Salesman Problem. Wiley, New York.
Lin, S.; Kernighan, B. W. (1973) "An Effective Heuristic Algorithm for the Traveling-Salesman Problem". Operations Research 21: 498-516.
Kemeny, J. G.; Hazleton, M., Snell, J. L., Gerald, L. T. (1959). Finite Mathematical Structures (1st ed.). Englewood Cliffs, N.J.: Prentice-Hall, Inc.. Library of Congress Card Catalog Number 59-12841. Classical text. cf Chapter 6 Finite Markov Chains pp.384ff.
Oliveira, H. C. B. (2007) Um Modelo Híbrido Estocrático para Tratamento do Problema de Roteamento de Veículos com Janela de Tempo. Dissertação de Mestrado. Centro de Informática. Universidade Federal de Pernambuco.
Padberg, M. W.; Rinaldi, G. (1987) Optimization of a 532-city symmetric travelling salesman problem, Oper. Res. Letters v .6, 1-7
Padberg, M. W.; Rinaldi, G. A (1991) Branch-and-cut Algorithm for the Resolution of Large Scale Symmetric Traveling Salesman Problem, SIAM Review, n. 33, p. 60-100
Reinelt, G. (1991) “TSPLIB”, Universität Heidelberg. Disponível em: < http://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/ >. Acesso em: 04 nov. 2009
90
Psaraftis, H.N. (1988). "Dynamic vehicle routing problems". Vehicle Routing: Methods and Studies 16: 223–248.
Rosenkrantz, D. J.; Stearns, R. E.; Lewis, P. M., II (1977), "An Analysis of Several Heuristics for the Traveling Salesman Problem", SIAM Journal on Computing 6 (5): 563–581, doi:10.1137/0206041
Schrijver, A. (2005) "On the history of combinatorial optimization”. Handbook of Discrete Optimization (K. Aardal, G.L. Nemhauser, R. Weismantel, eds.), Elsevier, Amsterdam, 1-68
Vieira, F.C.; Neto, A.D.D.; Costa, J.A.F. (2003) An efficient approach to the travelling salesman problem using self-organizing maps, Internacional Journal of Neural Systems, v. 13 n. 2 59-66