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

20
Complexidade de algoritmos Trabalho apresentado à disciplina de Algoritmo e Estruturas de Dados, sob orientação da Profa. Ms. Eng. Elaine Cecília Gatto.

description

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.

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

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

Complexidade de algoritmos

Trabalho apresentado à disciplina de Algoritmo e Estruturas de Dados, sob orientação da Profa. Ms. Eng. Elaine Cecília Gatto.

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

Apresentação

Alunos do curso de Engenharia da

Computação:

Erick A. B. Pereira

Luiz Guilherme M. Coelho

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

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.

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

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).

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

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.

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

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).

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

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.

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

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

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

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.

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

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.

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

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.

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

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.

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

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.

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

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.

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

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).

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

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.

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

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.

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

Agradecimentos

A todos e a profª Ms Eng. Elaine Cecília

Gatto.

Alunos de Engenharia da Computação.

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

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/10183/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_algoritmos/aulas/NPcompleto.html >. Acesso em: 29 nov. 2013.

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

Referências

TOSCANI, L. V.; VELOSO, P. A. S.

Complexidade de algoritmos. 3ª ed. [São

Paulo]: BOOKMAN COMPANHIA EDITORA,

[2012?].