VinBR

AEDs III 18/05/2011

Mar 6th, 2012
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.65 KB | None | 0 0
  1. // A aula de hoje é sobre problemas NP-Completos
  2.  
  3. CONCEITO:
  4. NP são os problemas cuja a solução é Non-deterministic Polinomial, ou seja não deterministicamente é polinômial.
  5. Na prática isso significa que a solução pode ou não ser exponencial.
  6. Portando as que não são exponenciais pertencem ao sub-conjunto de NP que é P ou Polinomiais.
  7. Àquelas que são comprovadamente exponenciais pertencem ao grupo NP-Completo.
  8.  
  9. Nota da Professora:
  10. Na verdade não foi provado até hoje que os NP-Completos não possuem solução polinomial.
  11. Porem já foi provado que se encontrarmos uma solução para um deles, encontramos uma solução para TODOS eles,
  12. pois eles podem ser facilmente mapeados uns nos outros.
  13.  
  14. Para a maioria destes problemas existem mapeamentos para soluções polinomiais.
  15. Portanto na prática a maioria dos NP tem solução Polinomial.
  16. A duvida é sobre esse grupo restante que não se conseguiu encontrar solução polinomial.
  17. Acredita-se que este grupo restante possa ser divido entre os conjunto NP-Completo e P.
  18.  
  19. // Nota: por questões teoricas, os problemmas definidos aqui são todos problemas de sim/não
  20. // ou seja ao invés de "Qual o menor caminho de A a B",
  21. // o programa é convertido para "Existe um caminho de comprimento K entre A e B? sim ou não?"
  22.  
  23. // Nota2: Algum desses teoricos doidos da computação ainda inventou um nome para os problemas NP-Completos
  24. // que não estão formatados nesse formato de sim/não. Ele chamou estes problemas de NP-Dificil,
  25. // mas é um nome completamente desnecessário já que é a mesma coisa que NP-Completo, só falta transformar.
  26.  
  27. // imagino q tb deve ter um otro nome estranho pros polinomiais que não foram formatados ainda xP
  28.  
  29. CONCEITO:
  30. NP-Completo é exatamente a sub-classe de NP que não tem solução polinomial de maneira alguma.
  31. Não se sabe se essa classe existe mesmo, mas tem premios pra quem conseguir provar que sim ou que não.
  32. Só que ninguem consegue provar isso a anos. . .
  33.  
  34. CONCEITO:
  35. Problemas Sim/Não -> é uma simplificação de problemas genericos para fins teóricos.
  36. Por exemplo o problema do caixeiro viajante pode virar um destes se eu perguntar "existe uma solução de tamanho menor q K?"
  37.  
  38. Nota Repetida (pq ja falei ali encima):
  39. Por definição para fins teóricos os problemas NP-Completo são modelados todos em modelos Sim/Não.
  40.  
  41. // nota: deve-se ter uma base de problemas faceis e dificeis para voce conseguir ao encontrar um problema novo poder
  42. // entender se é ou não um problema difícil por via de comparação.
  43.  
  44. CONCEITO:
  45. Problema de coloração de grafos:
  46. Qual o menor número de cores que consigo usar para colorir um grafo de forma que dois vertices adjacentes não tenham a mesma cor?
  47. Voce pode pensar nisso para vários mapeamentos. Por exemplo cada vertice um professor, cada cor uma sala,
  48. e os vertices os tempos em que os professores vão usar as salas.
  49. PS: isso é NP completo
  50. PS: se isso for existe possibilidade de colorir com duas cores? sim/nao, isso vira polinomial.
  51.  
  52. CONCEITO:
  53. Ciclo de Hamilton é um ciclo que passa por todos os nós.
  54.  
  55. Problema NP-completo: Existe ciclo de hamilton?
  56.  
  57. Fácil para grau no maximo 2, dificil para graus maiores que 2
  58.  
  59. CONCEITO:
  60. cobertura de arestas.
  61. qual o mínimo de arestas que eu posso usar para ter ao menos uma aresta para cada vertice.
  62.  
  63. CONCEITO:
  64. Cobertura de vertices:
  65. Qual o mínimo de vertices que posso usar para garantir que cada aresta tera contato com ao menos um vertice.
  66. NP COMPLETO
  67.  
  68. // Nota esses problemas devem ser encaixados no modelo sim/nao, mas a professora ta falando rapido entao nao consegui modelar aqui.
  69.  
  70.  
  71. CONCEITO:
  72. Algoritimos não deterministas são algoritimos que realizam operações "magicas", ou seja toma uma decisão sem realizar um cálculo
  73. propriamente dito é mais como deus dizendo pra ele onde ir.
  74.  
  75.  
  76. CONCEITO:
  77. A operação Escolhe é uma operação não deterministica que sempre que voce encontra uma encruzilhada, uma dúvida, voce consegue
  78. descobrir o caminho certo com esse método em O(1), devido aos seus contatos divinos magicos =].
  79.  
  80. // Note que não-determinismo é um conceito puramente teorico.
  81. // Voce pode pensar que essa historia de escolhe é pensar que deus te ajuda a evitar backtrackings exponenciais.
  82. // Pensando de outra maneira equivalente: O metodo escolhe te dá sempre uma subestrutura ótima
  83. // permitindo que voce tome uma decisão local =]. O metodo escolhe só falha se não houver solução.
  84.  
  85. CONCEITO:
  86. Problema de Satisfabilidade.
  87. É o problema de verificar se uma expressão com N váriaveis booleanas pode ser igual a 1 ou não.
  88. Basicamente voce tem que tentar todas as permutações das N variaveis pra saber se é possível ou não.
  89.  
  90. Esse é o primeiro problema que foi provado ser dificil.
  91.  
  92. Solução determinista é O(2^n)
  93. Com o metodo escolha é O(n)
  94.  
  95. CONCEITO:
  96. Como saber se é NP?
  97. Basta mostrar que 1: existe algoritmo nao determinista que soluciona, 2: existe um algoritimo polinomial que verifica solução.
  98.  
  99. CONCEITO:
  100. Tranformação polinomial é tranformar a entrada de um programa p1 em uma entrada de um programa p2
  101. de modo que a saida de p2 possa ser tranformada de volta gerando a saída correta de p1 com tal entrada.
  102. Note que ambas as tranformações devem ser de O(polinomial) para serem validas.
  103. Se voce arrumar uma NP para tranformar isso, então não é uma tranformação polinomial e não vai ser vir pros propósitos abaixo:
  104.  
  105. Tranformar um problema em um problema NP não prova nada
  106. Mas transformar um problema NP em um outro problema que voce nao sabe a complexidade ainda, indica que esse outro problema é NP.
  107.  
  108. Ou seja, posso usar isso como prova para mostrar que P2 é NP, basta escolher um NP para P1 e mostrar que é possível tranformar.
  109.  
  110. CONCEITO:
  111. Um grafo transposto é um grafo que possui todas as transições possíveis menos as transições do grafo original.
  112. É como o negativo das transições do grafo.
  113. Isso é O(V²)
  114.  
  115. CONCEITO:
  116. Conjunto independente de um grafo é um conjunto de nós que não possuem arestas entre sí.
  117. Problema existe um conjunto independente >= k? sim/nao?
  118. Ou ainda, qual o maior conjunto independente?
  119.  
  120. É NP-Completo.
  121.  
  122. CONCEITO:
  123. Clique de um grafo é um subgrafo onde todos os vertices estão conectados a todos os outros vertices.
  124.  
  125. Note que ambos os problemas são equivalentes, pois a transposta do grafo para o qual se quer saber se existe o conjunto independente
  126. só vai possuir um clique se o original possuir um conjunto independente, portanto pode-se mapear um para o outro.
  127. Agora sera que a tranformação de pegar a transposta é polinomial?
  128. Se sim isso prova que o clique é NP se o conjunto independente for NP.
  129.  
  130. É NP-Completo.
Advertisement
Add Comment
Please, Sign In to add comment