Vous êtes sur la page 1sur 38

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

Esdras Lins Bispo Jr. bispojr@ufg.br

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

Esdras Lins Bispo Jr. bispojr@ufg.br

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

Esdras Lins Bispo Jr. bispojr@ufg.br

Complexidade de Tempo

Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo

Pensamento

Esdras Lins Bispo Jr. bispojr@ufg.br

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?

Henry Mencken (1880-1956)


Jornalista e crtico social americano.

Esdras Lins Bispo Jr. bispojr@ufg.br

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

Esdras Lins Bispo Jr. bispojr@ufg.br

Complexidade de Tempo

Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo

Avisos

Teste 04
Dia

11 de junho (Quarta-feira)!!!

Esdras Lins Bispo Jr. bispojr@ufg.br

Complexidade de Tempo

Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo

Notcias do Santa Cruz

Esdras Lins Bispo Jr. bispojr@ufg.br

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

Esdras Lins Bispo Jr. bispojr@ufg.br

Complexidade de Tempo

Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo

Variantes de MT (Cont.)

Equivalncia com outros modelos


Caracterstica essencial de mquinas de Turing:
acesso irrestrito memria;
Todos os modelos com essa caracterstica vm a ser
equivalente em poder, desde que satisfaam requisitos
razoveis;
Exemplo: qualquer algoritmo escrito em LISP pode ser escrito
em Pascal (e vice-versa).

Corolrio importante
Embora possamos imaginar muitos modelos computacionais
diferentes, a classe de algoritmos que eles descrevem permanece a
mesma.

Esdras Lins Bispo Jr. bispojr@ufg.br

Complexidade de Tempo

Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo

Terminologia para descrever MTs

Sumrio
1

Pensamento

Avisos

Reviso
Variantes de MT (Cont.)

Denio de algoritmo
Terminologia para descrever MTs

Complexidade de Tempo

Esdras Lins Bispo Jr. bispojr@ufg.br

Complexidade de Tempo

Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo

Terminologia para descrever MTs

Denio de algoritmo

Contribuio
Apresentou uma noo do que seria
um algoritmo no Congresso
Internacional de Matemticos em
Paris, no ano de 1900.

Quem?

David Hilbert (1862-1943)


Matemtico alemo.

Esdras Lins Bispo Jr. bispojr@ufg.br

Complexidade de Tempo

Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo

Terminologia para descrever MTs

Polinmio
Denies
Um

polinmio uma soma de termos.

termo um produto
coeciente.

Um

de variveis e uma constante chamada de


Exemplo: Termo
6

x x y z z z = 6x 2 yz 3

Exemplo: Polinmio
6x

2 yz 3

+ 3xy 2 10

Esdras Lins Bispo Jr. bispojr@ufg.br

Complexidade de Tempo

Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo

Terminologia para descrever MTs

Polinmio
Denies
Uma

raiz de um polinmio uma atribuio de valores s suas

variveis de modo que o valor do mesmo seja 0. Chamamos de

raiz

inteira aquela em todos os valores atribudos so valores inteiros.

Exemplo: Raiz
O polinmio 6x

x = 5, y = 3

3 yz 2

+ 3xy 2 x 3 10

tem uma raiz em

z = 0.

Exemplo: Raiz Inteira


A raiz do exemplo acima uma raiz inteira.

Esdras Lins Bispo Jr. bispojr@ufg.br

Complexidade de Tempo

Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo

Terminologia para descrever MTs

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.

Esdras Lins Bispo Jr. bispojr@ufg.br

Complexidade de Tempo

Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo

Terminologia para descrever MTs

Denio de algoritmo

Contribuio
Mostrou, em 1970, que no existe
algoritmo para se testar se um
polinmio tem razes inteiras.

Quem?

Yuri Matijasevich (1947-)


Cientista da computao e
matemtico russo.

Esdras Lins Bispo Jr. bispojr@ufg.br

Complexidade de Tempo

Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo

Terminologia para descrever MTs

Denio de Algoritmo

Concluso
Existem problemas que so algoritmicamente insolveis.

Esdras Lins Bispo Jr. bispojr@ufg.br

Complexidade de Tempo

Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo

Terminologia para descrever MTs

Denio de Algoritmo

Contexto

D = {p | p

um polinmio com uma raiz inteira}

Problema
O conjunto

decidvel?

Resposta
No decidvel. Mas Turing-reconhecvel.

Esdras Lins Bispo Jr. bispojr@ufg.br

Complexidade de Tempo

Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo

Terminologia para descrever MTs

Denio de Algoritmo
Problema anlogo

D1 = {p | p
MT

M1
1

M1

um polinmio sobre

que reconhece

com uma raiz inteira}

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

Se em algum ponto o valor do polinmio resulta em 0,

Consideraes

M1

reconhece

D1 ,

mas no a decide.

Esdras Lins Bispo Jr. bispojr@ufg.br

Complexidade de Tempo

aceite.

Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo

Terminologia para descrever MTs

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.

Limitante para polinmios de uma nica varivel

cmax
c1

em que

k o nmero de termos do polinmio,


