Escolar Documentos
Profissional Documentos
Cultura Documentos
Resumo:
Problem Solving of the Traveling Salesman With the Att48, Eil51 and
Berlin52 Database Using Simulated Annealing
ABSTRACT – The Problem of the Traveling Salesman (PCV) is a problem of the NP-Difficult
class, well known in the scientific world for modeling numerous real problems of the most
diverse areas. It has high complexity for large instances making the search for a deterministic
solution, in some cases, unfeasible. There are several methods in the literature that seek to
obtain quality solutions for PCV using mainly heuristic and metaheuristic methods, as they
provide good results with acceptable processing time. Simulated Annealing (SA) is a meta-
heuristic for optimization consisting of a probabilistic local search technique based on analogy
with thermodynamics. Numerous works to solve PCV using SA have found good results or even
the optimal global solution. Thus, the objective of this work is to implement an algorithm using
SA to solve the PCV with the database Att48, Eil51 and Berlin52, comparing later the solutions
obtained with the results found in the literature. The results found for the three databases were
satisfactory and close to the optimal global solution, proving the effectiveness of the
methodology proposed in this work.
Introdução
O problema do Caixeiro Viajante (PCV) é um problema de otimização combinatória da
classe NP-Difícil que consiste na busca de um percurso com custo mínimo atravessando todas
as 𝑛 cidades do problema e ao final retornando à cidade na qual deu inicio ao tour (GUEDES,
2005). Tal problema tem aplicabilidade em diversas áreas como indústrias, empresas,
automobilística, transporte de passageiros, roteirização de serviços de reparos ou serviços
públicos, sequenciamento de genoma, logística de navios com limite de calado, etc. Logo, pode-
se ter uma visão dos grandes benefícios que um programa capaz de obter a solução ótima do
PCV pode trazer a sociedade. O PCV pode ser formalizado como dado um conjunto A =
{1,2, ...n} de cidades e uma matriz de custos 𝐶𝑇 (𝑛) = [𝐶𝑖, 𝑗] onde 𝐶𝑖,𝑗 corresponde ao custo
para ir da cidade i para a j, consiste em minimizar a função (POZO, 2008):
∆𝐸
𝑝(∆𝐸 ) = 𝑒 − 𝑇 (2)
Materiais e Métodos
Para a realização dos experimentos, instâncias do PCV da popular biblioteca TSPLIB
foram utilizadas (REINELT, 1991). Esta biblioteca possui mais de 100 exemplos com tamanhos
que variam de 14 a 85.900 cidades. Foram selecionados três problemas da biblioteca para serem
aplicados no software desenvolvido: att48, eil51 e berlin52. O primeiro problema está
relacionado com a distância geográfica das capitais dos Estados Unidos, o segundo com um
conjunto de 51 cidades e o último a distância entre 52 locais dentro de Berlim.
O presente trabalho faz uso de um método heurístico construtivo (HC) para partir de
soluções mais interessantes. O algoritmo gera um vetor com o número de cidades/locais do
problema em análise e seleciona uma das cidades aleatoriamente para ser a primeira. A partir
disso, o método seleciona a próxima cidade com menor distância repete o procedimento até
completar o tour fornecendo ao programa uma solução inicial de melhor qualidade.
O algoritmo foi desenvolvido no software Matlab R2016b versão 9.1.0.441655, que tem
sua linguagem própria, mas com grande semelhança nas regras sintáticas e semânticas da
linguagem C e Java. Os gráficos apresentados no trabalho também foram desenvolvidos neste
software. As simulações foram processadas em um computador com processador Intel® Core™
2 Duo, 3.00 GHz.
Resultados e Discussão
A metodologia proposta foi aplicada aos três problemas, sendo adotados os mesmos
parâmetros para cada simulação realizada. O valor de cada parâmetro foi definido com base em
uma série de simulações efetuadas no programa, ficando 𝐾𝐾 que representa o número máximo
de iterações em 100.000, 𝑁𝐾 que indica a quantidade de tentativas de transição em 10.000, 𝛽
representando o coeficiente de variação de temperatura com 0,90 e 𝛼 indicando o valor do
coeficiente de tentativas de transições com valor de 0,95. 𝛼 modifica, ao final de cada iteração,
o valor de Nk, reduzindo o tempo de processamento.
Os problemas att48, eil51 e belin52 possuem disponíveis na literatura suas melhores
soluções, sendo a solução ótima global com função objetivo de 30524, 426 e 7542,
respectivamente.
Os problemas utilizados no trabalho possuem solução ótima global disponíveis na
literatura, a melhor função objetivo encontrada é de 33524, 426 e 7542 para os problemas att48,
eil51 e berlin52, respectivamente.
O primeiro problema simulado apresenta a posição de 48 capitais dos Estados Unidos,
sua configuração e solução ótima global se encontram na biblioteca TSPLIB, assim como os
demais problemas desse trabalho. A configuração ótima é apresentada na tabela (1):
15-28 30 36 46 33 20 47 21 32 39 48 5 42 24 10
29-43 45 35 4 26 2 29 34 41 16 22 3 23 14 25
43-48 13 11 12 15 40 9
Fonte: O Autor
Fonte: O Autor
15-28 20 47 21 39 32 24 10 45 35 4 26 42 2 29
29-43 5 48 25 14 13 23 11 40 3 34 41 16 22 1
43-48 8 9 38 31 44 18
Fonte: O Autor
Fonte: O Autor
O segundo problema resolvido possui sua configuração ótima global indicada na tabela
(3) com função objetivo de 426. Dentre os três problemas simulados, o eil51 apresentou maior
tempo de processamento com 176,93 segundos.
15-28 50 34 30 9 49 10 39 33 45 15 44 42 40 19
29-43 41 13 25 14 24 43 7 23 48 6 27 51 46 12
43-51 47 18 4 17 37 5 38 11 32
Fonte: O Autor
Os resultados da simulação do problema eil51 são apresentados na figura (4). A melhor
solução obtida pelo algoritmo foi de 444.40, com diferença de 18,40 ou 4,32% acima da solução
ótima. Levando em consideração que o tempo de processamento foi de aproximadamente três
minutos, a solução obtida possui função objetivo aceitável.
Fonte: O Autor
Um segundo teste foi realizado com o problema Eil51 desativando a etapa da heurística
construtiva para verificar se soluções melhores poderiam ser obtidas. A função objetivo da
melhor solução encontrada foi de 443,22 com 164,50 segundos de tempo de processamento
trazendo, portanto, pequenas diferenças na inclusão do método heurístico.
15-28 4 47 12 46 51 1 22 20 35 36 3 28 31 8
29-43 26 7 43 24 23 48 6 27 32 11 2 29 21 50
43-51 16 49 38 5 9 34 30 10 39
Fonte: O Autor
Ordem
Tour
15-28 14 13 47 26 27 28 12 25 4 6 15 5 24 48
29-43 38 37 40 39 36 35 34 44 46 16 29 50 20 23
43-52 30 2 7 42 21 17 3 18 31 22
Fonte: O Autor
A solução ótima global do problema berlin52 é de 7542 e a melhor função objetivo obtida
com o algoritmo desenvolvido é de 7675,80, trazendo uma diferença de 133,8 em relação ao
ótimo global. Trata-se de uma diferença percentual de 1,77%, valor consideravelmente inferior
aos valores obtidos nos problemas anteriores. O tempo de processamento foi de 134,33
segundos. A tabela (6) apresenta a melhor solução obtida com HC
15-28 35 34 44 46 16 29 50 20 23 30 2 7 42 21
29-43 17 3 18 31 22 1 36 39 40 37 38 48 24 5
43-52 15 6 4 25 12 28 27 26 47 13
Fonte: O Autor
Fonte: O Autor
Fonte: O Autor
Conclusão
O programa desenvolvido no matlab com uso do SA apresentou bons resultados. Quando
comparado os resultados encontrados no programa com os disponíveis na literatura, foi possível
observar e averiguar a eficácia do programa construído. Os valores obtidos se aproximam
consideravelmente dos melhores valores encontrados na literatura.
O tempo de processamento também foi um diferencial para o programa. Problemas reais
possuem tempo de tomada de decisão variáveis, mas em sua maioria, períodos maiores que
cinco minutos são fornecidos. Logo, o programa permite obter ótimos resultados dentro desse
intervalo de tempo e, caso o tempo disponível para tomada de decisão seja de algumas horas,
os resultados podem se tornar ainda mais próximos do ótimo global. É importante observar que
o processador utilizado nas simulações foi lançado por volta de 2007. Hoje existem
processadores com velocidade de processamento muito superior reduzindo ainda mais o tempo
de processamento caso a simulação ocorra em um equipamento mais potente.
A heurística construtiva se mostrou pouco eficiente e, para o primeiro problema, trouxe
resultado pior. Logo, conclui-se que o uso da técnica exige uma análise mais extensa sobre o
problema em estudo.
O programa foi desenvolvido com base no problema didático do caixeiro viajante, mas
por este possuir muita semelhança com problemas reais como o de logística de navios com
limite de calado, é possível fazer outras aplicações do programa, sendo necessário acrescentar
algumas variáveis e restrições pertinentes ao problema.
Agradecimentos
Este trabalho foi realizado durante uma bolsa apoiada pela Coordenação de
Aperfeiçoamento de Pessoal de Nível Superior (CAPES).
Referências Bibliográficas
PRESS, Wm. H., B. Flannery, S. Teukolsky, Wm. Vettering, Numerical Recipes, 326-334,
Cambridge University Press, New York, NY, 1986.
VITAL, S. A. M., Moreira, F. B., Lima, R. L., Algoritmos Genéticos: Aplicação e Medição
da Eficiência do Operador de Crossover Ox para o Problema do Caixeiro Viajante
Simétrico. Disponível em: <
https://www.ifg.edu.br/attachments/article/3018/PIICT_2015_Anderson.pdf>. Acesso em 13
de outubro de 2017.