Professional Documents
Culture Documents
Relao de Recorrncia Relao de Recorrncia Derivando recorrncia Derivando recorrncia Resolvendo recorrncia Resolvendo recorrncia Anlise de algoritmos recursivos Anlise de algoritmos recursivos
Introduo
A anlise de um algoritmo recursivo requer a resoluo de A anlise de um algoritmo recursivo requer a resoluo de uma recorrncia. uma recorrncia. Uma recorrncia um algoritmo recursivo que calcula o valor Uma recorrncia um algoritmo recursivo que calcula o valor de uma funo em um ponto dado. de uma funo em um ponto dado. Uma recorrncia define T(n) em termos de T(n-1), T(n-2), etc. Uma recorrncia define T(n) em termos de T(n-1), T(n-2), etc. Exemplo: Exemplo: T(1) = 1 T(1) = 1 T(n) = T(n 1) + 3n + 2 ,, para n2 T(n) = T(n 1) + 3n + 2 para n2
Introduo
Exemplo 2: Quantos pedaos com n cortes? Exemplo 2: Quantos pedaos com n cortes?
Cortes: 1 Pedaos: 2
Introduo
Exemplo 2: Quantos pedaos com n cortes? Exemplo 2: Quantos pedaos com n cortes?
Introduo
Exemplo 2: Quantos pedaos com n cortes? Exemplo 2: Quantos pedaos com n cortes?
Cortes: 1 Pedaos: 2
Cortes: 2 Pedaos: 4
Cortes: 1 Pedaos: 2
Cortes: 2 Pedaos: 4
Cortes: 3 Pedaos: 7
Cortes: 4 Pedaos: 11
Introduo
possvel observar que o n-simo corte cria n novos pedaos. possvel observar que o n-simo corte cria n novos pedaos. Logo, o nmero total de pedaos obtido com n cortes, Logo, o nmero total de pedaos obtido com n cortes, denotado por P(n), dado pela seguinte relao de denotado por P(n), dado pela seguinte relao de recorrncia: recorrncia: P(1) = 2 P(1) = 2 P(n) = P(n 1) + n, para n2 P(n) = P(n 1) + n, para n2
n T(n/2) T(n/2)
T(n/4) T(n/4)
T(1)
n n/2 h = log n n/4 n/4 n/4 n/4 n/2 h = log n n/4 n/4 n/2
n 2.n/2= n 4.n/4= n
n 2.n/2= n 4.n/4= n
n folhas
n.1= n
n folhas
n.1= n
(log n).n
Jorge Figueiredo, DSC/UFCG Jorge Figueiredo, DSC/UFCG
Mtodo do Desdobramento
Esse mtodo o da rvore de recurso, representado de Esse mtodo o da rvore de recurso, representado de forma algbrica. forma algbrica. Consiste em: Consiste em: Usar (algumas poucas) substituies repetidamente at Usar (algumas poucas) substituies repetidamente at encontrar um padro. encontrar um padro. Escrever uma frmula em termos de n e o nmero de Escrever uma frmula em termos de n e o nmero de substituies i. substituies i. Escolher ii de tal forma que todas as referncias a T() Escolher de tal forma que todas as referncias a T() sejam referncias ao caso base. sejam referncias ao caso base. Resolver a frmula. Resolver a frmula.
Mtodo Master
Teorema que resolve quase todas as recorrncias. Teorema que resolve quase todas as recorrncias. T(n) da forma a.T(n/b) + f(n), a,b > 1 T(n) da forma a.T(n/b) + f(n), a,b > 1 Casos: Casos: ab1. Se f(n) O(nlog ab-), para algum > 0, temos que: 1. Se f(n) O(nlog ), para algum > 0, temos que: ab T(n) (nlog ab). T(n) (nlog ). logaab temos que: 2. Se f(n) O(n log b), temos que: 2. Se f(n) O(n ), ab T(n) (nlog ab.log n). T(n) (nlog .log n). ab 3. Se f(n) O(nlog ab++), para algum > 0 e se a.f(n/b)c.f(n) ), para algum > 0 e se a.f(n/b)c.f(n) 3. Se f(n) O(nlog para algum c > 0 e n suficientemente grande, temos que: para algum c > 0 e n suficientemente grande, temos que: T(n) (f(n)). T(n) (f(n)).