Resolviendo Recurrencias
Mauro Jaskelioff
16/03/2015
An´alisis de Algoritmos
Queremos poder evaluar la performance de algoritmos.
Para esto utilizamos
Notaci´on Asint´otica
Modelo de Costo basado en Lenguaje
Analizamos trabajo (W ) y profundidad (S)
Al plantear el trabajo y profundidad de algoritmos recursivos
surgen recurrencias.
¿C´omo resolver las recurrencias?
Veremos varias t´ecnicas...
Substituci´on: Adivinando la soluci´on
Probamos los siguientes pasos
1. Adivinamos la forma de la soluci´on.
2. Probamos que es correcta usando inducci´on matem´atica.
Ejemplo (recordar mergesort)
W (0) = c0
W (1) = c1
W (n) = 2W ( n/2 ) + c2n
Adivinamos que W (n) ∈ O(n lg n)
Probamos que W (n) cn lg n.
Reemplazamos nuestra soluci´on en la recurrencia
W (n) 2(c n/2 lg n/2 ) + c2n
cn lg(n/2) + c2n
= cn lg n − cn lg 2 + c2n
= cn lg n − cn + c2n
cn lg n siempre y cuando c c2.
Faltan chequear los casos bases. ¿W (0) c · 0 · lg 0?
¿W (1) c · 1 · lg 1?
La notaci´on O s´olo requiere W (n) cn lg n para n N.
Tomamos N = 2
W (2) = 2W (1) + 2c2 = 2c1 + 2c2 c · 2 lg 2 = 2c
W (3) = 2W (1) + 3c2 = 2c1 + 3c2 c · 3 lg 3
Elegimos c suficientemente grande.
´Arboles de recurrencia
Una t´ecnica general para resolver recurrencias son los ´arboles
de recurrencia
Los ilustramos usando la recurrencia
T(1) = c1
T(n) = 3T(n/4) + cn2
Hacemos un ´arbol que en su ra´ız tiene el costo para el n
inicial, con ramas indicando cada una de las llamadas
recursivas.
´Arboles de recurrencia (cont.)
Las ramas correspondientes a las llamadas recursivas se
expanden, ahora tienen el costo correspondiente a cada
llamada y generan nuevas hojas.
´Arboles de recurrencia (cont.)
Se sigue expandiendo el ´arbol hasta llegar a un caso base.
En cada nivel se suma el total de operaciones por nivel.
El costo total es la suma de todos los niveles.
´Arboles de recurrencia (cont.)
La suma obtenida se manipula algebraicamente para llegar al
resultado.
T(n) = cn2
+
3
16
cn2
+
3
16
2
cn2
+ · · · +
3
16
log4 n−1
cn2
+ knlog4 3
=
log4 n−1
i=0
3
16
i
cn2
+ knlog4 3
=
(3/16)log4 n
− 1
(3/16) − 1
cn2
+ knlog4 3
∈ O(n2
)
Si somos prolijos, el m´etodo nos da una soluci´on exacta.
Si no, al menos nos da un candidato para usar el m´etodo de
substituci´on.
Ejercicio
Verificar usando el m´etodo de la substituci´on que la cota obtenida
es ajustada. Es decir, probar que
T(n) = 3T(n/4) + cn2
∈ Θ(n2
)
Nota: De aqu´ı en m´as, si no se menciona caso base,
suponerlo(s) constante(s).
Simplificando Recurrencias
Para el an´alisis de mergesort, nos olvidamos de los · y los ·
¿Cuando es v´alido hacer estas aproximaciones?
Si n = bk entonces n/b = n/b = n/b .
Notar que no alcanza que n sea m´ultiplo de b.
Podr´ıa suceder que la soluci´on asint´otica para entradas
n = bk sea la soluci´on para cualquier entrada.
Funciones suaves
Una funci´on f : N → R+ es eventualmente no decreciente si
∃ N ∈ N. f (n) f (n + 1) para todo n N
Una funci´on f : N → R+ es b-suave (smooth) si
1. es eventualmente no decreciente y
2. f (bn) ∈ O(f (n)).
Una funci´on es suave si es b-suave para todo b.
Propiedad: si f es b-suave para un b 2, entonces es suave
para todo b.
Ejemplos de funciones suaves: n2, nr (para todo r), n lg n.
Ejemplos de funciones no suaves: nlg n, 2n, n!.
Ejercicio: verificar que n2 es suave y que 2n no lo es.
Regla de suavidad
Regla de suavidad: Sea f suave y sea g eventualmente no
decreciente. Para todo b 2,
g(bk
) ∈ Θ(f (bk
)) ⇒ g(n) ∈ Θ(f (n))
Ejemplo de uso: Considere la siguiente recurrencia
W (1) = c
W (n) = W ( n/2 ) + W ( n/2 ) + kn
Si s´olo consideramos potencias de 2 obtenemos
W (1) = c
W (n) = 2W (n/2) + kn
que es O(n lg n). Como n lg n es suave, W (n) ∈ O(n lg n).
Ecuaci´on Caracter´ıstica
M´etodo sistem´atico.
Permite resolver recurrencias de forma exacta.
Limitado a ciertas formas de recurrencias.
Muy potente.
Recurrencias Lineales Homog´eneas
Las recurrencias lineales homog´eneas a coeficientes constantes
son de la forma:
a0T(n) + a1T(n − 1) + · · · + akT(n − k) = 0
Son lineales ya que no contienen t´erminos como
T(n − i)T(n − j), T2
(n − 1).
Son homog´eneas porque la combinaci´on lineal de los T(n − i)
es igual a 0.
A coeficientes constantes porque los ai son constantes.
Ejemplo: F(n) = F(n − 1) + F(n − 2).
Se puede reescribir como
F(n)−F(n−1)−F(n−2) = 0 k = 2, a0 = 1, a1 = −1, a2 = −1
Soluci´on general
Dada la recurrencia
a0T(n) + a1T(n − 1) + · · · + akT(n − k) = 0
definimos su polinomio caracter´ıstico como
p(x) = a0xk
+ a1xk−1
+ · · · + ak
Toda soluci´on de ser´a de la forma
T(n) =
k
i=1
ci rn
i
donde los ri son las ra´ıces del polinomio, bajo el supuesto que
todas las ri son distintas (no hay ra´ıces m´ultiples).
Las constantes c1, c2, . . . , ck se obtienen de k condiciones
iniciales.
Ejemplo : Fibonacci
F (0) = 0
F (1) = 1
F (n) = F (n − 1) + F (n − 2)
La recurrencia es F(n) − F(n − 1) − F(n − 2) = 0 y su
polinomio caracter´ıstico es x2 − x − 1.
Las ra´ıces son r1 = 1+
√
5
2 y r2 = 1−
√
5
2
La soluci´on general es F(n) = c1rn
1 + c2rn
2 .
0 = F(0) = c1 + c2 1 = F(1) = r1c1 + r2c2
c1 + c2 = 0
r1c1 + r2c2 = 1
⇒
c1 = 1√
5
c2 = − 1√
5
Por lo tanto F(n) = 1√
5
1+
√
5
2
n
− 1−
√
5
2
n
(Moivre)
Ejercicio
Resolver la recurrencia
W (0) = 0
W (1) = 5
W (n) = 3 W (n − 1) + 4 W (n − 2)
W (n) − 3W (n − 1) − 4W (n − 2) = 0
El polinomio caracter´ıstico es x2 −3x −4 r1 = −1 r2 = 4
La soluci´on es de la forma W (n) = c1(−1)n + c24n
El sistema de ecuaciones dado por las condicionales iniciales es
c1 + c2 = 0
−c1 + 4c2 = 5
Resolviendo, obtenemos c1 = −1 y c2 = 1.
Por lo tanto W (n) = 4n − (−1)n
Ra´ıces M´ultiples
¿Qu´e sucede cuando hay ra´ıces m´ultiples?
El polinomio caracter´ıstico p(x) = a0xk + a1xk−1 + · · · + ak
tendr´a
q ra´ıces distintas r1, r2, . . . , rq.
cada una con multiplicidad m1, m2, . . . , mq.
Las soluciones ser´an de la forma
T(n) =
q
i=1
mi −1
j=0
cij nj
rn
i
Las constantes cij se determinan con las condiciones iniciales.
Ejemplo
S (0) = 0
S (1) = 1
S (2) = 2
S (n) = 5 S (n − 1) − 8 S (n − 2) + 4 S (n − 3)
Reescribimos la recurrencia como
S(n) − 5S(n − 1) + 8S(n − 2) − 4S(n − 3) = 0
El polinomio caracter´ıstico es
x3 − 5x2 + 8x − 4 = (x − 1)(x − 2)2
Las ra´ıces son r1 = 1 con multiplicidad 1 y r2 = 2 con
multiplicidad 2
La soluci´on general es S(n) = c11n + c22n + c3n2n
Ejemplo (cont.)
La soluci´on general es S(n) = c11n + c22n + c3n2n
Las condiciones iniciales nos dan
c1 + c2 = 0 n = 0
c1 + 2c2 + 2c3 = 1 n = 1
c1 + 4c2 + 8c3 = 2 n = 2
c1 = −2, c2 = 2, c3 = −1
2
La soluci´on queda
S(n) = 2n+1
− n2n−1
− 2
Recurrencias Lineales No Homog´eneas
La soluci´on de recurrencias lineales se complica cuando la
recurrencia no es homog´enea.
Consideraremos recurrencias no homog´eneas con la siguiente
forma
a0T(n)+a1T(n−1)+· · ·+akT(n−k) = bn
1p1(n)+bn
2p2(n)+. . .
Las bi son constantes distintas.
Cada pi es un polinomio de grado di .
Estas recurrencias se resuelven usando el siguiente polinomio
caracter´ıstico
(a0xk
+ a1xk−1
+ · · · + ak)(x − b1)d1+1
(x − b2)d2+1
+ . . .
Luego, procedemos como en el caso homog´eneo.
Ejemplo
T (0) = 0
T (n) = 2 T (n − 1) + n + 2n
La recurrencia se puede reescribir como
T(n) − 2T(n − 1) = n + 2n
que con b1 = 1, p1(n) = n, b2 = 2, p2(n) = 1 tiene la forma
adecuada.
d1 = 1 y d2 = 0, por lo que el polinomio caracter´ıstico es
(x − 2)(x − 1)2
(x − 2)
r1 = 1 y r2 = 2, ambas con multiplicidad 2.
Por lo tanto las soluciones ser´an de la forma
T(n) = c11n
+ c2n1n
+ c32n
+ c4n2n
Ejercicio
T (0) = 1
T (n) = 3 T (n − 1) + 2n
Reescribimos la recurrencia como T(n) − 3T(n − 1) = 2n.
(b1 = 2, p1(n) = 1, d1 = 0)
El polinomio caracter´ıstico es (x − 3)(x − 2)
Las ra´ıces son 3 y 2 con multiplicidad 1.
Las soluciones son de la forma T(n) = c13n + c22n.
Determinamos las constantes c1 = 3 y c2 = −2.
La soluci´on final es T(n) = 3n+1 − 2n+1.
Cambio de Variable
Dada la recurrencia
T(n) =
1 si n = 1
3T(n/2) + n si n > 1
Definimos una nueva recurrencia T (i) = T(2i ).
O sea
T (i) =
1 si i = 0
3T (i − 1) + 2i si i 1
T (i) = 3i+1 + 2i+1.
T (i) = T(2i ) ⇔ T(n) = T (lg n) para n potencia de 2!
Si n es potencia de 2, T(n) = T (lg n) = 3 · nlg 3 − 2n
T(n) ∈ Θ(nlg 3
) si n potencia de 2
Pero nlg 3 es suave y T(n) creciente ⇒ T(n) ∈ Θ(nlg 3)
Ejercicio
T(0) = k
T(n) = 2T(n/2) + n lg n
T (i) = T(2i ) = 2T(2i−1) + i2i = 2T (i − 1) + i2i
T (i) − 2T (i − 1) = i2i , con pol. car.
(x − 2)(x − 2)2 = (x − 2)3 (ra´ız 2 con multiplicidad 3)
T (i) = c12i + c2i2i + c3i22i
T(n) = c1n + c2n lg n + c3n lg2
n (para n potencia de 2)
n lg n = (c2 − c3)n + 2c3n lg n ⇒ c2 = c3 = 1
2
T(n) ∈ Θ(n lg2
n) para n potencia de 2.
n lg2
n suave y T(n) creciente ⇒ T(n) ∈ Θ(n lg2
n)
Resolviendo recurrencias
Las recurrencias que aparecen en algoritmos
“Divide & Conquer” usualmente tienen la forma:
T(n) = aT(n/b) + f (n)
En general, podemos obtener el orden de estas recurrencias
directamente usando una resoluci´on general.
“El Teorema Maestro”
El Teorema Maestro
Dados a 1 y b > 1 y la recurrencia
T(n) = aT(n/b) + f (n) ,
entonces
T(n) ∈



