Vous êtes sur la page 1sur 29

Notaes

Centro de Inform-ca Universidade Federal de Pernambuco Sistemas de Informao Vinicius Cardoso Garcia vcg@cin.ufpe.br
2011 Vinicius Cardoso Garcia

Referncias
Notas de aula do prof. Tiago A. E. Ferreira (UFRPE) Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronaldo L.; Stein, Cliord; Introduc-on to Algorithms Third Edi-on, MIT Press, 2009.
Captulos 3 e 4

Algoritmos e Estrutura de Dados Notaes e Recorrncia 2011 Vinicius Cardoso Garcia

Notao
Conhecida tambm como limite rme ou limite assinto-camente restrito. A notao O, apesar de fornecer informaes sobre a complexidade do algoritmo, nem sempre nos revela algo importante; No faz sen-do, para algum algoritmo, dizer que suas complexidade por exemplo O(n!).
Ou faz?

Algoritmos e Estrutura de Dados Notaes e Recorrncia 2011 Vinicius Cardoso Garcia

Notao
As equaes de custo so dependentes das constantes c1, c2, ..., ck
Fica impra-cvel tentarmos estabelecer os valores exatos destas constantes

Desta forma, importante ter uma es-ma-va de como o custo cresce com o tamanho n da entrada
Considera-se o termo de maior importncia da expresso de custo:
an2 + bn + c (n2) : da ordem de n2 an + b (n) : da ordem de n
Algoritmos e Estrutura de Dados Notaes e Recorrncia 2011 Vinicius Cardoso Garcia

Notao
Quando se considera o nmero de passos efetuados por um algoritmo,
Pode-se desprezar constantes adi-vas e mul-plica-vas
Ex.: 3n ser aproximado por n

So considerados apenas valores assint-cos, termos de menor grau podem ser desprezados
n2 + n + 5 ser aproximado por n2

Algoritmos e Estrutura de Dados Notaes e Recorrncia 2011 Vinicius Cardoso Garcia

Notao
Formalizando:
Sejam f(n) e g(n) funes posi-vas e uma varivel inteira n. Diz-se que f O(g(n)), escrevendo-se f=O(g (n)), quando exis-r uma constante c>0 e um valor inteiro n0, tal que
n>n0 0 f(n) cg(n)

Ou seja, a funo g(n) um limite superior para a funo f(n)

Propriedades, onde g(n) e h(n) so funes e k uma constante:


O(g(n)+h(n)) = O(g(n)) + O(h(n)) O(k(n) g(n)) = k O(g(n)) = O(g(n))
Algoritmos e Estrutura de Dados Notaes e Recorrncia 2011 Vinicius Cardoso Garcia

Notao
Uma funo f(n) pertence ao conjunto (g(n)) se existem constantes posi-vas n0, c1 e c2 tais que ela possa ser imprensada entre c1.g(n) e c2.g(n), para um valor de n sucientemente grande.

Algoritmos e Estrutura de Dados Notaes e Recorrncia 2011 Vinicius Cardoso Garcia

Notao O
A notao O -l para exprimir limites superiores
Sejam f(n) e g(n) funes reais e posi-vas da varivel inteira n. Diz que f (n) O(g(n)), escrevendo- se f(n) = O(g (n)), quando
0 c1 g(n) f(n) c2 g(n)

A notao O exprime o fato que duas funes possuem a mesma ordem de grandeza assint-ca.

Ex.:
f=n2-1; g=n2; h=n3, assim, f=O(g) mas f no O(h)

Algoritmos e Estrutura de Dados Notaes e Recorrncia 2011 Vinicius Cardoso Garcia

Notao O
Sumarizando
Uma funo f(n) domina assinto-camente outra funo g(n) se existem duas constantes posi;vas
c e n0

A notao O fornece uma maneira assint-ca de dizer que uma funo menor ou igual aoutra

Algoritmos e Estrutura de Dados Notaes e Recorrncia 2011 Vinicius Cardoso Garcia

