Académique Documents
Professionnel Documents
Culture Documents
Abstract: Our main objective in this paper is to prove that the travelling salesman is
a NP-complete problem. We will show that it belongs to the NP class and that there is a
known NP-complete problem that can be reduced to the TSP in polynomial time. Based
on that, we will then conclude that the TSP is NP-complete.
Resumo: O objetivo deste trabalho mostrar que o problema do caixeiro viajante
NP-completo. Mostraremos que ele pertence classe NP e que existe um problema
conhecido como sendo NP-completo que possa ser reduzido ao problema do caixeiro
viajante em tempo polinomial. Com isso, chegaremos a concluso de que o problema
do caixeiro viajante NP-completo.
1. Introduo
O problema do caixeiro viajante ou Travelling Salesman Problem (TSP) um dos mais
clssicos problemas de complexidades. Seja um vendedor que deve visitar n cidades e ele deseja
fazer uma viagem visitando cada cidade apenas uma vez e voltar para cidade de origem usando o
caminho mais curto possvel. O fato de se querer encontrar o custo mnimo caracteriza o TSP
como um problema de otimizao. Na figura 1 se v um exemplo de uma configurao com 5
cidades representadas por vrtices e um custo c(i, j) para viajar da cidade i at a cidade j. O custo
mnimo = 15 e caminho 2-3-5-4-1-2
2. Caixeiro
11.
Se i <> |v| ento
12.
Distancia = Distancia + G[v[i]],v[i+1]];
13.
Seno
14.
Distancia = Distancia + G[v[i]] [v[1]]; // adiciona com o vertice de origem.
15.
Fim Se;
16. Fim Para;
17. Para i=1 at n Faa
18.
Se visitados [i] <> 1 // verifica se todos os vrtices foram visitados apenas uma vez.
19.
return false;
20.
Fim Se
21. Fim Para;
22. Se Distancia <= k ento // verifica se a soma
23.
return true;
24. Seno
25.
return false;
26. Fim Se
27. Fim
2.1. Clculo da complexidade
Cp [verificao] = Cp [4...5] + Cp [6...7] + Cp [9...15] + Cp [17...21] + Cp [22...27]
=
1+1+somatorio_de_i=1_ate_n
1+somatorio_de_i=1_ate_v
1+somatorio_de_i=1_ate_ n 1+1+1
= 2 + n+ v + n+ 2
= 2n + v + 4
= O (n)
Exemplo de execuo do algoritmo para uma matriz de entrada G. Essa entrada produz a
sada true.
= somatorio_de_i=1_ate_n (somatorio_de_j=1_ate_n ( 1 )) + 1
= n + 1
= O (n)
Abaixo temos um exemplo de um grafo G e de G (formado com o algoritmo dado
acima):
4. Concluso
5. Bibliografia
CORMEN, Thomas H.; LEISERSON, Charles E.; RIVEST, Ronald L.; STEIN, Clifford.
Algoritmos: teoria e prtica. Traduo da 2 edio (americana). Rio de Janeiro:
Elsevier: Editora Campus, 2002
Falando de TI.O problema do caixeiro viajante. Disponvel em:
<http://www.zanuz.com/2007/09/o-problema-do-caixeiro-viajante.html>. Acessado em
20/11/2012
Travelling Salesman Problem. Disponvel em: <http://www.shannarasite.org/kb/kbse56.html>,
Acessado em 20/11/2012.
WIKIPEDIA. Caminho hamiltoniano. Disponvel em:
<http://pt.wikipedia.org/wiki/Caminho_hamiltoniano>. Acessado em
20/11/2012
WIKIPEDIA. Travelling Salesman Problem. Disponvel em
<http://en.wikipedia.org/wiki/Travelling_salesman_problem>. Acessado em
20/11/2012