Você está na página 1de 14

PONTIFCIA UNIVERSIDADE CATLICA DE MINAS GERAIS SISTEMAS DE INFORMAO 3 PERODO PROJETO DE ALGORITMOS

O PROBLEMA DO CAIXEIRO VIAJANTE

Allan Gomes e Silva Amanda Alves Ferreira Camila Valadares de Andrade Diego de Souza Neves Letcia Danielle Cruz de Souza Lucas Henrique Lima dos Santos PROF. ANDERSON RIBEIRO DA COSTA

Projeto de Algoritmos PROBLEMA DO CAIXEIRO VIAJANTE

Suponha que um caixeiro viajante tenha de visitar n cidades diferentes, iniciando e encerrando sua viagem na primeira cidade. Suponha, tambm, que no importa a ordem com que as cidades so visitadas e que de cada uma delas pode-se ir diretamente a qualquer outra. O problema do caixeiro viajante consiste em descobrir a rota que torna mnima a viagem total.

Projeto de Algoritmos

um problema de otimizao combinatria. Como transform-lo num problema de enumerao ? Como determinar todas as rotas do caixeiro ? Como saber qual delas a menor ?
SOLUO: So (n-1)! Rotas PERGUNTA: um trabalho fcil para a mquina ?

Projeto de Algoritmos ALGORITMO

A primeira coisa que podemos pensar para resolver esse tipo de problema reduzi-lo a um problema de enumerao: achamos todas as rotas possveis e, usando um computador, calculamos o comprimento de cada uma delas e ento vemos qual a menor. ( claro que se acharmos todas as rotas estaremos contando-as, da podermos dizer que estamos reduzindo o problema de otimizao a um de enumerao).

Projeto de Algoritmos

Para acharmos o nmero R( n ) de rotas para o caso de n cidades, basta fazer um raciocnio combinatrio simples e clssico. Por exemplo, no caso de n = 4 cidades, a primeira e ltima posio so fixas, de modo que elas no afetam o clculo;

Projeto de Algoritmos

Na segunda posio podemos colocar qualquer uma das 3 cidades restantes B, C e D, e uma vez escolhida uma delas, podemos colocar qualquer uma das 2 restantes na terceira posio; na quarta posio no teramos nenhuma escolha, pois sobrou apenas uma cidade;

Projeto de Algoritmos

Consequentemente, o nmero de rotas 3 x 2 x 1 = 6, resultado que tinhamos obtido antes contando diretamente a lista de rotas.

Projeto de Algoritmos

De modo semelhante, para o caso de n cidades, como a primeira fixa, o leitor no ter nenhuma dificuldade em ver que o nmero total de escolhas que podemos fazer (n-1) x (n-2) x ... x 2 x 1. De modo que, usando a notao de fatorial:

R( n ) = ( n - 1 )!

Projeto de Algoritmos A quantidade (n - 1)! cresce com uma velocidade alarmante

Projeto de Algoritmos

Calcular o comprimento total das viagens de cada rota e ver qual delas tem o menor comprimento total no um trabalho fcil para o computador. O problema que a quantidade ( n - 1 )! cresce com uma velocidade alarmante, sendo que muito rapidamente o computador torna-se incapaz de executar o que lhe pedimos.

Projeto de Algoritmos GRAFOS

Se tivermos as cidades A, B, C e D, uma rota que o caixeiro poderia considerar sair de A para B, dessa vai para C, e da vai para D e ento volte para A. Existem mais seis rotas possveis: ABCDA, ABDCA, ACBDA, ACDBA, ADBCA e ADCBA.

Projeto de Algoritmos
D

Projeto de Algoritmos CONCLUSES

Busca da eficincia dos algoritmos para diminuir o tempo de execuo; A quantidade de memria de uma mquina influencia no tempo de execuo de um algoritmo; A complexidade um indicador para a avaliao da eficincia de tempo do algoritmo;

Projeto de Algoritmos

SOBRE O PROBLEMA DO CAIXEIRO VIAJANTE

O problema do caixeiro viajante um problema de cunho econmico-social para o Caixeiro, mas um problema do caramba para a computao.
Fonte: Desciclopdia

Você também pode gostar