cmax o coeciente com maior valor absoluto, e
c1 o coeciente do termo de mais alta ordem.
Esdras Lins Bispo Jr. bispojr@ufg.br

Complexidade de Tempo

Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo

Terminologia para descrever MTs

Terminologia para descrever MTs

Nveis de descrio

Descrio formal:

esmia todos os elementos da 7-upla,

conforme denio;

Descrio de implementao:

descreve a forma pela qual a

MT move a sua cabea e a forma como ela armazena os dados


na ta;

Descrio de alto nvel:

neste nvel no precisamos

mencionar como a mquina administra a sua ta ou sua


cabea de leitura-escrita.

Esdras Lins Bispo Jr. bispojr@ufg.br

Complexidade de Tempo

Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo

Terminologia para descrever MTs

Exemplo
Seja

a linguagem consistindo em todas as cadeias representando

grafos no-direcionados que so conexos. Logo:

A = { G |G

um grafo no-direcionado conexo}

Descrio de alto nvel

= Sobre a entrada

, a codicaco de um grafo

G:

Selecione o primeiro n de

Repita o seguinte estgio at que nenhum novo n seja

e marque-o.

marcado:

Para cada n em G , marque-o se ele est ligado por uma


aresta a um n que j est marcado.
Faa uma varredura em todos os ns de G para determinar
eles esto todos marcados. Se eles esto, aceite; caso
contrrio, rejeite.
1

Esdras Lins Bispo Jr. bispojr@ufg.br

Complexidade de Tempo

se

Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo

Terminologia para descrever MTs

Exemplo

Pergunta
Como seria a descrio de

no nvel de implementao?

Esdras Lins Bispo Jr. bispojr@ufg.br

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

Esdras Lins Bispo Jr. bispojr@ufg.br

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.

Esdras Lins Bispo Jr. bispojr@ufg.br

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.

Questes do estudo de complexidade


Quanto tempo[espao] leva[ocupa] um determinado algoritmo?
O que faz um algoritmo gastar[ocupar] mais tempo[espao] do
que um outro?
possvel classicar os algoritmos em termos de
complexidade?

Esdras Lins Bispo Jr. bispojr@ufg.br

Complexidade de Tempo

Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo

Complexidade de Tempo
Problema
Seja a linguagem

A = {0k 1k

k 0}.

Quanto tempo uma

mquina de Turing simples precisa para decidir

Esdras Lins Bispo Jr. bispojr@ufg.br

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

Quanto tempo uma

mquina de Turing simples precisa para decidir

A?

Descrio de uma possvel MT simples

M1

= Sobre a cadeia de entrada

Faa uma varredura na ta e

:
rejeite

se um 0 for encontrado

direita de um 1.

Repita se ambos 0s e 1s permanecem sobre a ta:

1
3

Faa uma varredura na ta, cortando um nico 0 e um nico 1.

Se 0s ainda permanecerem aps todos os 1s tiverem sido


cortados, ou se 1s ainda permanecerem aps todos os 0s
tiverem sido cortados,

rejeite.

1s permanecerem sobre a ta,

Esdras Lins Bispo Jr. bispojr@ufg.br

Caso contrrio, se nem 0s nem

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.

Esdras Lins Bispo Jr. bispojr@ufg.br

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.

Esdras Lins Bispo Jr. bispojr@ufg.br

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.

Esdras Lins Bispo Jr. bispojr@ufg.br

Complexidade de Tempo

Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo

Complexidade de Tempo

Denio 7.1
Seja

uma mquina de Turing determinstica que pra sobre todas

as entradas. O tempo de execuo ou

a funo

passos que

f : N N,

em que

complexidade de tempo de

f (n)

o nmero mximo de

usa sobre qualquer entrada de comprimento

n.

f (n) for o tempo de execuo de M , dizemos que M roda em


f (n) e que M uma mquina de Turing de tempo f (n).
Costumeiramente usamos n para representar o comprimento da

Se

tempo

entrada.

Esdras Lins Bispo Jr. bispojr@ufg.br

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

f (n) c.g (n)


f (n) = O(g (n)), dizemos que g (n) um limitante
superior para f (n), ou mais precisamente, que g (n) um
limitante superior assinttico para f (n), para enfatizar que
Quando

estamos suprimindo fatores constantes.

Esdras Lins Bispo Jr. bispojr@ufg.br

Complexidade de Tempo

Pensamento
Avisos
Reviso
Denio de algoritmo
Complexidade de Tempo

Complexidade de Tempo

Figura:

Comportamento das notaes

Esdras Lins Bispo Jr. bispojr@ufg.br

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

Esdras Lins Bispo Jr. bispojr@ufg.br

(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

+ 2n2 + 22n + 6 6n3

n 10.

Esdras Lins Bispo Jr. bispojr@ufg.br

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

Introduo Teoria da Computao, 2a Edio,


Cdigo Bib.: [004 SIP/int].

Editora Thomson Learning, 2011.

Exerccios
7.1;
7.2;
7.6.

Esdras Lins Bispo Jr. bispojr@ufg.br

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

Esdras Lins Bispo Jr. bispojr@ufg.br

Complexidade de Tempo

Vous aimerez peut-être aussi