O caixeiro viajante é np completo

  • 2,624 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
2,624
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
50
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Faculdade de Ciências Humanas, Saúde, Exatase Jurídicas de TeresinaTurma: Ciência da ComputaçãoPeríodo: 4º - ManhãDisciplina: Projet0 e Análise de AlgoritmosDocente: Francisco JoséDiscentes: Adson FerrettIgor MonteiroMarcelo KelleWhallysson EstevamCopyright 2013.1
  • 2. 1 Introdução;2 Tipos de Problema;2.1 A Classe P de problemas;2.2 A Classe NP de problemas;2.2 A Classe NP-Completo de problemas;2.2 A Classe NP-Difícil de problemas.3 Problema do caixeiro viajante;3.1 Algoritmos de força bruta;3.2 Implementação.4 O Problema do caixeiro viajante é NP-Completo;5 Conclusão;6 Referências.Copyright 2013.1
  • 3.  O problema do caixeiro viajante é um problema quetenta determinar a menor rota para percorrer umasérie de cidades, retornando à cidade de origem. Ele éum problema de otimização NP-Completo inspiradona necessidade dos vendedores em realizar entregasem diversos locais percorrendo o menor caminhopossível, reduzindo o tempo necessário para a viageme os possíveis custos com transporte e combustível.3
  • 4.  Nos anos de 1800, problemas relacionados com o PCVcomeçaram a ser desenvolvidos por dois matemáticos:o escocês William Rowan Hamilton e o britânicoThomas Penyngton Kerkman. A forma geral do PCVparece ter sido, pela primeira vez, estudada pormatemáticos nos anos de 1930 em Harvard e Viena. Oproblema foi posteriormente estudado por HasslerWhitney e Merril Flood em Princeton.4
  • 5.  Para compreender o problema abordado nestetrabalho, é necessário conhecer a classe de problemasNP-Completos. Para melhor compreender essa classee também as classes P e NP, segue uma definiçãobásica de cada uma delas.fig 1.5
  • 6. 62.1 A Classe P de problemas
  • 7.  A classe NP de problemas é o conjunto de todos osproblemas de decisão para os quais existemverificadores polinomiais. Esta classe corresponde àclasse dos problemas que poderíamos chamar"razoáveis". É importante lembrar que todo problema pertencenteà classe P também pertence à classe NP, uma vez quese um problema pode ser resolvido em tempopolinomial, ele pode ser igualmente verificado emtempo polinomial.72.2 A Classe NP de problemas
  • 8.  A classe NP-Completo é o conjunto de todos osproblemas completos em NP, portanto, NP-Completoé a classe dos problemas mais "difíceis" de NP. Esta classe de problemas é alvo de longos estudos epesquisa durante as últimas décadas, pois ela está nocentro de um dos impasses mais famosos dentro dacomputação.82.3 A Classe NP-Completo de problemas
  • 9.  Um problema NP-Difícil pode também estar em NP,mas não necessariamente. Os problemas contidosnesta classe são ditos ao menos tão difíceis quanto osproblemas mais difíceis de NP e não é possívelresolvê-los na exatidão, a menos que P = NP. Ou seja,um algoritmo polinomial que encontra a soluçãoexata para um problema NP-Difícil implica P = NP.92.4 A Classe NP-Difícil de problemas
  • 10.  O PCV consiste em, dado um grafo completo G(V,E),com n vértices, obter um ciclo hamiltoniano de customínimo, isto é, deseja-se, a partir de um vérticeinicial, passar por todos os demais vértices do grafouma única vez e então retornar ao vértice inicial. Cadaaresta que liga um par de vértices do grafo possui umcusto c(i, j) que determina o quanto se gasta para ir dei até j. Esse custo pode ter diversos significados, deacordo com a aplicação desejada.10
  • 11.  Algoritmos de força bruta são uma forma de seencontrar a solução ótima para um problema deotimização através do teste exaustivo de todos oselementos de seu domínio. Considerando o PCV, que éo problema estudado neste trabalho, um algoritmo deforça bruta consiste em testar todas as permutaçõespossíveis entre os vértices de uma instância e escolhero ciclo hamiltoniano de menor custo.113.1 Algoritmos de força bruta
  • 12. 123.2 Implementação
  • 13.  A seguir, o pseudocódigo que descreve a implementaçãofeita para o algoritmo de força bruta.Força Bruta(Ciclo[n], int pos)1. SE pos == n2. Calcule o custo do ciclo3. SE custo < custo mínimo4. ENTÃO custo mínimo = custo5. SENÃO FAÇA6. PARA j = pos até n7. Troca (ciclo[], pos, j)8. Força Bruta (ciclo[], pos + 1)9. Troca (ciclo[], pos, j)133.2 Implementação
  • 14.  Os cálculos realizados no passo 2, com relação aocusto da instância, podem ser descritos da seguinteforma:Custo(M[n][n], ciclo[n])1. double custo = 02. PARA i = 1 até n-13. FAÇA custo = custo + M[ciclo[i]][ciclo[i + 1]]4. custo = custo + M[ciclo[n]][ciclo[1]]5. RETORNE custo.143.2 Implementação
  • 15.  Voltando ao algoritmo principal, os passos 7 e 9 sãoresponsáveis pela permutação de fato dos vértices nociclo. Para isso, foi utilizado um algoritmo simples detroca de posições em um vetor.Troca(ciclo[n], int i, int j)1. int aux = ciclo [i]2. ciclo[i] = ciclo [j]3. ciclo[j] = aux153.2 Implementação
  • 16.  Através da figura 2, pode-se observar um grafo querepresenta uma instância do PCV-Métrico e todas aspermutações possíveis para a obtenção da solução.fig 2.163.2 Implementação
  • 17. (i) Decisão do Caixeiro Viajante é NP A exibição da justificativa SIM pode ser dada por uma sequênciade vértices. A verificação da justificativa apresentada consiste emse verificar que cada vértice aparece na sequência apenas umavez.O(n) - percorrer a lista marcando os vértices, observando se já nãoforam marcados, verificar se contém todos os vértices,O(1) - durante a marcação contar os vértices, e verificar se o pesototal não ultrapassa o valor k,O(n) - percorrer a lista somando-se os pesos das arestas,O(1) - descobrir cada peso, se os dados estão em uma matriz deadjacência.Como o algoritmo é polinomial, então o problema é da classe NP.17
  • 18. (ii) Decisão do Ciclo Hamiltoniano ∝ Decisão do CaixeiroViajante Seja um grafo G com n vértices para o qual queremosdecidir se existe ou não um ciclo hamiltoniano.Construímos um grafo G’ a partir de G contendo todos osvértices se arestas de G. Atribuímos peso 1 a todas estasarestas.fig. 318
  • 19.  Criamos todas as demais arestas não existentes em G’ compeso 2. É fácil notar que existe um ciclo em G’, que passa emtodos os vértices exatamente uma vez, com peso nomáximo n, se e somente se existe ciclo hamiltoniano emG, pois assim haveria um ciclo em G’ passando apenas porarestas de peso 1. Se não houver, um ciclo em G’ deverápassar por aresta de peso 2, o que ultrapassará o peso totaln.fig. 419
  • 20.  Logo, como- Decisão do Caixeiro Viajante é NP;- Decisão do Ciclo Hamiltoniano ∝ Decisão do CaixeiroViajante;- Decisão do Ciclo Hamiltoniano é NP-Completo;então Decisão do Caixeiro Viajante é NP-Completo.20
  • 21.  CORMEN, Thomas H.; LEISERSON, Charles E.; RIVEST, Ronald L.; STEIN, Clifford.Algoritmos: Teoria e Prática. 2 ed. Editora Campus, São Paulo. 2002. FONSECA, Guilherme D. da. Problemas NP-Completo. Rio de Janeiro: Unirio, [2009]. 20slides, color, Acompanha texto. GRONER, Loiane. NP - COMPLETUDE. 2006. 42 f. Trabalho do curso de graduação emCiência da Computação – Unifesp, Vitória-ES. MORAIS, José Luiz Machado. Problema do Caixeiro Viajante Aplicado ao Roteamento deVeículos numa Malha Viária. 2010. 70 f. Trabalho de conclusão de curso – Unifesp, São Josédos Campos-SP. O problema do caixeiro viajante é NP-Completo. Disponível em: <http://homepages.dcc.ufmg.br/~nivio/cursos/pa03/tp2/tp22/tp22.html>. Acesso em: 16 mai.2013, 22:40:00. Problema do caixeiro viajante. Disponível em:<http://www.mat.ufrgs.br/~portosil/caixeiro.html>. Acesso em: 17 mai. 2013, 16:30:00.21
  • 22. Faculdade de Ciências Humanas, Saúde, Exatase Jurídicas de TeresinaDiscentes: Adson Ferrett adson_sousa007@hotmail.comIgor Monteiro kijigor@hotmail.comMarcelo Kelle marcelo_kcs@hotmail.comWhallysson Estevam avelino099@gmail.comCopyright 2013.1