You are on page 1of 20

Home Page

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

Para el Merge-Sort: T (n) = (1) si n = 1 2T (n/2) + (n) si n > 1

La solucin a la relacin de recurrencia es T (n)= (nlg n) o o


Page 2 of 20

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

Usado para establecer cotas superiores e inferiores sobre una recurrencia.


Contents

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 .

T (n) = 2T ( n/2 ) + n 2(c n/2 lg( n/2 )) + n cn lg(n/2) + n

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

Entonces, escoger c = 1, n0 = 1 parece funcionar.

Home Page

Mtodo de Substitucin (Cont.) e o


Falta probar que el caso base funcione: T (1) = 1 c1 lg 1 = 0 falla!! T (2) = 2T (1) + 2 = 4 c2 lg 2 = 2c T (3) = 2T (1) + 3 = 5 c3 lg 3 = 3c lg 3 Entonces si c 2, T (2) = 4 2c lg 2 T (3) = 5 3c lg 3 En conclusin tenemos: si c 2, n0 = 2: T (n) cn lg n, o Cmo adivinar? o n no

Title Page

Contents

Page 4 of 20

No hay estrategia general.


Go Back

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

Entonces se puede proponer T (n) = (n lg n)

Home Page

Mtodo de Substitucin (Cont.) e o


Otra estrategia: Dar cotas superiores e inferiores ms o menos eva identes, e ir anando la solucin. o Por ejemplo: T (n) = 2T ( n/2 ) + n Es evidente que : T (n) = (n), entonces se puede probar que : T (n) = O(n2 ) Ajustar la solucin, entre n y n2 , hasta que se logra n lg n. o Problemas:

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

Mtodo de Substitucin (Cont.) e o


Title Page

Fortalecer la hiptesis: o
Contents

T (n) = O(cn b), Entonces

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

Ojo con las fallitas:


Go Back

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

Mtodo de Substitucin (Cont.) e o


Title 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

T (2m ) = 2T (2m/2 ) + m Sea S(m) = T (2m ):


Page 7 of 20

S(m) = 2S(m/2) + m Entonces

Go Back

S(m) = O(m lg m) T (n) = T (2m ) = S(m) = O(m lg m) = O(lg n lg lg n)

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

= 32 (3T ( n/16 /4 ) + [n/16]) + 3 n/4 +n = 33 T ( n/64 ) + 32 n/16 ) + 3 n/4 +n . . . Entonces

Go Back

Full Screen

T (n) n + 3n/4 + 32 n/16 + 33 n/64 + . . . + 3


lg4 n
Close

lg4 n

(1)

=n
i=0

3 ( )i + 3 4

lg4 n

(1)

Quit

Home Page

Title Page

Mtodo de Iteracin (Cont.) e o


Dos posibilidades :
lg4 n i=0

Contents

3 ( )i = 4

(3) 4

lg4 n +1 3 1 4

= 4(1 ( 3 4
lg4 n +1

lg4 n +1

Entonces T (n) 4n(1 ( 3 4


( lg4 n i=0

) + (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

T (n) 4n + (nlg4 3 ) = 4n + O(n) = O(n)

Close

Se necesita bastante lgebra. a

Quit

Mtodo de Iteracin (Cont.) e o


Home Page

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

Mtodo de Iteracin (Cont.) e o


Entonces T (n) = T (4m ) = S(m) = 4m+1 3m+1 = 4lg4 n+1 3lg4 n+1 = 4n 3 3lg4 n = 4n 3nlg4 3 = O(n) pero, y si n = 4m ??

Page 11 of 20

Go Back

Full Screen

Close

Quit

Mtodo de Iteracin (Cont.) e o


Home Page

Visualizar la iteracin con un rbol de recursin o a o


Title Page

Por ejemplo: T (n) = 2T (n/2) + n2


n2 n T( 2 )
n 2

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

Fig 1: Construccn de un rbol de Recursin o a o


Quit

pues 1

lg n 1 i i=0 ( 2 )

Home Page

Mtodo de Iteracin (Cont.) e o


Otro ejemplo: T (n) = T (n/3) + T (2n/3) + n
n T( n ) 3 T( 2 n)
3

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

Fig 2: Construccn de un rbol de Recursin o a o

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

Por ejemplo en el Merge-Sort: T (n) = 2 T (n/ 2 ) + (n)

Full Screen

f (n)

Close

Ojo! Se omiten techos y Pisos!!

Quit

Home Page

El Mtodo Maestro (Cont.) e


Title 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

. 2. Si f (n) = (nlgb a ) entonces

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

El Mtodo Maestro (Cont.) e


Contents

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

f (n) polinomialmente ms grande que nlgb a y regularidad: a T (n) = O(F (n)).

Go Back

f (n) del mismo orden que nlgb a :


Full Screen

T (n) = (nlgb a lg n). Todos los casos no estn inclu a dos

Close

Quit

Home Page

El Mtodo Maestro (Cont.) e


Title 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

T (n) = (n2 ) T (n) = T (2n/3) + 1

Go Back

a = 1, b = 3 , f (n) = 1 2 nlgb a = n
lg 3 1
2

Full Screen

= n0 = 1

f (n) = 1 = (1) = (nlgb a ) Caso 2


Close

T (n) = (lg n)
Quit

Home Page

Title Page

El Mtodo Maestro (Cont.) e


T (n) = 3T (n/4) + n lg n a = 3, b = 4, f (n) = n lg n nlgb a = nlg4 3 = n0,793 , f (n) = (n) = (nlg4 3+ ), 0, 207 Caso 3, si se cumple la condicin de regularidad, es decir si o 3f (n/4) cf (n)

Contents

Page 18 of 20

3f (n/4) = 3 n lg(n/4) 4
Go Back

= 3 n(lg(n) lg(4)) 4 = 3 n(lg n 3 n 3 n lg n = 3 f (n)) 4 2 4 4 T (n) = (n lg n)

Full Screen

Close

Quit

Home Page

Title Page

Contents

El Mtodo Maestro (Cont.) e


T (n) = 2T (n/2) + n lg n a = 2, b = 2, f (n) = n lg n nlg2 2 n f (n) = (n)(nlgb a )
Page 19 of 20

Caso 3? depende si > 0 : f (n) = (n1+ )?


Go Back

No!:
Full Screen

f (n) nlgb a

n lg n n

= lg n = O(n ), > 0.

Close

Quit

El Mtodo Maestro (Cont.) e


Home Page

Prueba del Teorema Maestro


Title Page

Intuitivamente (rbol de recursin) a o

Contents

f(n)

a f(n/b)

f(n) af(n/b)

f(n/b) a lgb n

f(n/b)

f(n/b 2) f(n/b 2) f(n/b 2) . . . . . . . . . (1) (1) lgbn a . . .

Page 20 of 20

f(n/b 2) f(n/b 2) f(n/b 2) . . . . . . . . . (1) lg a


b

a f(n/b ) . . . lg a ( n b ) lgbn1 lgba ( n ) + a i f(n/bi ) i=0

(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

Si f (n) = (nlgb a+ ) y af (n/b) cf (n), c < 1, n k


lgb n1 i a f (n/bi ) i=0

= (f (n))

. . .

You might also like