Θ(nlgb a) si ∃ > 0. f (n) ∈ O(nlgb a− )
Θ(nlgb a lg n) si f (n) ∈ Θ(nlgb a)
Θ(f (n))
si ∃ > 0. f (n) = Ω(nlgb a+ )
y ∃c < 1, N ∈ N. ∀n > N.
af (n/b) cf (n)
Para W (n) = 2W ( n/2 ) + c2n estamos en el 2do caso ya que
lg2 2 = 1 y g(n) ∈ Θ(n1), y por lo tanto W (n) = Θ(n lg n)
Comentarios acerca del Teorema Maestro
Los casos se deciden comparando f (n) y nlgb a.
Caso 1: nlgb a
es mas grande.
Caso 2: f (n) y nlgb a
tienen el mismo orden.
Caso 3: f (n) es mas grande.
En realidad no basta con que una sea mas grande que la otra,
sino que debe serlo polinomialmente.
f (n) = n lg n no es polinomialmente mas grande que g(n) = n.
Los tres casos no cubren todas las posibilidades
En la pr´actica van a probar una versi´on (levemente) menos
general del teorema maestro.
Resumen
Resoluci´on de recurrencias usando:
Substituci´on
´Arbol de recurrencias.
Regla de suavidad
Ecuaci´on caracter´ıstica
Teorema Maestro
Referencias
Introduction to Algorithms. Thomas H. Cormen, Charles E.
Leiserson, Ronald L. Rivest, Clifford Stein
Fundamentals of Algorithmics. Gilles Brassard, Paul Bratley

