Escolar Documentos
Profissional Documentos
Cultura Documentos
Introduo
O problema do caixeiro viajante consiste em achar uma rota com distncia
mnima. O ponto de partida deve ser uma entre vrias cidades, cada cidade envolvida
no problema deve ser visitada exatamente uma vez e ao fim do problema o caixeiro
deve voltar a cidade inicial. A generalizao deste problema consiste em achar um
caminho de custo mnimo sobre as arestas de um grafo contendo n nodos, tal que o
caminho visite cada um dos nodos uma vez. Este um problema de otimizao
computacional, sendo intensivamente estudado e possui muitas aplicaes.
Ele bastante semelhante ao problema de achar rotas, j que trabalha com
viagens entre cidades adjacentes. A diferena que cada estado do problema do
caixeiro viajante possui um conjunto de cidades, que deve estar na posio em que
foram visitadas. Durante a execuo do algoritmo que resolva este problema,
esperado que este conjunto seja reordenado, at que satisfaa sua condio de
parada, que idealmente seria o caminho mnimo.
Metodologia
O Simulated Annealing, algoritmo que escolhemos na nossa implementao, foi
proposto em 1982 e publicado no ano seguinte por seus criadores, os pesquisadores
da IBM S. Kirkpatrick, C.D. Gelatt e M.P. Vecchi. Este algoritmo foi baseado em um
processo usado na metalurgia, chamado de recozimento. Esta uma estratgia na qual
podemos nos aproximar de um estado timo controlando a temperatura. Ela consiste
em aquecer um material, assim fornecendo uma alta taxa de energia a ele. A
temperatura ento deve ser gradualmente abaixada, o que levar o material a um
estado cristalizado slido. Este estado e estvel e possui o mnimo de energia. Se este
decremento de temperatura for muito rpido, podem ser causadas deformidades no
material. A imagem a seguir ilustra este processo, a esquerda temos a transformao
A ideia de usar esta tcnica para lidar com problemas de otimizao resultou no
Simulated Annealing. Aqui introduzimos um parmetro de controle da otimizao, o
qual faria o papel de temperatura. A "temperatura" usada em nosso algoritmo deve
ter o mesmo efeito da temperatura do meio fsico. Ela deve condicionar os estados
acessveis e nos guiar para o estado timo. Se ela puder ser reduzida de maneira
vagarosa o suficiente, o algoritmo achar o mximo global com probabilidade prxima
de 1. Este algoritmo funciona como descrito abaixo. Iniciamos o problema com uma
temperatura T e uma soluo inicial para o problema. A cada iterao do seu loop, um
movimento aleatrio escolhido. Caso o movimento conduza a um resultado melhor,
ele aceito. Caso contrrio o movimento aceito com uma certa probabilidade. Esta
probabilidade cai de acordo com dois fatores. O primeiro deles a piora que este
movimento causa. Quanto maior a diferena entre o estado atual e o novo, menos
provvel _e a aceitao do movimento. O segundo fator a temperatura. H uma
chance maior de que movimentos ruins sejam aceitos no incio, quando a temperatura
est alta.
A funo que usamos para diminuir a temperatura. Para a funo que diminui a
temperatura, escolhemos a distribuio geomtrica para que fosse feito o decremento
dela, ou seja, a cada passo a temperatura multiplicada por uma constante menor que
1. H um consenso na literatura de que este valor depende do problema, e portanto
deve ser definido por experimentao. A escolha da temperatura inicial est
relacionada com a condio e-E/T usada, sendo chamada Funo de Gibbs-Boltzmann.
Resultados
Cidades da Alemanha
Foram realizados testes do Problema do Caixeiro Viajante envolvendo 29
cidades. Sua disposio est colocada abaixo:
Cidades aleatrias
Aqui apresentado um estudo de um grupo de 25 cidades fictcias dispostas
aleatoriamente, com os clculos feitos pelo mesmo algoritmo, a fim de verificar sua
eficcia. Foram feitos testes para que nenhuma cidade tivesse coordenadas iguais a de
outra cidade j existente. As disposio das cidades e os parmetros/resultados esto
dispostos a seguir:
Concluses
Embora no se tenha obtido a soluo tima em todos os testes realizados, os
resultados obtidos indicam que o algoritmo utilizado sempre apresenta boas
aproximaes.
Dado tratar-se de um algoritmo no determinstico, a soluo tima no pode
ser garantida, pois variaes nos parmetros resultam em variaes no tempo de
execuo e, consequentemente, no resultado final. Porm, o algoritmo baseado no
mtodo Simulated Annealing mostrou-se computacionalmente vivel e passvel de ser
empregado em situaes reais, devido sua eficincia e tempo de processamento.
Acredita-se que o algoritmo implementado possa ser aplicado a outros problemas,
desde que os mesmos admitam solues candidatas construdas passo a passo e uma
funo de clculo do custo ou aptido da soluo.
Referencias Bibliogrficas
[1] Junior, A. C. S. F., Costa, G. B. H., Costa, L. L., Kepe, T. R. - Simulated Annealing
aplicado no problema do Caixeiro Viajante, Universidade Federal do Paran, 2010.
[2] Mole, V.L. D., Martins, J. G., Junior, J. M. - Caixeiro Viajante Uma Abordagem
Baseada no Algoritmo Simulated Annealing, 2004.
[3] http://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/
MTODOS COMPUTACIONAIS II
Caixeiro Viajante