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

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

Problemas NP-completo

Apresentações semelhantes


Apresentação em tema: "Problemas NP-completo"— Transcrição da apresentação:

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

2 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(nk) Problemas que podem ser resolvidos em tempo polinomial são considerados TRATÁVEIS Problemas que necessitam de tempo super polinomial são considerados INTRATÁVEIS ou DIFÍCEIS CAP-223

3 Problemas NP-completo (cont.)
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 CAP-223

4 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 CAP-223

5 Problemas NP-completo (cont.)
* 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. (x1 v ¬x2) ^ (¬x1 v x3) ^ (¬x2 v ¬x3) 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 CAP-223

6 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? CAP-223

7 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 CAP-223

8 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 CAP-223

9 Problemas NP-completo (cont.)
Ciclo Hamiltoniano - dado G(V, E), o certificado seria seqüência (v1, v2, ..., vn). Então seria possível verificar, em tempo polinomial, que (vi, vi+1)  E para i = 1, 2, ... N-1 e (vn, v1)  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 CAP-223

10 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ável”do que procurar por um algoritmo rápido para resolver exatamente o problema. CAP-223

11 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. CAP-223

12 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]??? CAP-223

13 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? CAP-223

14 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 CAP-223

15 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 CAP-223

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


Carregar ppt "Problemas NP-completo"

Apresentações semelhantes


Anúncios Google