Apresentacao N P Completude Loiane

2.776 visualizações

Publicada em

Publicada em: Turismo, Educação
1 comentário
4 gostaram
Estatísticas
Notas
Sem downloads
Visualizações
Visualizações totais
2.776
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1.107
Ações
Compartilhamentos
0
Downloads
0
Comentários
1
Gostaram
4
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Apresentacao N P Completude Loiane

  1. 1. Teoria da Computação 01/12/2006 Ciência da Computação FAESA – 5B
  2. 2. AGENDA <ul><li>Importância </li></ul><ul><li>Classe de Problemas Algorítmicos </li></ul><ul><li>Problemas P </li></ul><ul><li>Problemas NP </li></ul><ul><li>Redutibilidade – Problemas NP-Completo </li></ul><ul><li>Problemas Famosos </li></ul><ul><li>Problemas Exponenciais </li></ul>
  3. 3. IMPORTÂNCIA <ul><li>Falha em achar algoritmo eficiente </li></ul>
  4. 4. IMPORTÂNCIA <ul><li>Algoritmos eficientes para alguns casos – impossível!!! </li></ul>
  5. 5. IMPORTÂNCIA <ul><li>Prêmio oferecido pela Clay Mathematics Institute - $ 1 milhão de dólares </li></ul>
  6. 6. IMPORTÂNCIA
  7. 7. IMPORTÂNCIA
  8. 8. IMPORTÂNCIA <ul><li>Problemas Tratáveis: se apresentar solução polinomial </li></ul><ul><li>Problemas Intratáveis: se for tão difícil que nenhum algoritmo polinomial consegue resolvê-lo </li></ul>
  9. 9. Classe de Problemas Algorítmicos <ul><li>Problemas de Decisão </li></ul><ul><li>Objetivo consiste sempre em responder sim ou não à determinada indagação. </li></ul>
  10. 10. Classe de Problemas Algorítmicos <ul><li>Problemas de Localização </li></ul><ul><li>Objetivo é encontrar, caso exista, determinada estrutura satisfazendo requisitos especificados por uma questão . </li></ul>
  11. 11. Classe de Problemas Algorítmicos <ul><li>Problemas de Otimização </li></ul><ul><li>Objetivo será obter determinada estrutura satisfazendo critério de otimização pré-definido </li></ul>
  12. 12. Classe de Problemas Algorítmicos <ul><li>Exemplo: </li></ul><ul><li>Problema de Decisão: </li></ul><ul><li>Entrada: Grafo G e um inteiro k > 0 </li></ul><ul><li>Questão: Existe um clique em G do tamanho k? </li></ul><ul><li>Se a resposta for sim, resolve-se o segundo problema </li></ul>
  13. 13. Classe de Problemas Algorítmicos <ul><li>Problema de Localização: </li></ul><ul><li>Entrada: Grafo G e um inteiro k > 0 </li></ul><ul><li>Questão: Encontrar um clique em G de tamanho k. </li></ul><ul><li>Obter algum clique em G ou mostrar que não existe </li></ul>
  14. 14. Classe de Problemas Algorítmicos <ul><li>Problema de Otimização </li></ul><ul><li>Entrada: Grafo G </li></ul><ul><li>Questão: Obter um clique de tamanho mínimo. </li></ul><ul><li>Resolvidos os problemas da existência e localização de cliques em G, deve-se obter dentre todos os cliques deste grafo aquele de tamanho mínimo. Ou seja, o menor k para o qual a resposta ao Problema de Decisão seja sim </li></ul>
  15. 15. Classe de Problemas Algorítmicos <ul><li>Decisão < Localização < Otimização </li></ul>
  16. 16. Classe de Problemas P <ul><li>Tempo polinomial no pior caso </li></ul><ul><ul><li>Algoritmos com pesquisa binária (O(log n)); </li></ul></ul><ul><ul><li>Pesquisa seqüencial (O(n)); </li></ul></ul><ul><ul><li>Ordenação por inserção (O(n2)); </li></ul></ul><ul><ul><li>Multiplicação de matrizes (O(n3)). </li></ul></ul>
  17. 17. Classe de Problemas NP <ul><li>problemas &quot;não-determinísticos polinomiais&quot; no tempo </li></ul><ul><li>Steve Cook observou um fato simples e ao mesmo tempo surpreendente: se um problema pudesse ser resolvido em tempo polinomial, poderia-se também verificar se uma dada possível solução é correta em tempo polinomial (dize-se que o algoritmo pode ser certificado em tempo polinomial). </li></ul>
  18. 18. Classe de Problemas NP <ul><li>P  NP </li></ul>
  19. 19. P = NP ou P  NP <ul><li>Existem muitos problemas práticos em NP que podem ou não pertencer a P </li></ul><ul><li>Se conseguirmos provar que um problema não pertence a P, então não precisamos procurar por uma solução eficiente para ele </li></ul><ul><li>Como não existe tal prova sempre há esperança de que alguém descubra um algoritmo eficiente </li></ul><ul><li>Quase ninguém acredita que NP = P </li></ul><ul><li>Existe um esforço considerável para provar o contrário: MAS O PROBLEMA CONTINUA EM ABERTO! </li></ul>
  20. 20. Redutibilidade <ul><li>Suposição 1: Tem-se um problema de decisão A que se deseja resolver em tempo polinomial. Chama-se de instância a entrada para um determinado problema. </li></ul><ul><li>Suposição 2:Existe um problema de decisão diferente B, que já se sabe como resolver em tempo polinomial. </li></ul><ul><li>Suposição 3:Tem-se um procedimento que transforma qualquer instância  de A em alguma instância  de B com as seguintes características: </li></ul><ul><li>A transformação demora tempo polinomial. </li></ul><ul><li>As respostas são as mesmas, isto é, a resposta para  é “sim” se e somente se a resposta para  também é sim. </li></ul>
  21. 21. Redutibilidade <ul><ul><li>Dada uma instância  do problema A, use o algoritmo de redução de tempo polinomial para transformá-la em uma instância  do problema B. </li></ul></ul><ul><ul><li>Execute o algoritmo de decisão de tempo polinomial para B sobre a instância  . </li></ul></ul><ul><ul><li>Use a resposta de  como a resposta para  . </li></ul></ul>
  22. 22. Redutibilidade <ul><li>O caráter NP - Completo consiste em mostrar o quanto um problema é difícil, em vez de mostrar o quanto ele é fácil. Para isso, usam-se reduções de tempo polinomial da maneira oposta. </li></ul><ul><li>As reduções de tempo polinomial proporcionam um meio formal de mostrar que um problema é pelo menos tão difícil quanto outro, até dentro de um fator de tempo polinomial isto é, se , então L1 não é mais que um fato polinomial mais difícil que L2, e esse é o motivo pelo qual a notação “menor que ou igual a” para redução é mnemônica. </li></ul>
  23. 23. Problemas NP-Completos <ul><li>Uma linguagem é NP – Completa se </li></ul><ul><li>Se uma linguagem L satisfaz à propriedade 2, mas não necessariamente à propriedade 1, diz-se que L é NP – Difícil (ou NP - Árduo). </li></ul>
  24. 24. Problemas NP-Completos
  25. 25. Problemas NP - Completos
  26. 26. PROBLEMAS FAMOSOS
  27. 27. Caminho em um Grafo <ul><li>Considere um grafo com peso nas arestas, dois vértices i, j e um inteiro k > 0 </li></ul>
  28. 28. Caminho em um Grafo <ul><li>Fácil: Existe um caminho de i até j com peso <= k? </li></ul><ul><li>Existe um algoritmo eficiente com complexidade de tempo O (A log V), sendo A o número de arestas e V o número de vértices (algoritmo de Dijkstra) </li></ul><ul><li>Difícil: Existe um caminho de i até j com peso >= k? </li></ul><ul><li>Não existe algoritmo eficiente. É equivalente ao problema do caixeiro viajante em termos de complexidade. </li></ul>
  29. 29. Coloração em um Grafo <ul><li>Em um grafo G = (V, A), mapear C: V <- S, sendo S um conjunto finito de cores tal que se então c(v) c(w), ou seja, vértices adjacentes possuem cores distintas. </li></ul><ul><li>O número cromático X(G) de G é o menor número de cores necessário para colorir G, isto é, o menor k para o qual existe uma coloração C para G e |C(V)| = k. </li></ul><ul><li>O problema é produzir uma coloração ótima, que é a que usa apenas X(G) cores </li></ul>
  30. 30. Coloração em um Grafo <ul><li>Formulação do tipo “sim/não”: dados G e um inteiro positivo k, existe uma coloração de G usando k cores? </li></ul><ul><li>Fácil: k = 2 </li></ul><ul><li>Difícil: k > 2 </li></ul>
  31. 31. Coloração em um Grafo <ul><li>Aplicações </li></ul><ul><li>Otimização de Compiladores; </li></ul><ul><li>Exames de um colégio </li></ul>
  32. 32. Ciclo de Hamilton <ul><li>O ciclo de Hamilton é um ciclo simples, ou seja, passa por todos os vértices uma única vez. </li></ul><ul><li>O caminho de Hamilton é um caminho simples, ou seja, passa por todos os vértices uma única vez. </li></ul>
  33. 33. Ciclo de Hamilton <ul><li>Exemplo de ciclo de Hamilton: 0 1 4 2 3 0. </li></ul><ul><li>Exemplo de caminho de Hamilton: 0 1 4 2 3. </li></ul>
  34. 34. Ciclo de Hamilton <ul><li>Problema: Existe um ciclo de Hamilton no grafo G? </li></ul><ul><li>Fácil: grafos com grau máximo = 2, ou seja, vértices com no máximo duas arestas incidentes. </li></ul><ul><li>Difícil: grafos com grau > 2. </li></ul>
  35. 35. Problema da Satisfabilidade
  36. 36. Problema da Parada <ul><li>Consiste em determinar, para um algoritmo determinista qualquer A com entrada de dados E, se o algoritmo A termina ou entra em loop infinito (muito útil para compiladores). </li></ul>
  37. 37. Problemas Exponenciais <ul><li>Independente da velocidade do computador, ninguém poderia esperar por um algoritmo que leva 2100 passos para terminar uma tarefa. Um supercomputador poderia resolver um problema de tamanho n = 50 em 1 hora, ou n = 51 em 2 horas, ou n = 59 em 1 ano. Nem um computador paralelo com um milhão de processadores (cada um sendo um milhão de vezes mais rápido que o mais rápido existente) é suficiente para n = 100. </li></ul>
  38. 38. Problemas Exponenciais <ul><li>Usar algoritmos exponenciais “eficientes” aplicando técnicas de tentativa e erro; </li></ul><ul><li>Usar algoritmos aproximados. Acham uma resposta que pode não ser a solução ótima, mas é garantido ser próxima dela; </li></ul><ul><li>Concentrar no caso médio. Buscar algoritmos melhores que outros neste quesito e que funcionem bem para as entradas de dados que ocorrem usualmente na prática. Porém, existem poucos algoritmo exponenciais que mão muito úteis. Um exemplo é o Simplex (Programação Linear): a complexidade de tempo é exponencial no pior, mas é muito rápido na prática. Esses exemplos são muito raros, pois a grande maioria dos algoritmos exponenciais conhecidos não é muito útil. </li></ul>
  39. 39. Referências <ul><li>Ver referências do trabalho escrito </li></ul><ul><li>Loiane Groner </li></ul><ul><li>01/12/2006 </li></ul><ul><li>Teoria da Computação </li></ul><ul><li>FAESA - 5B </li></ul><ul><li>Prof. Elvira Padua Lovatte </li></ul>

×