Você está na página 1de 5

Anlise de Algoritmos | Aulas | Bibliografia | WWW | Dicionrio | ndice

Anlise assinttica: ordens O, Omega e Theta


Ao ver uma expresso como n+10 ou n+1, a maioria das pessoas pensa automaticamente em valores pequenos de n, valores prximos de zero. A anlise de algoritmos faz exatamente o contrrio: ignora os valores pequenos e concentra-se nos valores enormes de n. Para valores enormes de n, as funes n 2 , (3/2)n 2 , 9999n2 , n2/1000 , n2+100n , etc. crescem todas com a mesma velocidade e portanto so todas "equivalentes". Esse tipo de matemtica, interessado somente em valores enormes de n, chamado assinttico. Nessa matemtica, as funes so classificadas em "ordens" (como as ordens religiosas da Idade Mdia); todas as funes de uma mesma ordem so "equivalentes". As cinco funes acima, por exemplo, pertencem mesma ordem. Veja o verbete Big O notation na Wikipedia.

Ordem O
Convm restringir a ateno a funes assintoticamente no-negativas, ou seja, funes f tais que f(n) 0 para todo n suficientemente grande. Mais explicitamente: f assintoticamente no-negativa se existe n0 tal que f(n) 0 para todo n maior que n0 . Agora podemos definir a ordem . [Esta letra um O maisculo. Ou melhor, um micron grego maisculo, como quer Knuth.]

DEFINIO: Dadas funes assintoticamente no-negativas f e g, dizemos que f est na ordem de g e escrevemos f = (g) se f(n) c g(n) para algum c positivo e para todo n suficientemente grande. Em outras palavras, existe um nmero positivo c e um nmero n0 tais que f(n) c g(n) para todo n maior que n0 .

(A notao " ( )" empregada nesta definio conhecida como notao assinttica ou notao de Landau.)

Exemplo 1: Se f(n) 9999 g(n) para todo n 1000 ento f = recproca no verdadeira!)