Notao (mega maisculo)


A notao u-lizada para limites assint-cos inferiores
Sejam f(n) e g(n) funes reais posi-vas da varivel n. Diz-se que f(n) (g(n)), escrevendo-se f(n)=(g(n)), quando exis-r uma constante c > 0 e um valor inteiro n0, tal que
n>n0 f(n) c g(n) 0

Exemplo, se f=n2-1, ento vlido armar:


f= (n2) f= (n) f= (1) Mas no vlido armar que f= (n3)

Algoritmos e Estrutura de Dados Notaes e Recorrncia 2011 Vinicius Cardoso Garcia

10

Notao (mega maisculo)


A notao bem parecida com a notao O; Na pr-ca a notao no vista sozinha em anlises de algoritmos
O dene um limite assint-co superior, e; dene um limite assint-co inferior.

vem na maioria das vezes acompanhada a notao ;


Como um complemento na anlise, nunca sozinha..

Pelo mo-vo de no interessar para a anlise de algoritmos; A notao O possui sua importncia, pois o programador conclui que seu algoritmo no mximo to complexo a uma funo. Mas no mnimo to complexo, como a notao descreve, no importante para concluses pr-cas sobre algoritmos.

Algoritmos e Estrutura de Dados Notaes e Recorrncia 2011 Vinicius Cardoso Garcia

11

Gracamente

Algoritmos e Estrutura de Dados Notaes e Recorrncia 2011 Vinicius Cardoso Garcia

12

Notao o (minsculo)
O limite assint-co superior fornecido pela notao O (-zo) pode:
Ser assinto-camente restrito; No ser assinto-camente restrito;

Todas as funes de O (-zo) que no denem um limite assinto-camente restrito pertencem a o (-zinho)
Algoritmos e Estrutura de Dados Notaes e Recorrncia 2011 Vinicius Cardoso Garcia

13

Notao o (minsculo)
O limite superior dado pela notao O pode ser
Assinto-camente restrito
2n2 = O(n2)

No Assinto-camente restrito
2n = O(n2)

Para o caso no assinto-camente restrito u-lizada a notao o (o minsculo)

Algoritmos e Estrutura de Dados Notaes e Recorrncia 2011 Vinicius Cardoso Garcia

14

otao o (minsculo)
Formalizando:

Notao o (minsculo)

Formalizando: Sejam f(n) e g(n) funes posi-vas e uma varivel " Sejam f(n) e g(n) funes positivas e uma varivel inteira n que f que f escrevendo-se inteira n. Diz-se . Diz-se O(g(n)),O(g(n)), escrevendo-se f=o f=o(g(n)), quando existirxis-r uma constante c>0 e um (g(n)), quando e uma constante c>0 e um valor inteiro nnteiro n , tal que valor i 0, tal que 0
n>n0 0 f(n) < c g(n) n>n0 0 !f(n) < cg(n)
"

Esta Esta denio implica que: definio implica que:

f ( n) lim g (n) = 0 n
Algoritmos e Estrutura de Dados Notaes e Recorrncia 2011 Vinicius Cardoso Garcia

15

Notao (mega minsculo)


O limite assint-co inferior fornecido pela notao (omegazo) pode:
Ser assinto-camente restrito; No ser assinto-camente restrito;

Todas as funes de (omegazo) que no denem um limite assinto-camente restrito pertencem a

Algoritmos e Estrutura de Dados Notaes e Recorrncia 2011 Vinicius Cardoso Garcia

16

Notao (mega minsculo)


Por analogia,
A notao est para a notao assim como a notao o est para a notao O. U-liza-se a notao para denotar um limite inferior que no assinto-camente restrito.

Formalizando
Sejam f(n) e g(n) funes reais posi-vas da varivel n. Diz- se que f(n) (g(n)), escrevendo-se f(n)= (g(n)), quando exis-r uma constante c > 0 e um valor inteiro n0, tal que
n>n0 f(n) > c g(n) 0

