Crescimento de Funções Notação Assintótica Dado uma entrada grande o bastante, examine somente a ordem de crescimento do tempo de execução. Isto é, como o tempo de execução aumenta com o tamanho da entrada no limite. Usualmente definida somente para tamnho de entradas inteiras. Também consideraremos alguns excesso de notação que serão utilizados. UFES Berilhes B. Garcia
Notação Assintótica Definida em termos de funções cujos domínios são o conjunto dos números naturais. Utilizada para descrever a função tempo de execução no pior caso T(n), usualmente definida somente para tamanhos de entrada interiras. UFES Berilhes B. Garcia
0 < lim [f(n) / g(n)] < Notação- Para uma dada função g(n), nós denotamos por (g(n)) o conjunto de funções (g(n)) = {f(n): existem constantes positivas c1, c2 e n0 tal que 0 c1g(n) f(n) c2g(n), para todo n n0 } Uma função f(n) pertence ao conjunto (g(n)) se existem constantes inteiras positivas c1 e c2 de modo que esta possa ser inserida entre c1g(n) e c2g(n), para valores de n suficientemente grandes. Isto requer que (g(n)) seja assintoticamente não-negativa. Nós dizemos que g(n) é um limite assintótico justo para f(n): 0 < lim [f(n) / g(n)] < n UFES Berilhes B. Garcia
f(n) = (g(n)) c2g(n) f(n) c1g(n) n n0 UFES Berilhes B. Garcia
0 lim [f(n) / g(n)] < Notação-O Para uma dada função g(n), nós denotamos por O(g(n)) o conjunto de funções O(g(n)) = {f(n): existem constantes positivas c e n0 tal que 0 f(n) cg(n), para todo n n0 } Nós podemos dizer que g(n) é um limite superior assintótico para f(n): 0 lim [f(n) / g(n)] < n Em termos de conjuntos, (g(n)) O(g(n)). UFES Berilhes B. Garcia
f(n) = O(g(n)) cg(n) f(n) n n0 UFES Berilhes B. Garcia
Notação- Para uma dada função g(n), nós denotamos por (g(n)) conjunto de funções (g(n)) = {f(n): existem constantes positivas c e n0 tal que 0 cg(n) f(n) para todo n n0 } Nós dizemos que g(n) é um limite inferior assintótico para f(n): 0 < lim [f(n) / g(n)] n Para qualquer duas funções g(n) e f(n), f(n) = (g(n)) se e somente se f(n) = O(g(n)) e f(n) = (g(n)). UFES Berilhes B. Garcia
f(n) = (g(n)) f(n) cg(n) n n0 UFES Berilhes B. Garcia
Notação Assintótica em Equações Utilizada para substituir funções de termos de ordem mais baixa de modo a simplificar equações /expressões Por exemplo, 4n3 + 3n2 + 2n + 1 = 4n3 + 3n2 + (n) = 4n3 + (n2) = (n3) Ou nós podemos fazer o seguinte: 4n3 + 3n2 + 2n + 1 = 4n3 + f(n2) onde f(n2) simplifica a equação UFES Berilhes B. Garcia
Notação-o Para uma dada função g(n), nós denotamos por o(g(n)) o conjunto de funções o(g(n)) = {f(n): para qualqer constante positiva c > 0, existe uma constante n0 tal que 0 f(n) < cg(n), para todo n n0 } f(n) torna-se insignificante com relação à g(n) quando n tende para infinito: lim [f(n) / g(n)] = 0 n Nós podemos dizer que g(n) é um limite superior para f(n) que não é assintoticamente justo. UFES Berilhes B. Garcia
Notação-w Para uma dada função g(n), nós denotamos por w(g(n)) o conjunto de funções w(g(n)) = {f(n): para qualqer constante positiva c > 0, existe uma constante n0 tal 0 cg(n) < f(n) , para todo n n0 } f(n) torna-se arbitrariamente grande com relação à g(n) quando n tende para infinito: lim [f(n) / g(n)] = n Nós dizemos que g(n) é um limite inferior para f(n) que não é assintoticamente justo. UFES Berilhes B. Garcia
Propriedades Transitividade Simetria f(n) = (g(n)) & g(n) = (h(n)) f(n) = (h(n)) f(n) = O(g(n)) & g(n) = O(h(n)) f(n) = O(h(n)) f(n) = (g(n)) & g(n) = (h(n)) f(n) = (h(n)) f(n) = o (g(n)) & g(n) = o (h(n)) f(n) = o (h(n)) f(n) = w(g(n)) & g(n) = w(h(n)) f(n) = w(h(n)) Simetria f(n) = (g(n)) se e somente se g(n) = (f(n)) Simetria transposta f(n) = O(g(n)) )) se e somente se g(n) = (f(n)) f(n) = o(g(n)) )) se e somente se g(n) = w((f(n)) UFES Berilhes B. Garcia
Comparasões de Funções f (n) = O(g(n)) a b f (n) = (g(n)) a b f (n) = (g(n)) a = b f (n) = o (g(n)) a < b f (n) = w (g(n)) a > b UFES Berilhes B. Garcia
Duas Funções que não podem ser comparadas f (n)= n1+ sin n f (n)= n UFES Berilhes B. Garcia
Exemplos A B 5n2 + 100n 3n2 + 2 A (B) log3(n2) log2(n3) A (B) nlg4 3lg n A w(B) lg2n n1/2 A o (B) UFES Berilhes B. Garcia
Exemplos A B 5n2 + 100n 3n2 + 2 A (B) log3(n2) log2(n3) A (B) A (n2), n2 (B) A (B) log3(n2) log2(n3) A (B) logba = logca / logcb; A = 2lgn / lg3, B = 3lgn, A/B =2/(3lg3) nlg4 3lg n A w(B) alog b = blog a; B =3lg n=nlg 3; A/B =nlg(4/3) quando n lg2n n1/2 A o (B) lim ( loga n / nb ) = 0, aqui a = 2 e b = 1/2 A o (B) n UFES Berilhes B. Garcia
Revisão sobre Somatórias Porque nós necessitamos saber isto? Nós necessitamos disto para computar o tempo de execução de um determinado algoritmo. Exemplo: Insertion Sort UFES Berilhes B. Garcia
Revisão sobre Somatórias Série Constantes: b 1 = b - a + 1 i=a Série Quadrática: Para n 0, n i2 = 12 + 22 + … + n2 = (2n3 + 3n2 + n) / 6 i=1 Série Geométrica: Para n 0, ci = c + c2 + … + cn = [c(n+1) - 1] / (c-1)2 Série Geométrica-linear: Para n 0, ici = c + 2c2 + … + ncn = [(n-1)c(n+1) - ncn + c] / (c-1)2 UFES Berilhes B. Garcia