Recurrencias

  • 1.
  • 2.
    An´alisis de Algoritmos Queremospoder evaluar la performance de algoritmos. Para esto utilizamos Notaci´on Asint´otica Modelo de Costo basado en Lenguaje Analizamos trabajo (W ) y profundidad (S) Al plantear el trabajo y profundidad de algoritmos recursivos surgen recurrencias. ¿C´omo resolver las recurrencias? Veremos varias t´ecnicas...
  • 3.
    Substituci´on: Adivinando lasoluci´on Probamos los siguientes pasos 1. Adivinamos la forma de la soluci´on. 2. Probamos que es correcta usando inducci´on matem´atica. Ejemplo (recordar mergesort) W (0) = c0 W (1) = c1 W (n) = 2W ( n/2 ) + c2n Adivinamos que W (n) ∈ O(n lg n) Probamos que W (n) cn lg n.
  • 4.
    Reemplazamos nuestra soluci´onen la recurrencia W (n) 2(c n/2 lg n/2 ) + c2n cn lg(n/2) + c2n = cn lg n − cn lg 2 + c2n = cn lg n − cn + c2n cn lg n siempre y cuando c c2. Faltan chequear los casos bases. ¿W (0) c · 0 · lg 0? ¿W (1) c · 1 · lg 1? La notaci´on O s´olo requiere W (n) cn lg n para n N. Tomamos N = 2 W (2) = 2W (1) + 2c2 = 2c1 + 2c2 c · 2 lg 2 = 2c W (3) = 2W (1) + 3c2 = 2c1 + 3c2 c · 3 lg 3 Elegimos c suficientemente grande.
  • 5.
    ´Arboles de recurrencia Unat´ecnica general para resolver recurrencias son los ´arboles de recurrencia Los ilustramos usando la recurrencia T(1) = c1 T(n) = 3T(n/4) + cn2 Hacemos un ´arbol que en su ra´ız tiene el costo para el n inicial, con ramas indicando cada una de las llamadas recursivas.
  • 6.
    ´Arboles de recurrencia(cont.) Las ramas correspondientes a las llamadas recursivas se expanden, ahora tienen el costo correspondiente a cada llamada y generan nuevas hojas.
  • 7.
    ´Arboles de recurrencia(cont.) Se sigue expandiendo el ´arbol hasta llegar a un caso base. En cada nivel se suma el total de operaciones por nivel. El costo total es la suma de todos los niveles.
  • 8.
    ´Arboles de recurrencia(cont.) La suma obtenida se manipula algebraicamente para llegar al resultado. T(n) = cn2 + 3 16 cn2 + 3 16 2 cn2 + · · · + 3 16 log4 n−1 cn2 + knlog4 3 = log4 n−1 i=0 3 16 i cn2 + knlog4 3 = (3/16)log4 n − 1 (3/16) − 1 cn2 + knlog4 3 ∈ O(n2 ) Si somos prolijos, el m´etodo nos da una soluci´on exacta. Si no, al menos nos da un candidato para usar el m´etodo de substituci´on.
  • 9.
    Ejercicio Verificar usando elm´etodo de la substituci´on que la cota obtenida es ajustada. Es decir, probar que T(n) = 3T(n/4) + cn2 ∈ Θ(n2 ) Nota: De aqu´ı en m´as, si no se menciona caso base, suponerlo(s) constante(s).
  • 10.
    Simplificando Recurrencias Para elan´alisis de mergesort, nos olvidamos de los · y los · ¿Cuando es v´alido hacer estas aproximaciones? Si n = bk entonces n/b = n/b = n/b . Notar que no alcanza que n sea m´ultiplo de b. Podr´ıa suceder que la soluci´on asint´otica para entradas n = bk sea la soluci´on para cualquier entrada.
  • 11.
    Funciones suaves Una funci´onf : N → R+ es eventualmente no decreciente si ∃ N ∈ N. f (n) f (n + 1) para todo n N Una funci´on f : N → R+ es b-suave (smooth) si 1. es eventualmente no decreciente y 2. f (bn) ∈ O(f (n)). Una funci´on es suave si es b-suave para todo b. Propiedad: si f es b-suave para un b 2, entonces es suave para todo b. Ejemplos de funciones suaves: n2, nr (para todo r), n lg n. Ejemplos de funciones no suaves: nlg n, 2n, n!. Ejercicio: verificar que n2 es suave y que 2n no lo es.
  • 12.
    Regla de suavidad Reglade suavidad: Sea f suave y sea g eventualmente no decreciente. Para todo b 2, g(bk ) ∈ Θ(f (bk )) ⇒ g(n) ∈ Θ(f (n)) Ejemplo de uso: Considere la siguiente recurrencia W (1) = c W (n) = W ( n/2 ) + W ( n/2 ) + kn Si s´olo consideramos potencias de 2 obtenemos W (1) = c W (n) = 2W (n/2) + kn que es O(n lg n). Como n lg n es suave, W (n) ∈ O(n lg n).
  • 13.
    Ecuaci´on Caracter´ıstica M´etodo sistem´atico. Permiteresolver recurrencias de forma exacta. Limitado a ciertas formas de recurrencias. Muy potente.
  • 14.
    Recurrencias Lineales Homog´eneas Lasrecurrencias lineales homog´eneas a coeficientes constantes son de la forma: a0T(n) + a1T(n − 1) + · · · + akT(n − k) = 0 Son lineales ya que no contienen t´erminos como T(n − i)T(n − j), T2 (n − 1). Son homog´eneas porque la combinaci´on lineal de los T(n − i) es igual a 0. A coeficientes constantes porque los ai son constantes. Ejemplo: F(n) = F(n − 1) + F(n − 2). Se puede reescribir como F(n)−F(n−1)−F(n−2) = 0 k = 2, a0 = 1, a1 = −1, a2 = −1
  • 15.
    Soluci´on general Dada larecurrencia a0T(n) + a1T(n − 1) + · · · + akT(n − k) = 0 definimos su polinomio caracter´ıstico como p(x) = a0xk + a1xk−1 + · · · + ak Toda soluci´on de ser´a de la forma T(n) = k i=1 ci rn i donde los ri son las ra´ıces del polinomio, bajo el supuesto que todas las ri son distintas (no hay ra´ıces m´ultiples). Las constantes c1, c2, . . . , ck se obtienen de k condiciones iniciales.
  • 16.
    Ejemplo : Fibonacci F(0) = 0 F (1) = 1 F (n) = F (n − 1) + F (n − 2) La recurrencia es F(n) − F(n − 1) − F(n − 2) = 0 y su polinomio caracter´ıstico es x2 − x − 1. Las ra´ıces son r1 = 1+ √ 5 2 y r2 = 1− √ 5 2 La soluci´on general es F(n) = c1rn 1 + c2rn 2 . 0 = F(0) = c1 + c2 1 = F(1) = r1c1 + r2c2 c1 + c2 = 0 r1c1 + r2c2 = 1 ⇒ c1 = 1√ 5 c2 = − 1√ 5 Por lo tanto F(n) = 1√ 5 1+ √ 5 2 n − 1− √ 5 2 n (Moivre)
  • 17.
    Ejercicio Resolver la recurrencia W(0) = 0 W (1) = 5 W (n) = 3 W (n − 1) + 4 W (n − 2) W (n) − 3W (n − 1) − 4W (n − 2) = 0 El polinomio caracter´ıstico es x2 −3x −4 r1 = −1 r2 = 4 La soluci´on es de la forma W (n) = c1(−1)n + c24n El sistema de ecuaciones dado por las condicionales iniciales es c1 + c2 = 0 −c1 + 4c2 = 5 Resolviendo, obtenemos c1 = −1 y c2 = 1. Por lo tanto W (n) = 4n − (−1)n
  • 18.
    Ra´ıces M´ultiples ¿Qu´e sucedecuando hay ra´ıces m´ultiples? El polinomio caracter´ıstico p(x) = a0xk + a1xk−1 + · · · + ak tendr´a q ra´ıces distintas r1, r2, . . . , rq. cada una con multiplicidad m1, m2, . . . , mq. Las soluciones ser´an de la forma T(n) = q i=1 mi −1 j=0 cij nj rn i Las constantes cij se determinan con las condiciones iniciales.
  • 19.
    Ejemplo S (0) =0 S (1) = 1 S (2) = 2 S (n) = 5 S (n − 1) − 8 S (n − 2) + 4 S (n − 3) Reescribimos la recurrencia como S(n) − 5S(n − 1) + 8S(n − 2) − 4S(n − 3) = 0 El polinomio caracter´ıstico es x3 − 5x2 + 8x − 4 = (x − 1)(x − 2)2 Las ra´ıces son r1 = 1 con multiplicidad 1 y r2 = 2 con multiplicidad 2 La soluci´on general es S(n) = c11n + c22n + c3n2n
  • 20.
    Ejemplo (cont.) La soluci´ongeneral es S(n) = c11n + c22n + c3n2n Las condiciones iniciales nos dan c1 + c2 = 0 n = 0 c1 + 2c2 + 2c3 = 1 n = 1 c1 + 4c2 + 8c3 = 2 n = 2 c1 = −2, c2 = 2, c3 = −1 2 La soluci´on queda S(n) = 2n+1 − n2n−1 − 2
  • 21.
    Recurrencias Lineales NoHomog´eneas La soluci´on de recurrencias lineales se complica cuando la recurrencia no es homog´enea. Consideraremos recurrencias no homog´eneas con la siguiente forma a0T(n)+a1T(n−1)+· · ·+akT(n−k) = bn 1p1(n)+bn 2p2(n)+. . . Las bi son constantes distintas. Cada pi es un polinomio de grado di . Estas recurrencias se resuelven usando el siguiente polinomio caracter´ıstico (a0xk + a1xk−1 + · · · + ak)(x − b1)d1+1 (x − b2)d2+1 + . . . Luego, procedemos como en el caso homog´eneo.
  • 22.
    Ejemplo T (0) =0 T (n) = 2 T (n − 1) + n + 2n La recurrencia se puede reescribir como T(n) − 2T(n − 1) = n + 2n que con b1 = 1, p1(n) = n, b2 = 2, p2(n) = 1 tiene la forma adecuada. d1 = 1 y d2 = 0, por lo que el polinomio caracter´ıstico es (x − 2)(x − 1)2 (x − 2) r1 = 1 y r2 = 2, ambas con multiplicidad 2. Por lo tanto las soluciones ser´an de la forma T(n) = c11n + c2n1n + c32n + c4n2n
  • 23.
    Ejercicio T (0) =1 T (n) = 3 T (n − 1) + 2n Reescribimos la recurrencia como T(n) − 3T(n − 1) = 2n. (b1 = 2, p1(n) = 1, d1 = 0) El polinomio caracter´ıstico es (x − 3)(x − 2) Las ra´ıces son 3 y 2 con multiplicidad 1. Las soluciones son de la forma T(n) = c13n + c22n. Determinamos las constantes c1 = 3 y c2 = −2. La soluci´on final es T(n) = 3n+1 − 2n+1.
  • 24.
    Cambio de Variable Dadala recurrencia T(n) = 1 si n = 1 3T(n/2) + n si n > 1 Definimos una nueva recurrencia T (i) = T(2i ). O sea T (i) = 1 si i = 0 3T (i − 1) + 2i si i 1 T (i) = 3i+1 + 2i+1. T (i) = T(2i ) ⇔ T(n) = T (lg n) para n potencia de 2! Si n es potencia de 2, T(n) = T (lg n) = 3 · nlg 3 − 2n T(n) ∈ Θ(nlg 3 ) si n potencia de 2 Pero nlg 3 es suave y T(n) creciente ⇒ T(n) ∈ Θ(nlg 3)
  • 25.
    Ejercicio T(0) = k T(n)= 2T(n/2) + n lg n T (i) = T(2i ) = 2T(2i−1) + i2i = 2T (i − 1) + i2i T (i) − 2T (i − 1) = i2i , con pol. car. (x − 2)(x − 2)2 = (x − 2)3 (ra´ız 2 con multiplicidad 3) T (i) = c12i + c2i2i + c3i22i T(n) = c1n + c2n lg n + c3n lg2 n (para n potencia de 2) n lg n = (c2 − c3)n + 2c3n lg n ⇒ c2 = c3 = 1 2 T(n) ∈ Θ(n lg2 n) para n potencia de 2. n lg2 n suave y T(n) creciente ⇒ T(n) ∈ Θ(n lg2 n)
  • 26.
    Resolviendo recurrencias Las recurrenciasque aparecen en algoritmos “Divide & Conquer” usualmente tienen la forma: T(n) = aT(n/b) + f (n) En general, podemos obtener el orden de estas recurrencias directamente usando una resoluci´on general. “El Teorema Maestro”
  • 27.
    El Teorema Maestro Dadosa 1 y b > 1 y la recurrencia T(n) = aT(n/b) + f (n) , entonces T(n) ∈    Θ(nlgb a) si ∃ > 0. f (n) ∈ O(nlgb a− ) Θ(nlgb a lg n) si f (n) ∈ Θ(nlgb a) Θ(f (n)) si ∃ > 0. f (n) = Ω(nlgb a+ ) y ∃c < 1, N ∈ N. ∀n > N. af (n/b) cf (n) Para W (n) = 2W ( n/2 ) + c2n estamos en el 2do caso ya que lg2 2 = 1 y g(n) ∈ Θ(n1), y por lo tanto W (n) = Θ(n lg n)
  • 28.
    Comentarios acerca delTeorema Maestro Los casos se deciden comparando f (n) y nlgb a. Caso 1: nlgb a es mas grande. Caso 2: f (n) y nlgb a tienen el mismo orden. Caso 3: f (n) es mas grande. En realidad no basta con que una sea mas grande que la otra, sino que debe serlo polinomialmente. f (n) = n lg n no es polinomialmente mas grande que g(n) = n. Los tres casos no cubren todas las posibilidades En la pr´actica van a probar una versi´on (levemente) menos general del teorema maestro.
  • 29.
    Resumen Resoluci´on de recurrenciasusando: Substituci´on ´Arbol de recurrencias. Regla de suavidad Ecuaci´on caracter´ıstica Teorema Maestro
  • 30.
    Referencias Introduction to Algorithms.Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein Fundamentals of Algorithmics. Gilles Brassard, Paul Bratley