resolvendo o problema do caixeiro viajante via ... · do caixeiro viajante (pcv) através de um...

90
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

Upload: phungbao

Post on 13-Dec-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 2: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 3: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 4: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 5: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 6: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 7: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

Í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  

Page 8: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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  

Page 9: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 10: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 11: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 12: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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,

Page 13: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 14: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 15: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 16: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 17: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 18: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 19: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 20: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 21: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 22: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 23: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 24: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 25: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 26: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 27: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 28: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 29: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 30: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 31: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 32: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 33: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 34: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 35: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 36: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 37: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 38: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 39: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 40: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 41: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 42: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 43: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 44: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 45: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 46: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 47: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 48: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

48

Figura 10. Aplicação de redes SOM (25 iterações) a

um PCV de 70 cidades.

Page 49: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 50: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 51: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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:

Page 52: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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 é

Page 53: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 54: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 55: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 56: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 57: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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):

Page 58: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 59: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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):

Page 60: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 61: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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:

Page 62: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 63: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 64: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 65: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 66: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 67: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 68: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 69: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 70: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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 .

Page 71: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 72: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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:

Page 73: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 74: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 75: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 76: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 77: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 78: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 79: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 80: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 81: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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 ψ.

Page 82: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 83: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 84: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 85: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 86: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 87: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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.

Page 88: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 89: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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

Page 90: RESOLVENDO O PROBLEMA DO CAIXEIRO VIAJANTE VIA ... · do Caixeiro Viajante (PCV) através de um procedimento de busca adaptativa gulosa (GRASP) que usa redes neurais baseadas em mapas

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