O documento discute os conceitos de classes de problemas P, NP, NP-completo e NP-difícil e como medir a complexidade de algoritmos. Também apresenta exemplos de algoritmos polinomiais e de complexidade exponencial e teoremas sobre problemas NP-completos.
2. Apresentação
Alunos do curso de Engenharia da
Computação:
Erick A. B. Pereira
Luiz Guilherme M. Coelho
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Agradecimentos
A todos e a profª Ms Eng. Elaine Cecília
Gatto.
Alunos de Engenharia da Computação.
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. Referências
TOSCANI, L. V.; VELOSO, P. A. S.
Complexidade de algoritmos. 3ª ed. [São
Paulo]: BOOKMAN COMPANHIA EDITORA,
[2012?].