• Nenhum resultado encontrado

UNIVERSIDADE FEDERAL DE OURO PRETO DEPARTAMENTO DE COMPUTAÇÃO

N/A
N/A
Protected

Academic year: 2021

Share "UNIVERSIDADE FEDERAL DE OURO PRETO DEPARTAMENTO DE COMPUTAÇÃO"

Copied!
90
0
0

Texto

(1)

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

(2)

Dedico este trabalho a meus pais, que tanto contribuíram para minha formação.

(3)

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.

(4)

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

(5)

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

(6)

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

(7)

Í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  

(8)

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  

(9)

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.

(21)

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.

(35)

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.

(49)

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

(61)

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:

(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 ,

(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

(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).

Referências

Documentos relacionados

da quem praticasse tais assaltos às igrejas e mosteiros ou outros bens da Igreja, 29 medida que foi igualmente ineficaz, como decorre das deliberações tomadas por D. João I, quan-

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Além das espécies selvagens, existem também algumas variedades de tomate da espécie Solanum lycopersicum que podem ser utilizadas como fontes de resistência a algumas pragas, entre

Janaína Oliveira, que esteve presente em Ouagadougou nas últimas três edições do FESPACO (2011, 2013, 2015) e participou de todos os fóruns de debate promovidos

A presente dissertação é desenvolvida no âmbito do Mestrado Profissional em Gestão e Avaliação da Educação (PPGP) do Centro de Políticas Públicas e Avaliação

Dessa forma, diante das questões apontadas no segundo capítulo, com os entraves enfrentados pela Gerência de Pós-compra da UFJF, como a falta de aplicação de

Como essa corrente de defeito envolve obrigatóriamente a terra e o ponto neutro do sistema, realizou-se um estudo detalhado dos diversos tipos de aterramento

Foram analisados a relação peso-comprimento e o fator de condição de Brycon opalinus, em três rios do Parque Estadual da Serra do Mar-Núcleo Santa Virgínia, Estado de São