(g). (Cuidado: a

Exemplo 2: Suponha que f(n) = 2n + 3n + 4 e g(n) = n. Observe que 2n2 + 3n + 4 2n2 + 3n 2 + 4n2 = 9n2 desde que n 1. Resumindo, f(n) 9 g(n) para todo n 1. Portanto, f(n) = (g(n)). Exemplo 3: Suponha que f(n) = 3 + 2/n e que g(n) = n0, ou seja, g(n) = 1. Ento 3 + 2/n 3 + 1 = 4 = 4n 0 desde que n 2. Resumindo, f(n) 4 g(n) para todo n 2. Portanto, f(n) = (g(n)). Exemplo 4: Suponha que f(n) = n3 e que g(n) = 200n2. No verdade que f(n) = (g(n)). De fato, se existissem c e n0 tais que f(n) c g(n), teramos n 200c para todo n n0. Mas isso absurdo!

Exerccios
1. Faz sentido dizer que "f(n) est em 2. Fica bem dizer que "f(n) est em (n) para n 4"? (n) com c = 12 e n0 = 4"?

3. Discuta a seguinte definio alternativa da classe : "Dizemos que f est em (g) se existem nmeros positivos c, n 0 e n n0 tais que f(n) c g(n)." 4. Discuta a seguinte definio alternativa da classe : "Dizemos que f est em (g) se existe um nmero natural n 0 tal que f(n) c g(n) para algum nmero positivo c e para todo n n0." 5. [INTERESSANTE] A clusula "n suficientemente grande" na definio da classe suprflua quando estamos lidando com funes estritamente positivas. De fato, suponha que f (g) e g(n) > 0 para todo n natural e mostre que existe um nmero positivo c tal que f(n) c g(n) para todo n natural. 6. Critique o seguinte raciocnio: "A derivada de 4n2+2n 8n+2. A derivada de n2 2n. Como 8n+2 > 2n, podemos concluir que 4n2+2n cresce mais que n2 e portanto 4n2+2n no (n2)." Critique o seguinte raciocnio: "A derivada de 4n2+2n 8n+2. A derivada de 9n 2 18n. Como 8n+2 18n para n 1, podemos concluir que 4n 2+2n (9n2)."

7. verdade que 10n = que 10n55 = (2n) ?

(n) ? verdade que 10n2 = (n2) ? (n) ?

(n) ? verdade

8. verdade que n2 + 200n + 300 = 9. verdade que n2 200n 300 =

10. verdade que (3/2)n2 + (7/2)n 4 = (3/2)n 2 + (7/2)n 4 = (n2) ? 11. verdade que n3999999n 21000000 =

(n) ? verdade que (n2) ?

12. Seja (nk) o nmero de combinaes de n objetos tomados k a k. Mostre

(n2) = (n2). Mostre que (n3) = (n3). verdade que, para qualquer nmero natural k n, tem-se (nk) = (nk) ?
13. verdade que 2n+1 est em 14. verdade que log2 n = (2n) ? verdade que 3n est em (2n) ?

(log 3n) ? verdade que log 3n = (lg n) ?

(log2n) ?

15. verdade que teto(lg n) =

16. Prove que n = (2n). (Sugesto: use induo matemtica para provar que n 2n para todo n suficientemente grande.) 17. Prove que lg n est em (n).

18. Prove que n (2n/4). (Sugesto: use induo matemtica para provar que n 2n/4 para todo n suficientemente grande.) 19. Prove que 4 lg n est em (n). (n lg n).

20. Prove que 100 lg n 10n + 2n lg n est em

Ordem Omega
A expresso "f = (g)" tem o mesmo sabor que "f g". Agora precisamos de um conceito que tenha o sabor de "f g". DEFINIO: Dadas funes assintoticamente no-negativas f e g, dizemos que f est na ordem Omega de g e escrevemos f = (g) se f(n) c g(n) para algum c positivo e para todo n suficientemente grande. Em outras palavras, existe um nmero positivo c e um nmero n0 tais que f(n) c g(n) para todo n maior que n0. Exemplo: Se f(n) g(n)/100000 para todo n 888 ento f = recproca no verdadeira!) Qual a relao entre g = (f). e ? No difcil verificar que f = (g). (Cuidado: a (g) se e somente se

Exerccio
1. Seja (nk) o nmero de combinaes de n objetos tomados k a k. Mostre

(n2) = (n2). Mostre que (n3) = (n3). verdade que, para qualquer nmero natural k n, tem-se (nk) = (n k) ?
2. Prove que 100 lg n 10n + 2n lg n est em 3. verdade que 2n+1 est em (n lg n). (2n) ?

(2n) ? verdade que 3n est em

Ordem Theta
Alm dos conceitos que tm o sabor de "f g" e de "f g", precisamos de um que tenha o sabor de "f = g". DEFINIO: Dizemos que f e g esto na mesma e escrevemos f = (g) se f = (g) e f = (g). Trocando em midos, f = (g) significa que existe nmeros positivos c e d tais que c g(n) f(n) d g(n) para todo n suficientemente grande. Exemplo: As funes abaixo pertencem todas ordem (n2):

n2 , (3/2)n 2 , 9999n2 , n2/1000 , n2 +100n .

Exerccio
1. Quais das conjeturas abaixo so verdadeiras? 1. (3/2)n 2 + (7/2)n3 4 = (n2) 2. 9999 n 2 = (n2) 3. n2/1000 999n = (n2 ) 4. log 2n + 1 = (log 10n) 5. piso(lg n) = (lg n)

Onde as funes esto definidas?


A discusso acima supe, implicitamente, que todas as funes esto definidas no conjunto dos nmeros naturais. Mas tudo continua funcionando se as funes estiverem definidas em algum outro domnio. Eis alguns exemplos de domnios:
y y y y

nmeros naturais maiores que 99, potncias inteiras de 2 (ou seja, 20, 21, 22 , etc.), potncias inteiras de 1, nmeros racionais maiores que .

A mesma notao usada para todos os domnios. Por exemplo, se f uma funo assintoticamente no-negativa definida nas potncias inteiras de 2, dizer que f(n) = (n 2) o mesmo que dizer que existe um nmero positivo c tal que f(n) c n2 para todo n da forma 2k com k suficientemente grande. As mesmas observaes se aplicam notao e notao .

Você também pode gostar