Escolar Documentos
Profissional Documentos
Cultura Documentos
Otimização Combinatória
Tema 2
Introdução à Complexidade
de Algoritmos e Problemas
Instância
Algoritmo
Notações Ο, Ω e Θ
Complexidade de um Algoritmo
Meta-heurísticas em Tema 2: Introdução à Complexidade
Profª Laura Bahiense 3/45 de Algoritmos e Problemas
Otimização Combinatória
Problemas
Um problema pode ser definido com uma questão geral que deve ser
respondida
n T(n)
Tamanho Tempo de
da entrada execução
Em outras palavras:
Quando o tamanho da entrada dobra, o algoritmo consome o dobro do
tempo
Quando o tamanho da entrada é multiplicado por uma constante k, o
consumo de tempo do algoritmo também é multiplicado por k
Em outras palavras:
Quando o tamanho da entrada dobra, o consumo dobra e é acrescido de
2n
Quando o tamanho da entrada é multiplicado por uma constante k, o
consumo de tempo do algoritmo é multiplicado por k e acrescido de um
pouco mais que k n
Em outras palavras:
Quando o tamanho da entrada dobra, o algoritmo consome o quádruplo
do tempo
Quando o tamanho da entrada é multiplicado por uma constante k, o
consumo de tempo do algoritmo é multiplicado por k2
Exemplos:
Ο(n), Ο(n lg n), Ο(n2), Ο(n100)
Não-exemplos:
Ω(2n), Ω(10n)
Interpretação:
Quando o tamanho da entrada (n) dobra, o consumo de tempo do
algoritmo é elevado ao quadrado
Quando o tamanho da entrada (n) é multiplicado por 10, o consumo de
tempo do algoritmo é elevado à décima potência
A Classe de Problemas P
A Classe de Problemas NP
A questão: P = NP ?
Por convenção, dizemos que uma instância é positiva quando ela possui
solução SIM e negativa quando possui solução NÃO
Coloração: Dado um grafo G (V,E ) com n vértices e m arestas, qual é o menor número k de
cores que precisamos utilizar para colorir G de maneira própria ?
Ciclo Hamiltoniano: Dado um grafo G (V,E ) com n vértices e m arestas valoradas, qual é o
ciclo hamiltoniano de G de menor peso ?
Clique: Dado um grafo G (V,E ) com n vértices e m arestas, qual é a maior clique de G ?
Ciclo hamiltoniano:
Instância : grafo G(V, E)
Certificado : sequência de vértices de um ciclo hamiltoniano em G
Algoritmo verificador : ao receber a sequência de vértices, o verificador a
aceita se ela de fato representar um ciclo hamiltoniano, o que é fácil de
verificar em tempo polinomial no tamanho do grafo
Não é difícil mostrar que a classe NP inclui a classe P, ou seja, que todo
problema polinomial de decisão está em NP
Algoritmo Solução
instância tempo Instância Solução tempo
polinomial polinomial polinomial T de Y
J de Y I de X S de X
para X
Logo, por o que foi visto no slide anterior, NP-C é a classe dos problemas
mais difíceis de NP
Para uma lista bem completa de problemas NP-C , ver o livro de Garey &
Johnson, “Computers and Intractability: A Guide to the Theory of NP-
Completeness”, 1979