Académique Documents
Professionnel Documents
Culture Documents
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Complexidade de Tempo
Esdras Lins Bispo Jr.
bispojr@ufg.br
Teoria da Computao
Bacharelado em Cincia da Computao
02 de junho de 2014
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Plano de Aula
1
Pensamento
Avisos
Reviso
Variantes de MT (Cont.)
Denio de algoritmo
Terminologia para descrever MTs
Complexidade de Tempo
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Sumrio
1
Pensamento
Avisos
Reviso
Variantes de MT (Cont.)
Denio de algoritmo
Terminologia para descrever MTs
Complexidade de Tempo
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Pensamento
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Pensamento
Frase
Para todo problema complexo existe
sempre uma soluo simples, elegante
e completamente errada.
Quem?
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Sumrio
1
Pensamento
Avisos
Reviso
Variantes de MT (Cont.)
Denio de algoritmo
Terminologia para descrever MTs
Complexidade de Tempo
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Avisos
Teste 04
Dia
11 de junho (Quarta-feira)!!!
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Variantes de MT (Cont.)
Sumrio
1
Pensamento
Avisos
Reviso
Variantes de MT (Cont.)
Denio de algoritmo
Terminologia para descrever MTs
Complexidade de Tempo
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Variantes de MT (Cont.)
Corolrio importante
Embora possamos imaginar muitos modelos computacionais
diferentes, a classe de algoritmos que eles descrevem permanece a
mesma.
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Sumrio
1
Pensamento
Avisos
Reviso
Variantes de MT (Cont.)
Denio de algoritmo
Terminologia para descrever MTs
Complexidade de Tempo
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Denio de algoritmo
Contribuio
Apresentou uma noo do que seria
um algoritmo no Congresso
Internacional de Matemticos em
Paris, no ano de 1900.
Quem?
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Polinmio
Denies
Um
termo um produto
coeciente.
Um
x x y z z z = 6x 2 yz 3
Exemplo: Polinmio
6x
2 yz 3
+ 3xy 2 10
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Polinmio
Denies
Uma
raiz
Exemplo: Raiz
O polinmio 6x
x = 5, y = 3
3 yz 2
+ 3xy 2 x 3 10
z = 0.
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Polinmio
Problema apresentado por Hilbert
possvel conceber um algoritmo que teste se um polinmio tem
uma raiz inteira ou no?
Expresso utilizado por Hilbert
Um processo com o qual ela possa ser determinada por um
nmero nito de operaes.
Curioso
No existe algoritmo que execute esta tarefa.
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Denio de algoritmo
Contribuio
Mostrou, em 1970, que no existe
algoritmo para se testar se um
polinmio tem razes inteiras.
Quem?
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Denio de Algoritmo
Concluso
Existem problemas que so algoritmicamente insolveis.
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Denio de Algoritmo
Contexto
D = {p | p
Problema
O conjunto
decidvel?
Resposta
No decidvel. Mas Turing-reconhecvel.
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Denio de Algoritmo
Problema anlogo
D1 = {p | p
MT
M1
1
M1
um polinmio sobre
que reconhece
D1
= A entrada um polinmio
sobre a varivel
p com x substituda
0, 1, 1, 2, 2, 3, 3, . . .
Calcule o valor de
valores
x.
sucessivamente pelos
Consideraes
M1
reconhece
D1 ,
mas no a decide.
Complexidade de Tempo
aceite.
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Denio de Algoritmo
Resultado obtido por Matijasevich
possvel construir um decisor para
D1 .
Mas no para
D.
Justicativa
possvel obter um limitante para polinmios de uma nica
varivel. Porm, Matijasevich provou ser impossvel calcular tais
limitantes para polinmios multivariveis.
cmax
c1
em que
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Nveis de descrio
Descrio formal:
conforme denio;
Descrio de implementao:
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Exemplo
Seja
A = { G |G
= Sobre a entrada
, a codicaco de um grafo
G:
Selecione o primeiro n de
e marque-o.
marcado:
Complexidade de Tempo
se
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Exemplo
Pergunta
Como seria a descrio de
no nvel de implementao?
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Sumrio
1
Pensamento
Avisos
Reviso
Variantes de MT (Cont.)
Denio de algoritmo
Terminologia para descrever MTs
Complexidade de Tempo
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Complexidade
Por que estudar complexidade?
Um problema pode ser at decidvel, mas pode levar uma
quantidade de tempo ou memria bastante elevada.
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Complexidade
Por que estudar complexidade?
Um problema pode ser at decidvel, mas pode levar uma
quantidade de tempo ou memria bastante elevada.
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Complexidade de Tempo
Problema
Seja a linguagem
A = {0k 1k
k 0}.
A?
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Complexidade de Tempo
Problema
Seja a linguagem
A = {0k 1k
k 0}.
A?
M1
:
rejeite
se um 0 for encontrado
direita de um 1.
1
3
rejeite.
aceite.
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Complexidade de Tempo
Analisando a entrada
Grafo: nmero de ns, nmero de arestas;
Estrutura de dados: tamanho do vetor, altura da rvore;
Cadeia: tamanho da cadeia de entrada.
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Complexidade de Tempo
Analisando a entrada
Grafo: nmero de ns, nmero de arestas;
Estrutura de dados: tamanho do vetor, altura da rvore;
Cadeia: tamanho da cadeia de entrada.
Tipos de Anlise
Anlise do pior caso;
Anlise do caso mdio;
Anlise do melhor caso.
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Complexidade de Tempo
Analisando a entrada
Grafo: nmero de ns, nmero de arestas;
Estrutura de dados: tamanho do vetor, altura da rvore;
Cadeia: tamanho da cadeia de entrada.
Tipos de Anlise
Anlise do pior caso;
Anlise do caso mdio;
Anlise do melhor caso.
Utilizaremos aqui...
O tamanho da cadeia de entrada e a anlise de pior caso.
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Complexidade de Tempo
Denio 7.1
Seja
a funo
passos que
f : N N,
em que
complexidade de tempo de
f (n)
o nmero mximo de
n.
Se
tempo
entrada.
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Complexidade de Tempo
Notao O-Grande
f , g : N R+ .
Vamos dizer que f (n) = O(g (n)) se inteiros positivos c
existem tais que para todo inteiro n n0 em que
Sejam
funes
n0
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Complexidade de Tempo
Figura:
, O
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Complexidade de Tempo
f1 (n) = 5n3 + 2n2 + 22n + 6
O(f1 (n)) = O(5n3 + 2n2 + 22n + 6)
3
= O(5n )
3
= O(n )
(1)
(2)
(3)
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Complexidade de Tempo
f1 (n) = 5n3 + 2n2 + 22n + 6
O(f1 (n)) = O(5n3 + 2n2 + 22n + 6)
3
= O(5n )
3
= O(n )
c = 6,
5n
para todo
n0 = 10.
Logo
n 10.
(2)
(3)
verdade porque...
Basta admitir
(1)
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Lista de Exerccios 05
Livro
SIPSER, M.
Exerccios
7.1;
7.2;
7.6.
Complexidade de Tempo
Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo
Complexidade de Tempo
Esdras Lins Bispo Jr.
bispojr@ufg.br
Teoria da Computao
Bacharelado em Cincia da Computao
02 de junho de 2014
Complexidade de Tempo