A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

CAP-223 Problemas NP-completo Nondeterministic polynomial time Tempo polinomial entrada de tamanho n pior caso de tempo de execução O(n k ) Será que todos.

Apresentações semelhantes


Apresentação em tema: "CAP-223 Problemas NP-completo Nondeterministic polynomial time Tempo polinomial entrada de tamanho n pior caso de tempo de execução O(n k ) Será que todos."— Transcrição da apresentação:

1 CAP-223 Problemas NP-completo Nondeterministic polynomial time Tempo polinomial entrada de tamanho n pior caso de tempo de execução O(n k ) Será que todos os problemas podem ser NÃO resolvidos em tempo polinomial - NÃO Problema de Paradade Turing - problema de determinar se um certo programa termina para uma dada entrada

2 CAP-223 Problemas NP-completo (cont.) Tais problemas não podem ser resolvidos por qualquer computador não importa o tempo dado Por outro lado, existem problemas que podem ser resolvidos mas não em O(n k ) Problemas que podem ser resolvidos em tempo TRATÁVEIS polinomial são considerados TRATÁVEIS Problemas que necessitam de tempo super INTRATÁVEIS polinomial são considerados INTRATÁVEIS ouDIFÍCEIS

3 CAP-223 Problemas NP-completo (cont.) Problemas NP-Completo Estado (status) não é conhecido * nenhum algoritmo em tempo polinomial foi descoberto * ninguém conseguiu provar que não há algoritmo em tempo polinomial para qualquer um dos problemas desta classe * muitos destes problemas parecem ser semelhantes a aqueles que tem algoritmo em tempo polinomial

4 CAP-223 Problemas NP-completo (cont.) * Caminho mais curto x Caminho mais longo mais curto:O(VE) mais longo:NP-completo * Tour de Euler x Ciclo Hamiltoniano Euler: grafo conectado e direcionado ciclo percorrendo cada aresta uma única vez mesmo passando por um vértice mais de uma vez O(E) - grafo possui tour de Euler? Hamilton: ciclo simples com cada vértice NP-completo

5 CAP-223 * 2-CNF satisfiability x 3-CNF satisfiability Conjunctive Normal Form Fórmula booleana está em k-CNF se ela é formada por ANDs de cláusulas OR de exatamente k variáveis ou suas negações e.g. (x 1 v ¬x 2 ) ^ (¬x 1 v x 3 ) ^ (¬x 2 v ¬x 3 ) está em 2-CNF Para afirmar que 2-CNF é SATISFIABLE (resulta em 1), há algoritmo em tempo polinomial. O mesmo para 3-CNF é NP-completo Problemas NP-completo (cont.)

6 CAP-223 Problemas NP-completo (cont.) Caixeiro Viajante: existe um ciclo que percorra todos os vértices do grafo com um custo B? Coloração de Grafos: pode um grafo ser adequadamente colorido com n cores? Mochila: existe uma combinação de itens que dê um lucro L, respeitando o limite de peso?

7 CAP-223 Problemas NP-completo (cont.) Frustração para projetistas de algoritmos não conseguem achar algoritmos eficientes Frustração para teóricos não conseguem achar nenhuma razão por que estes problemas são difíceis Muita pesquisa feita para desenvolver mecanismos pelos quais novos problemas possam ser classificados como tão difíceis como problemas já conhecidos

8 CAP-223 Problemas NP-completo (cont.) Classe P: problemas são resolvidos em tempo polinomial Classe NP: soluções podem ser verificadas em tempo polinomial; Se, de alguma forma, pudesse fornecer um certificado de solução, então poderia verificar que o certificado está correto em tempo polinomial em termos de tamanho da entrada

9 CAP-223 Problemas NP-completo (cont.) Ciclo Hamiltoniano - dado G(V, E), o certificado seria seqüência ( v 1, v 2,..., v n ). Então seria possível verificar, em tempo polinomial, que ( v i, v i+1 ) E para i = 1, 2,... N-1 e ( v n, v 1 ) E 3-CNF - atribuir valores a variáveis e verificar, em tempo polinomial, que com estes valores a fórmula é satisfeita Qualquer problema P também está em NP P NP

10 CAP-223 Problemas NP-completo (cont.) Um bom projetista de algoritmos deve compreender os rudimentos da teoria de NP-completo. Se estabelecer que um problema é NP-completo, já está dando uma evidência que o problema é INTRATÁVEL. O próximo passo seria desenvolver algoritmos de aproximação ou resolver um caso especial tratáveldo que procurar por um algoritmo rápido para resolver exatamente o problema.

11 CAP-223 Problemas NP-completo (cont.) Técnicas usadas para mostrar que um problema é NP-completo Afirmar quão difícil o problema é. Não é questão de provar que há um algoritmo eficiente. Mas mostrar que NENHUM algoritmo eficiente existe.

12 CAP-223 Problemas NP-completo (cont.) Problemas de Otimização: cada solução viável possui um valor associado. Determinar solução viável com o melhor valor. Problemas de Decisão: respostas simples (0/1) Relacionar problemas de decisão com os de otimização Grafo G com vértices u e v para determinar caminho entre u e v com o menor número de vértices [P1]. Será que há um caminho entre os vértices consistindo no máximo k arestas [P2]???

13 CAP-223 Problemas NP-completo (cont.) Caixeiro Viajante: existe um ciclo que percorra todos os vértices do grafo com um custo B? Coloração de Grafos: pode um grafo ser adequadamente colorido com n cores? Mochila: existe uma combinação de itens que dê um lucro L, respeitando o limite de peso?

14 CAP-223 Problemas NP-completo (cont.) Lado positivo deste relacionamento: tenta mostrar que problema de Otimização é difícil problema de Decisão é mais fácil ou pelo menos não é difícil No exemplo, pode-se resolver P2 resolvendo P1 e compara o número de arestas com k Se problema de Otimização for fácil o seu problema de Decisão relacionado é também fácil

15 CAP-223 Problemas NP-completo (cont.) Relevância a NP-Completo: se mostrar evidências que um problema de Decisão é difícil, também mostra-se que o seu problema de Otimização relacionado também é difícil

16 CAP-223 Quando a solução NÃO É VERIFICÁVEL em tempo polinomial NP-Hard Problemas NP-completo (cont.)


Carregar ppt "CAP-223 Problemas NP-completo Nondeterministic polynomial time Tempo polinomial entrada de tamanho n pior caso de tempo de execução O(n k ) Será que todos."

Apresentações semelhantes


Anúncios Google