A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Complexidade Onde c, c1, c2 é uma constante. f(x) = O(g(x)) se existe f(x) = x0 f(x) = Ω (g(x)) se existe f(x) >= c*g(x) para x >= x0 f(x) = θ (g(x)) se.

Apresentações semelhantes


Apresentação em tema: "Complexidade Onde c, c1, c2 é uma constante. f(x) = O(g(x)) se existe f(x) = x0 f(x) = Ω (g(x)) se existe f(x) >= c*g(x) para x >= x0 f(x) = θ (g(x)) se."— Transcrição da apresentação:

1 Complexidade Onde c, c1, c2 é uma constante. f(x) = O(g(x)) se existe f(x) = x0 f(x) = Ω (g(x)) se existe f(x) >= c*g(x) para x >= x0 f(x) = θ (g(x)) se existe f(x) <= c2*g(x) f(x) >= c1*g(x) para x >= x0

2 Prova 2009/2 Alguns passos importantes eliminar constantes aditivas e multiplicativas se 2x² >= 1000x*c para x > x0 então eu posso garantir que x² >= x*c1 Basta escolher as constantes c e c1 corretamente. Retirar termos semelhantes em lados opostos: Se x²*log (x) >= c*x*log(x)  x² >= c*x  x >= 1*c para x >= x0 Por ultimo encontrar um valor para c que torne essa equação verdade Se não houver c que satisfaça então a premissa inicial e falsa.

3 Prova a)provar que 10n <= c*n*log(n). n <= c*n*log(n)  1 <= c*log(n) Se você quer provar que isso e verdade entao escolha um c qualquer que torne isso verdade um n0 Não precisa se preocupar com a base do log suponha base 2 log 2 = 1, caso base, log (n+1) > log(n) para todo n > 2 prova por indução que é verdadeiro

4 Para provar que log(n) = θ(log (n^1000)) log(n) <= c2*(log (n^1000)) log(n) >= c1*(log (n^1000)) (log n^1000) = 1000*log(n)viro constante multiplicativa log(n) <= c2”*log(n)verdade! (c2” = 2000) log(n) >= c1”*log(n)verdade! (c1” = 1/10000) Provado ! Que e verdadeiro Se quisesse poderia também eliminar os termos semelhantes 1 <= c2” 1 >= c1” se existe qualquer valor de c1” e c2” que torna isso verdade então e verdadeiro!

5 n³ = Ω (64log(n)) n³ >= c*64log(n) n³ >= c”*log(n)eliminei constantes se eu provar isso n => log(n) será verdade que n³ >= log(n) n => log(n)  log (2^n) >= log(n)  2^n >= n Temos que provar que 2^n >= n é verdade então Prova por indução caso base 2^0 >= 0 verdade; Indução 2^(n+1) >= n+1. 2^(n+1) >= n+1  2*2^n >= n+1  2^n + 2^n >= n+1. Onde 2^n >= n (caso base da indução). E sabemos que 2^n >= 1;(propriedade de exponenciação). Provamos que 2^n >= n então temos que n>= log(n) por transitividade temos que n^3 >= log(n). n^3 >= c"*log(n) está provado que e verdade !

6 Prova a) f(n) = O (g(n)) => g(n) = O (f(n)) b)f(n) = Θ (f(n/2)) a)Provar por contradição suponha f(n) = x e g(n) = x² f(n) = O (g(n)) verdade! g(n) = O (f(n)) falso! Provado! Que é falso.

7 b)f(n) = Θ (f(n/2)) Provar por contradição, Suponha f(n) = 2^n Preciso provar que 2^n <= c2*2^(n/2) 2^n >= c1*2^(n/2) 2^n <= c2*2^(n/2)  (2^n)/(2^(n/2) <= c2  2^(n/2) <= c2 Então eu tenho que 2^(n/2) <= c2 isso é falso Então esta provado por contradição que é falso


Carregar ppt "Complexidade Onde c, c1, c2 é uma constante. f(x) = O(g(x)) se existe f(x) = x0 f(x) = Ω (g(x)) se existe f(x) >= c*g(x) para x >= x0 f(x) = θ (g(x)) se."

Apresentações semelhantes


Anúncios Google