Você está na página 1de 9

o do problema do caixeiro viajante An alise e Implementac a utilizando os algoritmos de busca

1 Britta Rulander , C elia Cristina Bojarczuk Fioravanti1 , Wellton Costa de Oliveira1

Universidade Tecnol ogica Federal do paran a (UTFPR) o de engenharia el programa de p os-graduac a etrica e inform atica industrial (cpgei) Curitiba, pr Brazil
britta.ruelander@web.de, {celiacristina, wcoliveira}@utfpr.edu.br

Abstract. Several techniques for the Traveling Salesman Problem are constantly being researched to obtain approximate solutions, and efcient. In this paper two algorithms search are implemented, genetic algorithms and local search sheaf, and analyzed the use of A * to solve this problem. The results illustrate that XXXXXXXXXXXX showed the best accuracy rate. Resumo. O Problema do Caixeiro Viajante e tema de pesquisa devido a sua complexidade. V arias t ecnicas s ao constantemente pesquisadas para obter soluc o ao implementados dois es aproximadas, mas ecientes. Neste trabalho s algoritmos de busca, algoritmos gen eticos e feixe de busca local, e analisado o uso de A* para a resoluc a o deste problema. Os resultados obtidos mostraram que o caixeiro viajante com o algoritmo de Busca em Feixe Local retornou que o caixeiro andaria 291 km no menor caminho e utilizando algoritmos gen eticos, para a populac a o de tamanho de 1500, o melhor resultado obtido foi com o valor de 0,010 na mutac a o e 0,85 de crossover foi com o percurso de 369, obtido na gerac a o 17.

o 1. Introduc a
` sua complexiOs problemas da classe NP-completo t em sido um grande desao devido a dade: geralmente fatorial ou exponencial. Para um n umero consider avel de exemplos n ao existe recurso computacional para resolv e-los em tempo h abil. Segundo Helsgaun (2000), o o tima sem o uso da forc n ao h a como achar a soluc a a bruta, ou algum algoritmo exato, de complexa programac o, com c que normalmente e a odigos da ordem de 10.000 Linhas o. Diante disso, e comum utilizar heur e exagerado tempo de execuc a sticas para obter o aproximada e consequentemente, mais r ltimos anos, tem-se obuma soluc a apida. Nos u o de t servado tamb em a utilizac a ecnicas de Intelig encia Articial (IA) como algoritmos gen eticos e redes neurais para resolver problemas desse tipo [Calado and Ladeira 2011]. o problema do Um problema antigo e sabidamente conhecido como NP-dif cil e caixeiro viajante (PCV). O PCV consiste em achar o menor caminho, dado um conjunto n ` cidade inicial. A soluc o consiste de cidades, visitando todas elas uma vez, e retornando a a o. Para um grande n numa sequ encia de cidades, na ordem de visitac a umero de cidades e invi avel avaliar todas as possibilidades, pois o n umero de tentativas cresce exponencialmente. Sendo assim, torna-se essencial utilizar m etodos heur sticos que amenizem essa o combinat explorac a oria.

