Professional Documents
Culture Documents
Title Page
Contents
Ecuaciones de Recurrencia
Profesor: Julio Cesar Lopez
jlopez@eisc.univalle.edu.co
4 de septiembre de 2003
Page 1 of 20
Go Back
Full Screen
Close
Quit
Home Page
Recurrencia
Title Page
Ecuacin o desigualdad que describe una funcin en trminos de sus o o e valores sobre entradas de menor tamao. n
Contents
Existen 4 mtodos para resolver recurrencias : e Mtodo de Substitucin: Adivinar y probar por induccin. e o o
Go Back
Mtodo de Iteracin: Convertir recurrencia en el clculo de una e o a sumatoria. Mtodo Maestro: Mtodo general para recurrencias de la forma e e T (n) = aT (n/b) + f (n), a 1, b > 1. Funciones Generatr ces (Matemticas Discretas). a
Full Screen
Close
Quit
Home Page
Mtodo de Substitucin e o
Adivinar la respuesta y probarla por induccin. o
Title Page
Ejemplo: T (n) = 2T n/2 +n T (1) = cte Adivinar: T (n) = O(n lg n) Probar: (Existen c, n0 ) T (n) cn lg n, La idea es probarlo por induccin: o Suponemos que T ( n/2 ) c n/2 lg[(n/2)],
Page 3 of 20
n no
n n0 .
Go Back
Full Screen
= cn lg n cn lg 2 + n
Close
= cn lg n cn + n cn lg , si cn n, es decir c 1
Quit
Home Page
Title Page
Contents
Page 4 of 20
Experiencia y creatividad. Si una recurrencia es parecida a una que ha visto antes, entonces escoja una solucin similar. o Por ejemplo:
Full Screen
Close
T (n) = 2T ( n/2 +17) + n Sin embargo T ( n/2 +17) T ( n/2 ) para n grande.
Quit
Home Page
Title Page
Contents
Page 5 of 20
A veces lo adivinado est bien, pero no funciona la induccin!! a o Por ejemplo: T (n) = T ( n/2 ) + T ( n/2 ) + 1
Go Back
Adivinemos: T (n) = O(n) Probar: Existen c, n0 ,: T (n) cn, cin ser o a; T (n) = T ( n/2 ) + T ( n/2 ) + 1 c n/2 +c n/2 +1 = cn + 1 cn imposible!! Sin embargo la solucin est bien !! o a n no El paso de induc-
Full Screen
Close
Quit
Home Page
Fortalecer la hiptesis: o
Contents
b>0
T (n) (c n/2 b) + c n/2 b + 1 = cn 2b + 1 cn, si b 1 2 Faltar mostrar que la adivinanza funciona en el caso de base. a
Page 6 of 20
T (n) = 2T ( n/2 ) + n T (n) = O(n) T (n) 2(c n/2 ) + n cn + n = O(n) bar: T (n) cn, No T (n) O(n)!! error!! Se deb proa
Full Screen
Close
Quit
Home Page
Cambio de variables: A veces un cambio de variable, convierte una recurrencia desconocida en una conocida. Por ejemplo: T (n) = 2T ( Sea m = lg n n ) + lg n
Contents
Go Back
Full Screen
Close
T (n) = O(lg n lg lg n)
Quit
Home Page
Mtodo de Iteracin e o
Title Page
Expandir la recurrencia y expresarla como una suma de trminos e que dependen solo de n y las condiciones iniciales. Por ejemplo: T (n) = 3T ( n/4 ) + n = 3(3T ( n/4 /4 )+ n/4 ) + n = 32 T ( n/16 ) + 3 n/4 +n
Contents
Page 8 of 20
Go Back
Full Screen
lg4 n
(1)
=n
i=0
3 ( )i + 3 4
lg4 n
(1)
Quit
Home Page
Title Page
Contents
3 ( )i = 4
(3) 4
lg4 n +1 3 1 4
= 4(1 ( 3 4
lg4 n +1
lg4 n +1
) + (nlg4 3 ) = O(n)
3 ( )i 4
Page 9 of 20
3 1 ( )i = 4 1 i=0
3 4
=4
Entonces:
Go Back
Full Screen
Close
Quit
Title Page
Otra idea para resolver la ecuacin o T (n) = 3T ( n/4 ) + n Sea n = 4m T (4m ) = 3T (4m1 ) + 4m Ahora, sea S(m) = T (4m ) : S(m) = 3S(m 1) + 4m
Contents
= 3(3S(m 2) + 4m1 ) + 4m = 32 S(m 2) + 3 4m1 + 4m = 32 (3S(m 3) + 4m2 ) + 3 4m1 + 4m = 33 S(m 3) + 32 4m2 + 3 4m1 + 4m . . . = 3m S(0) + 3m1 4 + 3m2 42 + . . . + 3 4m1 + 4m
Go Back
Page 10 of 20
=
i=0
Full Screen
mi i
4 =
i=0
4 3m ( )i 3
= 3m
Close
i=0
4 ( )i 3 = 3m+1 (( 4 )m+1 1) 3
= 3m (
Quit
( 4 )m+1 1 3 ) 4 1 3
= 4m+1 3m+1
Home Page
Title Page
Contents
Page 11 of 20
Go Back
Full Screen
Close
Quit
Contents
( n)2 2 T( 2 )
n
( n)2 2
T( 4 ) T( 4 ) T( 4 ) T( 4 )
n
Page 12 of 20
n2 ( n)2 2
1 2
( n)2 2
n2
Go Back
lg n
( 4)
( 4)
( 4)
( 4)
2 1 4
n2
Full Screen
. . .
. . . . . .
. . . . . .
. . . . . .
. . .
lg n i=0
. . .
Close
2 1 2i
= n2
lg n 1 2i
= ( n2 )
i=0
pues 1
lg n 1 i i=0 ( 2 )
Home Page
Title Page
Contents
n
n 3 2 n 3
T(
n 9
) T( 2 n ) T(
9
2n 9
) T( 4 n )
9
. . .
Page 13 of 20
n 3
n
2 n 3
n n
Go Back
n 2n 9 2n 9 4 n 9 9
lg3 n
2
Full Screen
n 27 2 n 27 2 n 27 4 n 27 4 n 2 n 4 n 27 27 27 8 n 27
n . . . n
Close
. . .
. . .
. . .
. . . . . .
. . . . . .
. . .
o(nlgn)
Quit
Home Page
Title Page
El Mtodo Maestro e
Contents
Receta para resolver recurrencias de la forma T (n) = aT (n/b) + f (n), a 1, b > 1 tipicas de algoritmos de dividir conquistar: Dividir problema de tamao n en a subproblemas de tamao n n n/b. Dividir y combinar = f (n)
Go Back
Page 14 of 20
Full Screen
f (n)
Close
Quit
Home Page
Contents
Teorema; Sea a 1, b > 1, constantes, f (n) una funcin y T (n) o denida asi: T (n) = aT (n/b) + f (n) Entonces, T (n) puede ser acotada asintticamente como sigue: o 1. Si f (n) = O(nlgb a ), para algn > 0, entonces u T (n) = (nlgb a )
Page 15 of 20
Go Back
T (n) = (nlgb a lg n) 3. Si f (n) = (nlgb a+ ) para algn > o u Condicin y si af (n/b) cf (n) para alguna o de reguconstante c > 1 y n no laridad Entonces T (n) = (f (n))
Full Screen
Close
Quit
Home Page
Title Page
Anlisis intuitivo: a Comparacin de f (n) vs nlgb a o f (n) polinomialmente ms pequea que nlgb a : a n T (n) = (nlgb a ).
Page 16 of 20
Go Back
Close
Quit
Home Page
Usando el teorema:
Contents
T (n) = 9T (n/3) + n a = 9, b = 3. f (n) = n nlgb a = nlg3 9 = n2 Tomando = 1 : f (n) = O(n) = O(n21 ) = O(nlgb a ) Caso 1
Page 17 of 20
Go Back
a = 1, b = 3 , f (n) = 1 2 nlgb a = n
lg 3 1
2
Full Screen
= n0 = 1
T (n) = (lg n)
Quit
Home Page
Title Page
Contents
Page 18 of 20
3f (n/4) = 3 n lg(n/4) 4
Go Back
Full Screen
Close
Quit
Home Page
Title Page
Contents
No!:
Full Screen
f (n) nlgb a
n lg n n
= lg n = O(n ), > 0.
Close
Quit
Contents
f(n)
a f(n/b)
f(n) af(n/b)
f(n/b) a lgb n
f(n/b)
Page 20 of 20
(1)
Go Back
Full Screen
Fig 3: Generacin de un Arbol recursivo para o T (n) = aT (n/b) + f (n) Si f (n) = O(nlgb a ), Si f (n) = (nlgb a ),
lgb n1 i a f (n/bi ) = O(nlgb a ) i=0 lgb n1) i a f (n/bi ) = (nlgb a . lg n) i=0
Close
Quit
= (f (n))
. . .