Algoritmos e Estrutura de Dados Notaes e Recorrncia 2011 Vinicius Cardoso Garcia

17

Notao
"

Notao
Por exemplo:

Por exemplo: n2/2 = (n) " n2/2 = (n) n2/2 (n2) 2 2


n /2 (n )

Assim, s = (n) = ento: Assim, se f(n) e f(g(n)),(g(n)), ento:

f ( n) lim g (n) = n

Algoritmos e Estrutura de Dados Notaes e Recorrncia 2011 Vinicius Cardoso Garcia

18

Propriedades Propriedades

Algoritmos e Estrutura de Dados Notaes e Recorrncia 2011 Vinicius Cardoso Garcia

19

Tricotomia
Dizemos que f(n) assinto;camente menor que g(n) se f (n) = o(g(n)), e que f(n) assinto;camente maior que g(n) se f(n) = (g(n)) Para dois nmeros reais quaisquer a e b, exatamente uma das relaes deve ocorrer
a < b; ou a > b; ou a = b.

Embora dois nmeros quaisquer possam ser comparados, nem toda a funo assinto-camente comparvel
Pode exis-r situao onde:
f(n) O(g(n)); e f(n) (g(n))

Algoritmos e Estrutura de Dados Notaes e Recorrncia 2011 Vinicius Cardoso Garcia

20

Exemplo
Dadas as funes:
f(n)=n g(n) = n1+sen(n)

Pergunta-se:
f(n) e g(n) so assinto;camente comparveis?

Algoritmos e Estrutura de Dados Notaes e Recorrncia 2011 Vinicius Cardoso Garcia

21

Exemplo
Dadas as funes:
f(n)=n g(n) = n1+sen(n)

Pergunta-se:
f(n) e g(n) so assinto;camente comparveis? No! Pois o valor do expoente em n1+sen(n) oscila entre 0 e 2, assumindo todos os valores intermedirios

Algoritmos e Estrutura de Dados Notaes e Recorrncia 2011 Vinicius Cardoso Garcia

22

Funes Comuns
Funes montonas
Funo monotonicamente crescente (ou monotonamente crescente)
Se m n f(m) f(n)

Funo monotonicamente decrescente (ou monotonamente decrescente) Funes estritas


Se m n f(m) f(n) Funo estritamente crescente Funo estritamente decrescente
Se m < n f(m )> f(n) Se m < n f(m) < f(n)

Algoritmos e Estrutura de Dados Notaes e Recorrncia 2011 Vinicius Cardoso Garcia

23

Funes Comuns
Piso Teto
Seja x um nmero real, seu piso o maior inteiro menor ou igual a x Notao: X Seja x um nmero real, seu teto o menor inteiro maior que ou igual a x Notao x x-1 < x x x < x+1 n/2 + n/2 = n

Para todo real x:

Para qualquer inteiro n


n/a/b = n/ab n/a/b = n/ab a/b (a+(b-1))/b a/b (a-(b-1))/b

Para qualquer real n 0 e inteiros a,b > 0

Algoritmos e Estrutura de Dados Notaes e Recorrncia 2011 Vinicius Cardoso Garcia

24

Funes Comuns Funes Comuns


Aritmtica Modular Para qualquer inteiro a e qualquer inteiro posi-vo n, o " Para qualquer inteiro a e o resto inteiro positivo n, valor de a mod n qualquer do quociente a/n
"

Aritm-ca Modular

Polinmios Polinmios um inteiro nteiro no nega-vo d, um polinmio em n d " Dado Dado um ino negativo d, um polinmio em n de grau d e grau d u da funo uma funo p(n)ma forma, p(n) da forma,

a mod n = a - aa/n n = a - !a/n" n mod n Se Se(a mod n) = (b n), entoea b (mod n) (a n)(a (a mod n) = (b mod mod n), nto a b (mod equivalente equivalente a b, modulo n) a b, modulo n)

p (n ) = # ai n i
i =0
"