es poss Esse problema, por ser combinatorial, tem (n-1)!/2 soluc o veis para um importante escolher uma boa conjunto de n n os [Helsgaun 2000], e que por isso e o vi heur stica para obter uma soluc a avel: baixo custo computacional e, se poss vel, tima. Ainda de acordo com o autor, o maior mapa com soluc o o tima pr oxima da o a de 7.397 cidades, sendo que, a soluc o o tima conseguida com algoritmos conhecida e a exatos foi obtida por uma rede de computadores com entre tr es a quatro anos de processamento. Al em disso, o autor destaca que o algoritmo heur stico proposto no seu estudo o o tima em sete das dez tentativas com uma m encontrou uma soluc a edia de 3,6 horas [Calado and Ladeira 2011]. Al em dos algoritmos heur sticos, outras t ecnicas da IA podem ser aplicadas neste problema, sendo uma delas os algoritmos gen eticos, que s ao ecientes pela grande di es testadas e pela converg es versidade de soluc o encia atrav es do cruzamento das soluc o o natural) e, por sua vez, s mais promissoras (baseado na selec a ao usados pela capacidade de gerar v arios caminhos aleat orios e convergir para os caminhos mais curtos atrav es de o e recombinac o. O seu desempenho depende do operador de recombinac o usado. selec a a a o 1.1. Contextualizac a o para Dado um conjunto de cidades e o custo da viagem entre cada par delas, a soluc a o problema do caixeiro viajante (PCV), ou TSP (do ingl es traveling salesman problem) busca encontrar a forma de visitar todas as cidades e retornar ao ponto de partida, minimizando o custo da viagem. Na vers ao padr ao, os custos de viagem s ao sim etricos no sentido de que viajando de cidade X para a cidade Y custa tanto quanto viajar de Y um problema de otimizac o NP-Dif para X. O PCV e a cil inspirado na necessidade dos vendedores em realizar entregas em diversos locais (cidades) percorrendo o menor caminho poss vel, reduzindo o tempo necess ario para a viagem e os poss veis custos com transporte e combust vel. 1.2. Objetivos 1.2.1. Objetivo Geral comparar m O objetivo geral deste trabalho e etodos inteligentes para resolver o problema do caixeiro viajante, implementando os algoritmos de busca em feixe local e algoritmo gen etico e analisando o uso de A* para o problema do caixeiro viajante.

1.2.2. Objetivos Espec cos Ser ao necess arios realizar experimentos e analisar os resultados obtidos, denindo uma o entre as duas t m etrica de comparac a ecnicas, avaliando vantagens e desvantagens de cada uma delas. Na an alise do uso do A* para este problema, vericar o modelamento, qual o o tamanho do espac o de estados, a heur stica utilizada e a viabilidade do mesmo em func a o e utilizac o de mem do tempo de execuc a a oria.

o Te 2. Fundamentac a orica
2.1. problema do caixeiro viajante O PCV pode ser denido como o problema de encontrar o roteiro de menor dist ancia ou custo que passa por um conjunto de cidades, sendo cada cidade visitada exatamente uma vez [da Cunha et al. 2002]. chamado sim O PCV e etrico quando a dist ancia entre dois n os (ou cidades) quais , quando dij = dji; caso contr quer i e j independe do sentido, isto e ario o problema e denominado assim etrico. Segundo Helsgaun (2000), problemas sim etricos s ao, em geral, mais dif ceis de serem resolvidos que problemas assim etricos. o para o PCV podem ser classicados em exatos e Os m etodos de soluc a o heur sticos. Os m etodos exatos geralmente se baseiam em procedimentos de enumerac a rvore, conhecidos como branch-and-bound (B&B), para os quais t impl cita em a em sido es limitadoras, tendo-se em vista a complexidade combinat propostas diferentes func o oria deste problemas [da Cunha et al. 2002]. o M etodos heur sticos comp oem o principal foco de interesse para a resoluc a o que muitas vezes se apoiam em do PCV. Heur sticas s ao procedimentos de soluc a uma abordagem intuitiva, na qual a estrutura particular do problema possa ser consi o de uma soluc o adequada derada e explorada de forma inteligente, para a obtenc a a [da Cunha et al. 2002]. Assim, na maioria dos casos as heur sticas propostas tendem a ser bastante espec cas e particulares para um determinado problema, carecendo de ro , n es para problemas com caracter bustez; isto e ao conseguem produzir boas soluc o sticas, es pouco diferentes daquelas para as quais foram desenvolvicondicionantes ou restric o das. Os procedimentos heur sticos para o PCV podem ser divididos em dois grupos: o de roteiros e m m etodos de construc a etodos de melhorias de roteiros. Alguns autores consideram ainda um terceiro grupo, o dos m etodos compostos, em que heur sticas de o de melhorias de roteiros s construc a ao utilizadas de forma conjunta [Helsgaun 2000]. 2.2. Busca em Feixe Local rea de busca local e e um algoritmo Busca em Feixe (Beam Search) est a dentro da a baseado em caminhos [Russell and Norvig 2009]. O algoritmo de T empera Simulada [Russell and Norvig 2009] usa um n o (estado) aleat orio na mem oria, e isso est a diretamente relacionado ao problema de falta de mem oria. A busca em feixe, diferente do outro que s o mant em um n o, mant em o controle de k estados gerados aleatoriamente o in cio, e de acordo com o andamento do algoritmo, s ao gerados todos os sucessores de todo os k estados e caso qualquer um desses seja o objetivo (goal), o algoritmo p ara, sen ao, haver a o dos k melhores sucessores a partir da lista completa e repetir uma selec a a o processo. No geral, a busca em feixe local tem a miss ao de se focar nos n os mais promissores, limitando-se a um n umero k de expans ao, gerando assim sucessores com o objetivo de se chegar ao melhor resultado [Russell and Norvig 2009] 2.3. A* O algoritmo A* faz parte da busca informada. Ele foi criado para unir os melhores carac timo e ter sticas das buscas Greedy e busca com custo uniforme com o objetivo de ser o

o do custo do n completo [Russell and Norvig 2009]. A* gera a func a o inicial at e o n o n. A heur stica: o custo estimado do n o inicial ao estado objetivo. A otimalidade do algoritmo A* depende da heur stica ou, em outros termos, a heur stica tem que ser admiss vel menor do que o custo real ao objetivo) e consistente (n (custo estimado e ao-decrescente). Na base desses valores, A* expande os n os seguindo a sequ encia dos valores, o tima e completa, se o espac comec ando com o menor valor. A* e o de estados for exponencial em termos do comprimento da soluc o. A nito. A complexidade temporial e a major como o algoritmo guarda todos os n complexidade espacial ainda e os na mem oria. 2.4. Algoritmos Gen eticos o natural para resolver os Os algoritmos gen eticos s ao baseados no princ pio da selec a o de indiv uma poss problemas. Utiliza-se uma populac a duos, onde cada indiv duo e vel o para o problema em quest soluc a ao [Calado and Ladeira 2011]. Para o problema do caixeiro viajante, cada indiv duo pode ser uma sequ encia que o e cruzamento representa a ordem em que as cidades s ao visitadas. Atrav es de selec a o, indiv entre os indiv duos da populac a duos melhores s ao obtidos, gradativamente. o de avaliac o, e existem Os indiv duos s ao classicados de acordo com uma func a a o e cruzamento desses indiv o de v arias t ecnicas para selec a duos. Para o PCV, a func a o soma a dist considerado avaliac a ancia entre cada cidade do indiv duo. Um indiv duo e menor. A estrutura geral de um algoritmo melhor que outro quando a sua dist ancia total e mostrada a seguir. gen etico e

Figura 1. Estrutura Basica do Algoritmo Genetico

o 2.4.1. Selec a o, que e chamada de gerac o, s A cada iterac a a ao selecionados os melhores indiv duos. Esse processo de identicar os melhores indiv duos para serem perpetuados para a o e chamado de selec o. Dentre as estrat o dispon pr oxima gerac a a egias de selec a veis, o por torneio, que consiste em escolher dois pais no presente trabalho foi usada a selec a o atual e selecionar o que possui melhor func o de avaliac o aleatoriamente da populac a a a o. Os indiv o s para car para a pr oxima gerac a duos de menor avaliac a ao considerados o passa para a perdedores e, portanto s ao descartados. Desta forma, parte da populac a o e os melhores indiv pr oxima gerac a duos t em mais chance de sobreviver.

2.4.2. Cruzamento o atrav O algoritmo gen etico melhora sua populac a es do cruzamento. O cruzamento con o atual e gerar um novo indiv siste em escolher dois indiv duos da populac a duo (chamado de lho) baseado nos genes dos pais. O PCV tem uma caracter stica peculiar para o cru a permutac o. Um indiv zamento, que e a duo n ao pode conter cidades repetidas, portanto o cruzamento deve manter o controle de quais cidades j a foram colocadas no caminho do o. indiv duo para que n ao haja repetic a a escolha da Outra caracter stica importante do operador de cruzamento e sequ encia de montagem da cadeia de genes do lho. E desej avel que as cidades adjacentes presentes no lho sejam adjacentes tamb em nos pais, ou seja, que o indiv duo seja gerado com as arestas dos pais, reetindo a qualidade da estrutura dos mesmos. o 2.4.3. Mutac a o e respons es gen O operador de mutac a avel por provocar alterac o eticas nos indiv duos o. com o intuito principal de diversicar a populac a

3. Metodologia
3.1. Modelagem do Sistema Para o desenvolvimento dos experimentos propostos neste trabalho, o algoritmo gen etico foi desenvolvido no Visual Studio e o busca em feixe foi desenvolvido no terminal do es feitas na linguagem C++. GNU/Linux com compilador GCC, ambas implementac o Dado um conjunto C = c1 , ..., cn onde n cidades ci e uma matriz de dist ancias (ij ), onde (ij ) = p(ci , cj )(i, j 1, ..., n, ij = ji , ii = 0), a a tarefa passa por o Sn = s : 1, ..., n 1, ..., n, que minimize a func o de custo encontrar a permutac a a (dist ancia da rota) dada por: f ( ) =
n1 i=1

(i), (i + 1) + (n), (1)

A Figura 2 mostra a matriz de dist ancias utilizada neste trabalho, juntamente com o grafo gerado por esta matriz. 3.2. Caixeiro Viajante com Busca em Feixe o do algoritmo de busca em feixe, Para desenvolver algorimto, foi necess aria a modicac a pois trata-se de um problema do mundo real TSP (ou problema do caixeiro viajante), ou seja, um n o alvo espec co n ao existe inicialmente. A heuristica escolhida foi de expandir os sete n os de menor dist ancia com o n o o n pai, ou seja, os sete n os mais pomissores, sendo que o n o pai e o atual. Para isso, e o mais promissor (menor caminho) antes obrigat oria a visita de dois n os e escolher qual e de chegar ao alvo. Em outras palavras, o algoritmo primeiro escolhe os sete caminhos mais curtos (ou seja, as sete cidades vizinhas mais pr oximas); Dentre as sete escolhidas em cada rodada, escolhe-se a mais pr oxima de cada uma; Soma-se o caminho de de uma cidade at e a mais pr oxima dela e a mais pr oxima desta escolhida; Seleciona-se a soma de menor dist ancia

Figura 2. Valores utilizados na modelagem do sistema. Em formato de tabela e em formato de grafo

e percorre-se as duas cidades que pertencem a essa soma de menor dist ancia e por m, o o volta o algoritmo do comec lac o de repetic a o at e acabarem as cidades (de 15 at e 0). 3.3. Caixeiro Viajante com Algoritmos Gen eticos o foi gerada, formando indiv Inicialmente uma populac a duos com cidades escolhidas o at aleatoriamente e adicionando na lista da populac a e que o tamanho m aximo (pr e o, cruestabelecido) seja atingido. Inicia-se ent ao o ciclo, repetindo as fases de selec a o. Repete-se todo o processo at zamento e mutac a e o n umero de ciclos pr e-estabelecido. o No m etodo do cruzamento usam-se dois indiv duos pais, realiza-se a operac a o e repetida at de cruzamento e retornam-se dois indiv duos lhos. Esta operac a e que a o tenha atingido o seu tamanho m populac a aximo. o e aplicada, escolhendo-se aleatoriamente inAp os o cruzamento, a mutac a o, o que gera novos indiv ` div duos e aplicando a mutac a duos que s ao adicionados a o. Os piores ser o. A mutac o e aplicada em populac a ao removidos na pr oxima selec a a o. um percentual da populac a o e apresentado o resultado do melhor caminho, bem como a Para cada gerac a o. dist ancia obtida por aquela soluc a

o do A* para resolver o problema do caixeiro viajante 4. Utilizac a


Conforme j a foi comentado anteriormente, o problema do caixeiro viajante, sua modela considerada um ponto inicial que ao mesmo tempo gem contou com quinze cidades e e o ponto objetivo depois de ter percorrido todas as outras cidades. Nesse ponto inicial e todos as cidades que poderiam ser percorridas no segundo passo s ao conhecidas e com expandir os n elas o custo para chegar nelas. A ideia desse algoritmo e os onde chegar a com o custo menor. No nosso sentido isso signica que o caxeiro viajante sempre viaja na cidade mais pr oxima das todas cidades que ele ainda tem que visitar. O espac o de estados contem as quinze cidades que o caxeiro viajante quer visitar. A heur stica aqui seria exatamente a ideia de sempre viajar para a cidade mais perto ou quer dizer com o caminho mais barato. Se as estamativas para os caminhos foram boas, o algoritmo vira timo. o

O algoritmo A* guarda todos os n os na mem oria at e chegar no objetivo. Num problema com quinze cidades j a existem muitos n os guardados na mem oria. O tempo da o do algoritmo A* cresce exponencial com o num execuc a ero dos n os. Particularmente adequada para por causa da complexidade do tempo e do espac o esse algoritmo n ao e resolver o problema do caixeiro viajante.

5. Resultados e Discuss ao
O resultado do TSP (Problema do Caixeiro Viajante) usando Busca em Feixe Local, rea o 3.2 (pegar os sete lhos mais promissores lizado em cima da heur stica descrita na sec a de cada pai, fazendo assim a soma da menor dist ancia e percorre as duas cidades que pertencem a esta menor soma e assim repetidamente at e terminar o n umero de cidades). 1a Rodada: 23 km da cidade 0 at e a cidade 12; 2a Rodada: 11 km da cidade 12 at e a cidade 1; 3a Rodada: 21 km da cidade 1 at e a cidade 14; 4a Rodada: 11 km da cidade 14 at e a cidade 8; 5a Rodada: 21 km da cidade 8 at e a cidade 4; 6a Rodada: 23 km da a cidade 4 at e a cidade 6; 7 Rodada: 23 km da cidade 6 at e a cidade 2; 8a Rodada: 21 km e a cidade 13; 10a Rodada: da cidade 2 at e a cidade 11; 9a Rodada: 11 km da cidade 11 at a 23 km da cidade 13 at e a cidade 9; 11 Rodada: 15 km da cidade 9 at e a cidade 7; 12a Rodada: 23 km da cidade 7 at e a cidade 5; 13a Rodada: 15 km da cidade 5 at e a cidade a a 3; 14 Rodada: 21 km da cidade 3 at e a cidade 10; 15 Rodada: 29 km da cidade 10 at ea cidade 0 sempre o mesmo: somando-se os melhores caminhos O resultado adquirido e encontrados, obtem-se a quantidade de quilometros percorridos pelo caxeiro, que no caso da tabela dada, 291 km. Para obter resultados com o algoritmo gen etico, foi necess ario rodar o algoritmo o, o v arias vezes, modicando alguns dos par ametros, sendo eles o n umero da populac a es, a taxa de crossover e a taxa de mutac o. Algumas observac es n umero de gerac o a o o dos par foram adotadas para a modicac a ametros. Como o problema apresentava 15 o cidades para trac ar rotas, foram utilizados os valores de 150, 750 e 1500 para a populac a es a serem criadas pelo algoritmo gen inicial de soluc o etico. Se for considerar o n umero de rotas poss veis de serem criadas, estes valores podem ser considerados baixos, mas o seria muito alto, o que muitas vezes se fossem valores maiores, o tempo de execuc a o das gerac es, que foi acaba tornando-se invi avel o processamento. Para ajudar na criac a o es de crossover e mutac o. adotado os valores de 50 e 100, foram utilizadas as operac o a o t Alterando-se os valores dos par ametros, percebe-se que para cada populac a em o de tamanho de 150, conforme se resultados diferentes. Por exemplo, para a populac a o e 0,85 de a tabela 1, o melhor resultado obtido foi com o valor de 0,005 na mutac a o 32. crossover, tendo-se um percurso de 390, obtido na gerac a o de tamanho de 750, conforme a tabela O melhor resultado obtido para a populac a o e 0,85 de crossover foi com o percurso de 378, obtido 2, com o valor de 0,010 na mutac a o 42. na gerac a o de tamanho de 1500, conforme a tabela 3, o melhor Finalmente, para a populac a o e 0,85 de crossover foi com o resultado obtido foi com o valor de 0,010 na mutac a o 17. percurso de 369, obtido na gerac a Com estes resultados, foi poss vel vericar que o melhor valor de crossover foi

o inicial, tende-se a obter valores melhores 0,85, e que se aumentar o tamanho da populac a o n para o menor percurso entre as 15 cidades, tomando-se o cuidado para a populac a ao se muito grande, evitando-se assim poss veis problemas computacionais no momento de executar o algoritmo.

de tamanho de 150 Figura 3. Melhores resultados para a populac ao

de tamanho de 750 Figura 4. melhores resultados para a populac ao

6. Conclus ao
o de experimentos e an Este trabalho teve como objetivo a realizac a alises de resultados o de heur o do TSP (problema do caixeiro obtidos na implementac a sticas para a resoluc a viajante) utilizando Algoritmos Gen eticos e Busca em Feixe local considerando uma inst ancia de 15 cidades cujas dist ancias s ao denidas na matriz da Figura 2. Para isso

de 1500 Figura 5. melhores resultados para a populac ao

o entre as duas t foi necess ario denir uma m etrica de comparac a ecnicas e avaliar vanta o qualitativa gens e desvantagens de cada uma delas, tal m etrica foi a realizar a comparac a o de mem e quantitativa de desempenho e utilizac a oria. Os resultados obtidos mostraram que o caixeiro viajante com o algoritmo de Busca em Feixe Local retornou que o caixeiro andaria 291 km no menor caminho e utilizando o de tamanho de 1500, o melhor resultado obtido foi algoritmos gen eticos, para a populac a o e 0,85 de crossover foi com o percurso de 369, obtido com o valor de 0,010 na mutac a o 17. na gerac a Comparando os resultados do algoritmos com o algoritmo A*, o tempo da o do algoritmo A* cresce exponencial com o num execuc a ero dos n os e por conta de adequada para resolver o sua complexidade do tempo e do espac o esse algoritmo n ao e problema do caixeiro viajante.

Refer encias
Calado, F. d. M. and Ladeira, A. P. (2011). Problema do caixeiro viajanta: Um estudo comparativo de t ecnicas de intelig encia articial. e-Xacta, 4(1). da Cunha, C. B., de Oliveira Bonasser, U., and Abrah ao, F. T. M. (2002). Experimentos computacionais com heur sticas de melhorias para o problema do caixeiro viajante. In XVI Congresso da Anpet. Helsgaun, K. (2000). An effective implementation of the linkernighan traveling salesman heuristic. European Journal of Operational Research, 126(1):106130. Russell, S. J. and Norvig, P. (2009). Articial intelligence: a modern approach (3rd edition). Prentice Hall.

Você também pode gostar