You are on page 1of 6

An alise e Implementac ao do problema do caixeiro viajante

utilizando os algoritmos de busca


Britta R ulander
1
, C elia Cristina Bojarczuk Fioravanti
1
, Wellton Costa de Oliveira
1
1
Universidade Tecnol ogica Federal do paran a (UTFPR)
programa de p os-graduac ao de engenharia el etrica e inform atica industrial
(cpgei) Curitiba, pr Brazil
britta.ruelander@web.de, {celiacristina, wcoliveira}@utfpr.edu.br
Abstract. The Traveling Salesman Problem is research topic due to its com-
plexity. Various techniques are constantly searched for approximate solutions,
but efcient. In this work we implemented two search algorithms, genetic algo-
rithms and local search beam, and analyzed the use of A * to solve this problem.
The results showed that the traveling salesman algorithm with Local Search for
Beam returned that the salesman would walk 291 km in the shortest path and
using genetic algorithms, for the population size of 1500, the best result was ob-
tained with the valor 0,010 in mutation and crossover was 0.85 with route 369,
obtained in the generation 17.
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 oes aproximadas, mas ecientes. Neste trabalho s ao implementados dois
algoritmos de busca, algoritmos gen eticos e feixe de busca local, e analisado o
uso de A* para a resoluc ao 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 ao de tamanho de 1500, o melhor resultado obtido foi com o va-
lor de 0,010 na mutac ao e 0,85 de crossover foi com o percurso de 369, obtido
na gerac ao 17.
1. Introduc ao
Os problemas da classe NP-completo t em sido um grande desao devido ` a sua complexi-
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),
n ao h a como achar a soluc ao otima sem o uso da forca bruta, ou algum algoritmo exato,
que normalmente e de complexa programac ao, com c odigos da ordem de 10.000 Linhas
e exagerado tempo de execuc ao. Diante disso, e comum utilizar heursticas para obter
uma soluc ao aproximada e consequentemente, mais r apida. Nos ultimos anos, tem-se ob-
servado tamb em a utilizac ao de t ecnicas de Intelig encia Articial (IA) como algoritmos
gen eticos e redes neurais para resolver problemas desse tipo [Calado and Ladeira 2011].
Um problema antigo e sabidamente conhecido como NP-difcil e o problema do
caixeiro viajante (PCV). O PCV consiste em achar o menor caminho, dado um conjunto
n de cidades, visitando todas elas uma vez, e retornando ` a cidade inicial.
Al em dos algoritmos heursticos, outras t ecnicas da IA podem ser aplicadas neste
problema, sendo uma delas os algoritmos gen eticos, que s ao ecientes pela grande di-
versidade de soluc oes testadas e pela converg encia atrav es do cruzamento das soluc oes
mais promissoras (baseado na selec ao natural) e, por sua vez, s ao usados pela capacidade
de gerar v arios caminhos aleat orios e convergir para os caminhos mais curtos atrav es de
selec ao e recombinac ao. Oseu desempenho depende do operador de recombinac ao usado.
1.1. Contextualizac ao
Dado um conjunto de cidades e o custo da viagem entre cada par delas, a soluc ao para
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, mi-
nimizando 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
para X. O PCV e um problema de otimizac ao NP-Difcil inspirado na necessidade dos
vendedores em realizar entregas em diversos locais (cidades) percorrendo o menor ca-
minho possvel, reduzindo o tempo necess ario para a viagem e os possveis custos com
transporte e combustvel.
1.2. Objetivos
O objetivo geral deste trabalho e comparar m 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.
2. Fundamentac ao Te 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].
O PCV e chamado sim etrico quando a dist ancia entre dois n os (ou cidades) quais-
quer i e j independe do sentido, isto e, quando dij = dji; caso contr ario o problema e
denominado assim etrico. Segundo Helsgaun (2000), problemas sim etricos s ao, em geral,
mais difceis de serem resolvidos que problemas assim etricos.
A soluc ao consiste numa sequ encia de cidades, na ordem de visitac ao. Para um
grande n 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
heursticos que amenizem essa explorac ao combinat oria.
Esse problema, por ser combinatorial, tem (n-1)!/2 soluc oes possveis para um
conjunto de n n os [Helsgaun 2000], e que por isso e importante escolher uma boa
heurstica para obter uma soluc ao vi avel: baixo custo computacional e, se possvel,
pr oxima da otima. Ainda de acordo com o autor, o maior mapa com soluc ao otima
conhecida e de 7.397 cidades, sendo que, a soluc ao otima conseguida com algoritmos
exatos foi obtida por uma rede de computadores com entre tr es a quatro anos de proces-
samento. Al em disso, o autor destaca que o algoritmo heurstico proposto no seu estudo
encontrou uma soluc ao otima em sete das dez tentativas com uma m edia de 3,6 horas
[Calado and Ladeira 2011].
2.2. Busca em Feixe Local
Busca em Feixe (Beam Search) est a dentro da area de busca local e e um algoritmo
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 direta-
mente 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 incio, 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
uma selec ao dos k melhores sucessores a partir da lista completa e repetir 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-
tersticas das buscas Greedy e busca com custo uniforme com o objetivo de ser otimo e
completo [Russell and Norvig 2009]. A* gera a func ao do custo do n o inicial at e o n o n.
A heurstica: o custo estimado do n o inicial ao estado objetivo. A otimalidade do algo-
ritmo A* depende da heurstica ou, em outros termos, a heurstica tem que ser admissvel
(custo estimado e menor do que o custo real ao objetivo) e consistente (n ao-decrescente).
Na base desses valores, A* expande os n os seguindo a sequ encia dos valores,
comecando com o menor valor. A* e otima e completa, se o espaco de estados for -
nito. A complexidade temporial e exponencial em termos do comprimento da soluc ao. A
complexidade espacial ainda e major como o algoritmo guarda todos os n os na mem oria.
2.4. Algoritmos Gen eticos
Os algoritmos gen eticos s ao baseados no princpio da selec ao natural para resolver os
problemas. Utiliza-se uma populac ao de indivduos, onde cada indivduo e uma possvel
soluc ao para o problema em quest ao (Calado e Ladeira, 2011). Atrav es de selec ao e
cruzamento entre os indivduos da populac ao, indivduos melhores s ao obtidos, grada-
tivamente. Os indivduos s ao classicados de acordo com uma func ao de avaliac ao, e
existem v arias t ecnicas para selec ao e cruzamento desses indivduos. A estrutura geral de
um AG e mostrada a seguir.
Figura 1. Estrutura B asica do Algoritmo Gen etico
A Selec ao identica os melhores indivduos para serem perpetuados para a
pr oxima gerac ao. O cruzamento escolhe dois indivduos da populac ao atual e gerar um
novo indivduo baseado nos genes dos pais. E a mutac ao provoca alterac oes gen eticas nos
indivduos com o intuito principal de diversicar a populac ao.
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
GNU/Linux com compilador GCC, ambas implementac oes feitas na linguagem C++.
Dado um conjunto C = c
1
, ..., c
n
onde n cidades ci e uma matriz de dist ancias
(
ij
), onde (
ij
) = p(c
i
, c
j
)(i, j 1, ..., n,
ij
=
ji
,
ii
= 0), a a tarefa passa por
encontrar a permutac ao S
n
= s : 1, ..., n 1, ..., n, que minimize a func ao de custo
(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.
Figura 2. Valores utilizados na modelagem do sistema. Em formato de tabela e
em formato de grafo
3.2. Caixeiro Viajante com Busca em Feixe
Para desenvolver algorimto, foi necess aria a modicac ao do algoritmo de busca em feixe,
pois trata-se de um problema do mundo real TSP (ou problema do caixeiro viajante), ou
seja, um n o alvo especco n ao existe inicialmente. A heuristica escolhida foi de expandir
os sete n os de menor dist ancia com o n o pai, ou seja, os sete n os mais pomissores, sendo
que o n o pai e o n o atual. Para isso, e obrigat oria a visita de dois n os e escolher qual e o
mais promissor (menor caminho) antes de chegar ao alvo.
Emoutras 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
e percorre-se as duas cidades que pertencem a essa soma de menor dist ancia e por m, o
laco de repetic ao volta o algoritmo do comeco at e acabarem as cidades (de 15 at e 0).
3.3. Caixeiro Viajante com Algoritmos Gen eticos
Inicialmente uma populac ao foi gerada, formando indivduos com cidades escolhidas
aleatoriamente e adicionando na lista da populac ao at e que o tamanho m aximo (pr e-
estabelecido) seja atingido. Inicia-se ent ao o ciclo, repetindo as fases de selec ao, cru-
zamento e mutac ao. Repete-se todo o processo at e o n umero de ciclos pr e-estabelecido.
No m etodo do cruzamento usam-se dois indivduos pais, realiza-se a operac ao
de cruzamento e retornam-se dois indivduos lhos. Esta operac ao e repetida at e que a
populac ao tenha atingido o seu tamanho m aximo.
Ap os o cruzamento, a mutac ao e aplicada, escolhendo-se aleatoriamente in-
divduos e aplicando a mutac ao, o que gera novos indivduos que s ao adicionados ` a
populac ao. Os piores ser ao removidos na pr oxima selec ao. A mutac ao e aplicada em
um percentual da populac ao.
Para cada gerac ao e apresentado o resultado do melhor caminho, bem como a
dist ancia obtida por aquela soluc ao.
4. Utilizac ao do A* para resolver o problema do caixeiro viajante
A heurstica 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 otimo.
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
execuc ao do algoritmo A* cresce exponencial com o num ero dos n os. Particularmente
por causa da complexidade do tempo e do espaco esse algoritmo n ao e adequada para
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-
lizado em cima da heurstica descrita na sec ao 3.2 (pegar os sete lhos mais promissores
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).
O resultado adquirido e sempre o mesmo: somando-se os melhores caminhos
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
v arias vezes, modicando alguns dos par ametros, sendo eles o n umero da populac ao, o
n umero de gerac oes, a taxa de crossover e a taxa de mutac ao. O melhor resultado obtido
foi com o valor de 0,010 na mutac ao e 0,85 de crossover foi com o percurso de 369, obtido
na gerac ao 17, comforme a Figura 3.
6. Conclus ao
Este trabalho teve como objetivo a realizac ao de experimentos e an alises de resultados
obtidos na implementac ao de heursticas para a resoluc ao do TSP (problema do caixeiro
viajante) utilizando Algoritmos Gen eticos e Busca em Feixe local considerando uma
Figura 3. melhores resultados para a populac ao de 1500
inst ancia de 15 cidades cujas dist ancias s ao denidas na matriz da Figura 2. Para isso
foi necess ario denir uma m etrica de comparac ao entre as duas t ecnicas e avaliar vanta-
gens e desvantagens de cada uma delas, tal m etrica foi a realizar a comparac ao qualitativa
e quantitativa de desempenho e utilizac ao de mem oria.
Os resultados obtidos mostraramque o caixeiro viajante como algoritmo de Busca
em Feixe Local retornou que o caixeiro andaria 291 km no menor caminho e utilizando
algoritmos gen eticos, para a populac ao de tamanho de 1500, o melhor resultado obtido foi
com o valor de 0,010 na mutac ao e 0,85 de crossover foi com o percurso de 369, obtido
na gerac ao 17.
Comparando os resultados do algoritmos com o algoritmo A*, o tempo da
execuc ao do algoritmo A* cresce exponencial com o num ero dos n os e por conta de
sua complexidade do tempo e do espaco esse algoritmo n ao e adequada para resolver o
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 heursticas de melhorias para o problema do caixeiro viajante. In
XVI Congresso da Anpet.
Helsgaun, K. (2000). An effective implementation of the linkernighan traveling sales-
man 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.

You might also like