que uma funo uno f(n) polinomialmente limitada se dito dito que uma ff(n) polinomialmente limitada se f(n)=O(nk alguma constante k. f(n)=O(nk) para ) para alguma constante k.
Algoritmos e Estrutura de Dados Notaes e Recorrncia 2011 Vinicius Cardoso Garcia

25

Funesomuns Comuns Funes Comuns Funes C


" "

! Funo Exponencial Funo Exponencial Funo Exponencial 1, a funo an monotonicamente crescente em " Para todo n e a n

Para todo n e a 1, a funo a monotonicamente crescente em Para todo n e a 1, a funo an monotonicamente crescente em n. n. n. b " Para a>1, nb Para a > 1, Para a>1, n lim = 0 b ! a nb = O a n n lim n = a! n = O n n 0 n

( ) ( )

! Funo Logartmica Funo Logartmica Funo Logartmica

! Portanto, qualquer funo exponencial com base escritamente Portanto, qualquer funo exponencial com base escritamente Portanto, qualquer funo exponencial com base escritamente maior maior que cresce mais rapidamente que qualquer maiorque 1 1resce mais rapidamente que qualquer funo polinomial que c cresce1mais rapidamente que qualquer funo funo polinomial polinomial

"

" Para qualquer constante a>0. Qualquer funo polinomial Para Para qualquer constante a>0. Qualquer funo polinomial posi-va positiva qualquer constante a>0. Qualquer funo polinomial positiva cresce mais rapidamente cresce mais rapidamente que ue qque qualquerpolilogartmica. qualquer funo funo polilogartmica. cresce mais rapidamente q ualquer funo polilogartmica.
Algoritmos e Estrutura de Dados Notaes e Recorrncia 2011 Vinicius Cardoso Garcia

log b n log b n = 0 ! log n a= O n a b lim lim =n a ! log b n = O n 0 na n n

( ) ( )

26

Funes Comuns Funes Comuns Funes Comuns1 ! Funo Fatorial Funo Fatorial #

n!= " ( n n= !n#1 n 1)! se se > 0 0 ! Funo Fatorial n!= " n, logo n!=O(nn) " Note que n!n !n ( n n, logo n!=O(nn) 1)! se n > 0 Note que n!n
Iterao Funcional
"

se n = 0

Note que n!nn, logo n!=O(nn)

Iterao Funcional i ) (

se i = 0 #n ! Iterao Funcional f (n ) = " f#nf (i 1) (n ) se i >i0 0 se = ! (i ) f (n ) = " (i)(n)=2in f ( f (i 1) (n )) se i > 0 " Se f(n)=2n, ento f !

" Se (n)=2n, ento f(i)(n)=2 Se ff(n)=2n, ento f(i)(n)=2in in


Algoritmos e Estrutura de Dados Notaes e Recorrncia 2011 Vinicius Cardoso Garcia

27

Nmeros Nmeros de Fibonacci de Fibonacci


Os nmeros de Fibonacci so denidos como:
!

F0 = 0 " F0=0 F1 = 1 " F1=1 Fi = Fi-1 + Fi-2, p" Fi=Fi-1+Fi-2, para i 2 ara i 2 Seqncia: !,1,1,2,3,5,8,13,21,34,55,89,... 0 Seqncia: 0,1,1,2,3,5,8,13,21,34,55,89,... ! Uma forma Uma forma alterna-va e alternativa nmeros de denir os e definir os nmeros^de a partir da razo urea e seu conjugado

Os nmeros de Fibonacci so definidos como:

Fibonacci a par-r da razo urea e seu conjugado $ 1+ 5


=

= 1,61803! ! i i ! 2 # Fi = 5 = 1 5 = 0,61803!! ! 2 "


Algoritmos e Estrutura de Dados Notaes e Recorrncia 2011 Vinicius Cardoso Garcia

28

A;vidade complementar
Leitura dos Captulo 3 do Livro do Cormen

Algoritmos e Estrutura de Dados Notaes e Recorrncia 2011 Vinicius Cardoso Garcia

29