Documente Academic
Documente Profesional
Documente Cultură
p. 1/35
Anlise assinttica
Ao ver uma expresso como n + 10 ou n2 + 1, pensamos geralmente 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. Esse tipo de anlise chama-se anlise assinttica.
p. 2/35
p. 4/35
p. 5/35
crescem todas com a mesma velocidade e portanto so todas equivalentes. Nesse estudo, as funes so classicadas em ordens; todas as funes de uma mesma ordem so equivalentes. As cinco funes acima, por exemplo, pertencem mesma ordem.
p. 6/35
p. 7/35
p. 8/35
Analise de Algoritmos
p. 9/35
Ordem O
Dadas funes assintoticamente no negativas f e na ordem O de g e g , dizemos que f esta escrevemos f = O (g ) se f (n) c.g (n) para algum c positivo e para todo n sucientemente grande.
p. 10/35
Ordem O
Em outras palavras, f = O (g ) se existe um nmero positivo c e um nmero n0 tais que f (n) c.g (n) para todo n maior que n0 .
p. 11/35
Ordem O - Exemplos
A notao O fornece limites superiores de funes que, por sua vez, correspondem a tempos de execuo de algoritmos.
p. 12/35
Ordem O - Exemplos
A notao O fornece limites superiores de funes que, por sua vez, correspondem a tempos de execuo de algoritmos.
Exemplo 1:
p. 12/35
Ordem O - Exemplos
A notao O fornece limites superiores de funes que, por sua vez, correspondem a tempos de execuo de algoritmos.
Exemplo 1:
p. 12/35
Ordem O - Exemplos
Exemplo 2:
p. 13/35
Ordem O - Exemplos
Exemplo 2:
p. 13/35
Ordem O - Exemplos
Exemplo 2:
2n2 + 3n + 4 2n2 + 3n2 + 4n2 = 9n2 para todo n 1. Portanto, f (n) = O (n2 ).
p. 13/35
Ordem O - Exemplos
Exemplo 3:
2 n
e que
g (n) = 1.
p. 14/35
Ordem O - Exemplos
Exemplo 3:
2 n
e que
p. 14/35
Ordem O - Exemplos
Exemplo 3:
2 n
e que
p. 14/35
Ordem O - Exemplos
Exemplo 4:
Suponha que f (n) = n3 e que g (n) = 200n2 . Ser verdade que f (n) = O (g (n))?
p. 15/35
Ordem O - Exemplos
Exemplo 4:
Suponha que f (n) = n3 e que g (n) = 200n2 . Ser verdade que f (n) = O (g (n))?
Se existem c e n0 tais que f (n) c.g (n), teremos n 200c para todo n n0 . Mas isso absurdo!
p. 15/35
Ordem O - Exemplos
Exemplo 4:
Suponha que f (n) = n3 e que g (n) = 200n2 . Ser verdade que f (n) = O (g (n))?
Se existem c e n0 tais que f (n) c.g (n), teremos n 200c para todo n n0 . Mas isso absurdo! Logo, f (n) = O (g (n)).
p. 15/35
Ordem O - Exerccios
Prove os disprove as armaes: 1. 10n = O (n) 2. 10n2 = O (n) 3. 10n55 = O (2n ) 4. n2 + 200n + 300 = O (n2 ) 5. n2 200n 300 = O (n) 6. 7. 8.
3 2 7 n + 2 2 n 4 = O ( n) 3 2 7 2) n + n 4 = O ( n 2 2 n3 999999n2 1000000
= O ( n2 )
p. 16/35
Ordem O - Exerccios
9. Seja n k o nmero de combinaes de n objetos 2 ). = O ( n tomados k a k . Mostre n 2 Prove os disprove as armaes: 10. 2n+1 = O (2n ) 11. 3n = O (2n ) 12. log2 n = O (log3 n) 13. log3 n = O (log2 n) 14. log2 n = O (n) 15. 100 log n 10n + 2n log n = O (n log n)
p. 17/35
p. 18/35
p. 18/35
p. 18/35
Limite superior
Sabemos assim que a complexidade deste problema no deve superar O (n3 ), uma vez que existe um algoritmo que o resolve com esta complexidade, e dizemos que uma cota superior ou limite superior para este problema O (n3 ).
p. 19/35
Limite superior
Sabemos assim que a complexidade deste problema no deve superar O (n3 ), uma vez que existe um algoritmo que o resolve com esta complexidade, e dizemos que uma cota superior ou limite superior para este problema O (n3 ). A cota superior de um problema pode mudar se algum descobrir um outro algoritmo melhor.
p. 19/35
Limite superior
V. Strassen apresentou em 1969 um algoritmo para multiplicao de matrizes de complexidade O (nlog 7 ) = O (n2.807 ).
p. 20/35
Limite superior
V. Strassen apresentou em 1969 um algoritmo para multiplicao de matrizes de complexidade O (nlog 7 ) = O (n2.807 ). Assim a cota superior para o problema de multiplicao de matrizes passou a ser O (nlog 7 ).
p. 20/35
Limite superior
Em 1990, Coppersmith e Winograd melhoraram esta marca para O (n2.376 );
p. 21/35
Limite superior
Em 1990, Coppersmith e Winograd melhoraram esta marca para O (n2.376 ); Em 2010, A. Stothers apresentou um algoritmo de complexidade O (n2.373 );
p. 21/35
Limite superior
Em 1990, Coppersmith e Winograd melhoraram esta marca para O (n2.376 ); Em 2010, A. Stothers apresentou um algoritmo de complexidade O (n2.373 ); Em 2011, V. Willians melhorou ainda mais esta marca para O (n2.372 ).
p. 21/35
Limite superior
Em 1990, Coppersmith e Winograd melhoraram esta marca para O (n2.376 ); Em 2010, A. Stothers apresentou um algoritmo de complexidade O (n2.373 ); Em 2011, V. Willians melhorou ainda mais esta marca para O (n2.372 ). Portanto, a cota superior atual para o problema da multiplicao de matrizes O (n2.372 ).
p. 21/35
p. 22/35
9s 92 9s 87
1999 Maurice Greene 9s 79 2007 Asafa Powell 2008 Usain Bolt 2009 Usain Bolt 9s 74 9s 72 9s 58
p. 23/35
p. 24/35
p. 24/35
Limite inferior
Para o problema da multiplicao de matrizes quadradas n n, apenas para ler os elementos das duas matrizes de entrada ou para produzir os elementos da matriz produto leva tempo O (n2 ). Assim uma cota inferior trivial (n2 ).
p. 25/35
Algoritmo timo
Se um algoritmo tem uma complexidade igual cota inferior do problema, ele assintoticamente ou simplesmente otimo . otimo
p. 26/35
Analise de Algoritmos
p. 27/35
Ordem
A expresso f = O (g ) tem o mesmo sabor que f g . Agora precisamos de um conceito que tenha o sabor de f g .
p. 28/35
Ordem
Dadas funes assintoticamente no negativas f e na ordem de g e g , dizemos que f esta escrevemos f = (g ) se f (n) c.g (n) para algum c positivo e para todo n sucientemente grande.
p. 29/35
Ordem
Em outras palavras, f = (g ) se existe um nmero positivo c e um nmero n0 tais que f (n) c.g (n) para todo n maior que n0 .
p. 30/35
Ordem
Em outras palavras, f = (g ) se existe um nmero positivo c e um nmero n0 tais que f (n) c.g (n) para todo n maior que n0 . Qual a relao entre O e ?
p. 30/35
Ordem
Em outras palavras, f = (g ) se existe um nmero positivo c e um nmero n0 tais que f (n) c.g (n) para todo n maior que n0 . Qual a relao entre O e ? f = O (g ) g = (f )
p. 30/35
Ordem - Exerccios
1. Seja n k o nmero de combinaes de n objetos 2 ). = ( n tomados k a k . Mostre n 2 2. Prove que 100 log n 10n + 2n log n est em (n log n). 3. verdade que 2n + 1 est em (n)?
p. 31/35
Analise de Algoritmos
p. 32/35
Ordem
Alm dos conceitos que tm o sabor de f g e de f g , precisamos de um que tenha o sabor de f = g .
p. 33/35
Ordem
Dizemos que as funes f e g esto na mesma ordem e escrevemos f = (g ) se f = O (g ) e f = (g ). Em outras palavras, f = (g ) signica que existe nmeros positivos c e d tais que c.g (n) f (n) d.g (n) para todo n sucientemente grande.
p. 34/35
Ordem - Exerccios
Prove ou disprove: 1. 9999n2 = (n2 ) 2. (3/2)n2 + (7/2)n 4 = (n2 ) 3. n2 /1000 999n = (n2 ) 4. log2 n + 1 = (log10 n)
p. 35/35