Classes de problemas p, np,np completo e np-difícil

3.031 visualizações

Publicada em

Seminário ministrado nas aulas de Algoritmos e Estruturas de Dados que veem a esclarecer dúvidas básicas sobre a Complexidade de Algoritmos, o principal material tomado como base para os slides foi o livro de TOSCANI, L. V.; VELOSO, P. A. S. Complexidade de algoritmos.

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
3.031
No SlideShare
0
A partir de incorporações
0
Número de incorporações
6
Ações
Compartilhamentos
0
Downloads
46
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Classes de problemas p, np,np completo e np-difícil

  1. 1. Complexidade de algoritmos Trabalho apresentado à disciplina de Algoritmo e Estruturas de Dados, sob orientação da Profa. Ms. Eng. Elaine Cecília Gatto.
  2. 2. Apresentação  Alunos do curso de Engenharia da Computação:  Erick A. B. Pereira  Luiz Guilherme M. Coelho
  3. 3. Classes de Problemas P, NP,NP-Completo e NP-Difícil  Objetivo de estudar a complexidade do problema (tempo gasto para ele).  Um limite inferior de um de complexidade de um problema é o resultado teórico determinante não ser possível a construção de um algoritmo para a solução de um problema.
  4. 4. Classes de Problemas P, NP,NP-Completo e NP-Difícil  Limite superior de complexidade de um problema destaca o melhor algoritmo para a resolução.  Se ambos os limites são iguais, o problema está fechado (quanto a complexidade), chamada de complexidade mínima de problema Ω(n. logn).
  5. 5. Algoritmos polinomiais  Para cada problema deve haver algoritmos polinomiais, algoritmos que ao receber uma instância consome o mínimo de tempo para a ser tratável, sendo considerados rápidos.
  6. 6. Algoritmos polinomiais  Para o tempo máximo e para N o valor da instância de 100N4 + 300N2 + 5000.  Também aceito o algoritmo polinomial com valor máximo de tempo em 200N9 log N unidades de tempo, por exemplo (pois 200N9 log N < 200N10).
  7. 7. Algoritmos de complexidade exponencial  Esta complexidade busca eliminar uma busca exaustiva para a solução de problemas com números exponenciais, ‘soluções parciais’ formatadas para uma busca em uma árvore completa.  Todo algoritmo que apenas apresentar soluções em algoritmos exponenciais deve ser chamado de intratável.
  8. 8. Algoritmos de complexidade exponencial  Levando tempo proporcional a 𝑛2 para uma entrada de tamanho n. Suponha um problema cujo o tamanho máximo de pode ser resolvido num tempo t na máquina mais lenta é 𝑥3 ∶ 𝑥3 = 𝑡. Suponha a máquina mais lenta, ou equivalente a um tempo de 10t.  𝑦2 = 10𝑡 ∴ 𝑦2 = 10 (𝑥3)2 ∴ 𝑦 = 𝑥3 10
  9. 9. Tipos de soluções  Alguns dos algoritmos podem apresentar tal quais esses argumentos para as respostas de problemas decisórios “SIM” ou “Não”, de localização uma condição e otimização uma solução de qualidade.  Os algoritmos de localização ou otimização conseguem se converter para um de decisão.
  10. 10. Classes de problemas  P, NP e NP-completo, são definidas para problemas de decisão.  P exclusivamente para algoritmos determinísticos em tempo polinomial, enquanto NP para problemas sem resolução neste termo.
  11. 11. Algoritmos  Tais funções escolhe(S), escolha de um elemento do conjunto S, e instruções de falha e sucesso, não deve ser encontradas dentro de um algoritmo.  Sua noção, formalizada pela padronização do modelo na computação da máquina de Turning.
  12. 12. Algoritmos  Os algoritmos são programas voltados para a máquina de MTD (Máquina de Turning determinística) que sempre para, assim como algoritmos não determinísticos.
  13. 13. Teorema 6.3.1  Se II ∈ NP, então II pode ser resolvido por algoritmo determinístico de complexidade O (𝑝(𝑛)2 ), para algum polinômio p(n).  Um problema II é dito NP-completo se II ∈ NP e, para qualquer problema II ∈ NP, II’ II.  Assim, identificam-se como NP-completos os problemas mais difíceis entre os problemas de NP.
  14. 14. Proposição 6.3.1  Se II1 é NP-completo e II1 II2, então II2 é NP-completo.  Essa proposição exemplifica a maneira mais usada para a exibição de um problema NP-completo.
  15. 15. Teorema 6.3.2 (Cook)  O problema de satisfação de um NP- completo.  Um algoritmo é dito de complexidade pseudopolinomial se sua complexidade é polinomial para o tamanho da entrada, quando esta é codificada em unário. Isto é, a complexidade é polinomial no valor da entrada (e não no tamanho da entrada).
  16. 16. Teorema 6.3.2 (Cook)  Um problema NP-completo que admite algoritmo pseudopolinomial é NP- completo-fraco.  Há problemas para os quais a existência de algoritmos pseudopolinomial implica P=NP: são os NP-completos-fortes.
  17. 17. Teorema 6.3.2 (Cook)  Um problema II é NP-difícil para qualquer II’∈ NP, II’ II. Os problemas NP-difíceis não serão resolvíveis deterministicamente em tempo polinomial a menos que P=NP.  Esses problemas são potencialmente mais difíceis que os NP-completos.
  18. 18. Agradecimentos  A todos e a profª Ms Eng. Elaine Cecília Gatto.  Alunos de Engenharia da Computação.
  19. 19. Referências  AGUIAR, M. S. D. Análise Formal da Complexidade de Algoritmos Genéticos: 4 Algoritmos Aproximativos. Lume Repertório Digital, [1998?]. Disponível em: <http://www.lume.ufrgs.br/bitstream/handle/1018 3/25941/000227606.pdf?sequence=1>. Acesso em: 29 nov. 2013.  FEOFILOFF, P. Introdução informal à complexidade de problemas: Algoritmos polinomiais. Instituto de Matemática e Estática, 2013. Disponível em: <http://www.ime.usp.br/~pf/analise_de_algoritmo s/aulas/NPcompleto.html >. Acesso em: 29 nov. 2013.
  20. 20. Referências  TOSCANI, L. V.; VELOSO, P. A. S. Complexidade de algoritmos. 3ª ed. [São Paulo]: BOOKMAN COMPANHIA EDITORA, [2012?].

×