Anda di halaman 1dari 42

Solucin de Recurrencias

Dr. Ivan Olmos Pineda


Contenido

Introduccin a la Solucin de Recurrencias


Tcnicas para la Solucin de Recurrencias
Por sustitucin
Recurrencias homogneas
Recurrencias no homogneas
Cambio de variable
Transformacin de Intervalo
Introduccin a la Solucin de Recurrencias

Determinar el orden de un algoritmo recursivo


requiere de un anlisis ms minucioso

int fact(int n)
{ if (n == 0)
1 if n=0
return 1; f ( n) =
else n * f (n 1) otherwise
return(n * fact(n-1));
}
Tcnicas para la Solucin de Recurrencias

Existen diversas tcnicas para la solucin de


recurrencias
Intuitivas
Basadas en ecuaciones caractersticas
Para la mayora de los casos, utilizando la
tcnica adecuada es posible solucionar una
recurrencia
Mtodo de Sustitucin
Sustitucin

El mtodo ms simple y sencillo


Se va evaluando la recurrencia para ciertos
valores
Se deduce, a partir del comportamiento mostrado,
una ecuacin que represente el comportamiento
de la recurrencia
Se demuestra que la ecuacin, efectivamente,
resuelve a la recurrencia
Ejemplo

Considere la siguiente recurrencia:


1 si n = 1
T ( n) =
3T (n / 2) + n si n > 1

Cmo resolverla?
Primera idea, construir una tabulacin de los valores que
toma la recurrencia para diferentes valores de n
TIP: note que la recurrencia solo queda definida para n
potencias de 2, es decir, para n = 2k, donde k es un entero
positivo
Ejemplo
n T(n)
21 3T(1)+2 = 3x1+2
22 3T(2)+22 = 3[3x1+2]+22 = 32x1 + 3x2 + 22
23 3T(4)+23 = 3[32x1 + 3x2 + 22] + 23 = 33x1 + 32x2 +
31x22 + 23
24 3T(8)+24 = 3[33x1 + 32x2 + 31x22 + 23]+24 =
34x1+33x2+32x22+3x23+24

k
T (2 k ) = 3k 20 + 3k 121 + ... + 30 2 k = 3k i 2i
i =0
Ejemplo

En la expresin anterior, notemos que T queda en


trminos de una sumatoria, por lo que se requiere
manipulacin algebraica para dejarla en trminos
exclusivamente del argumento:
k k

3 2 = 3
i =0
k i i k
(
i =0
2 / 3) i
= 3 k +1
2 k +1

Para resolver esta frmula se utiliz la serie:


a, ar, ar2, ar3, , arn
sn = a(1-rn)/(1-r)
Ejemplo

Por tanto:
T(2k) = 3k+1-2k+1
Como sabemos que n = 2k log2n = k, con
lo cual se obtiene una T en trminos de n:
T(n) = 3log n +1 2log n +1
Recurrencias Homogneas
Introduccin

Las recurrencias homogneas tienen la


forma:
a0tn + a1tn-1 + + aktn-k = 0 (1)

Por ejemplo, la sucesin de Fibonacci tiene


la forma de una recurrencia homognea:

fn = fn-1 + fn-2
Polinomio Caracterstico

Si consideramos que tn = xn y sustituimos en


(1), tendremos:
a0xn + a1xn-1 + + akxn-k = 0
Esta ecuacin se satisface si:
p(x) = a0xk + a1xk-1 + + ak = 0
A este polinomio se le conoce como
ecuacin caracterstica de las recurrencias
lineales
Solucin del Polinomio Caracterstico

Por teorema fundamental del lgebra, todo


polinomio p(x) de grado k tiene k raices (reales o
complejas), por lo que p(x) se puede factorizar
como:
k
p ( x) = ( x ri )
i =1
Solucin del Polinomio Caracterstico

De la factorizacin, se concluye que:


x = ri es solucin de la ecuacin caracterstica
rin es una solucin de la recurrencia
Dado que toda combinacin lineal de soluciones es
tambin una solucin, se concluye que toda
solucin de una recurrencia tn (sin races mltiples)
tiene la siguiente forma:
k
t n = ci ri n

i =1
Ejemplo 1

Consideremos la sucesin de Fibonacci:


n si n = 0, n = 1
fn =
f n 1 + f n 2 otro caso

Esta recurrencia tiene la forma: fn fn.1 fn-2 = 0


Polinomio caracterstico:
x2 x 1 = 0
k = 2, a0 = 1, a1 = -1, a2 = -1
Ejemplo 1

Races del polinomio:


1+ 5 1 5
r1 = , r2 =
2 2
Solucin general de la recurrencia (sin races
mltiples):
fn = c r + c r
1 1
n
2 2
n

Para encontrar el valor de las constantes c1 y c2, es


necesario evaluar el valor de la recurrencia fn en
sus casos base
Ejemplo 1

Resolviendo el sistema de ecuaciones:

c1 + c2 = 0
r1c1 + r2 c2 = 1

1 1
c1 = , c2 =
5 5
Por tanto, se concluye lo siguiente:

1 1 + 5 1 5
n n

fn =

5 2 2

Ejemplo 2

Considere la recurrencia:
0 si n = 0

t n = 5 si n = 1
3t + 4t otro caso
n 1 n2

Polinomio caracterstico:
x2 + 3x + - 4 = 0
Races: r1 = -1, r2 = 4
Solucin general: tn = c1(-1)n + c24n
Ejemplo 2

De lo anterior y utilizando los casos base, se forma


el sistema de ecuaciones siguiente:

c1 + c2 = 0 n=0
c1 + 4c2 = 5 n =1

Donde c1 = -1, c2 = 1. Por tanto:

tn = 4n (-1)n
Solucin de Recurrencias con Races
Mltiples
Si la recurrencia a solucionar tiene races
mltiples, entonces la solucin vara por lo
siguiente:

p(x) = a0xk + + ak pol. caracterstico de la recurrencia


Sea r una raz de multiplicidad 2, entonces p(x) se
puede reescribir como p(x) = (x-r)2q(x), donde q(x) es de
grado k-2
Solucin de Recurrencias con Races
Mltiples
Considere los siguientes polinomios de grado
n:
un(x) = a0xn + a1xn-1 + + akxn-k
vn(x) = a0 n xn + a1 (n-1) xn-1 + + ak (n-k) xn-k
vn(x) = x u(x)
un(x) se puede reescribir de la siguiente
forma:
un(x) = xn-k p(x) y como p(x) = (x-r)2q(x) entonces
un(x) = (x-r)2 [xn-k q(x)]
Solucin de Recurrencias con Races
Mltiples
Derivando un(x) con respecto a x se tiene:
un(x) = 2(x-r) [xn-k q(x)] + (x-r)2 [xn-k q(x)]
Por tanto, un(r) = 0, lo cual implica que
r un(r) = 0, por lo que se concluye que
a0 n rn + a1 (n-1) rn-1 + + ak (n-k) rn-k = 0
Con lo anterior, se tiene que tn = n rn es una
solucin de la recurrencia
Solucin de Recurrencias con Races
Mltiples
En general, si r es una raiz de multiplicidad m, se
tiene que:
tn = rn, tn = n rn, tn = n2 rn, , tn = nm-1 rn son soluciones de la
recurrencia tn
En resumen
r1, , rs raices distintas
m1, , ms sus multiplicidades respectivamente, entonces:

s mi 1
t n = cij n j ri n
i =1 j = 0
Ejemplo

Considere la recurrencia:
n si n = 0, n = 1, n = 2
tn =
5t n 1 8t n 2 + 4t n 3 otro caso
Su polinomio caracterstico es:
tn 5tn-1 + 8tn-2 4tn-3 = 0
El polinomio caracterstico es:
p(x) = x3 5x2 + 8x 4 = 0
Por lo tanto:
r1 = 1, m1 = 1
r2 = 2, m2 = 2
Ejemplo

De lo anterior, se concluye que para esta


recurrencia, su expresin general es:
tn = c11n + c22n + c3n2n
De las condiciones iniciales se obtiene lo siguiente:
c1 + c2 = 0 n=0
c1 + 2c 2 + 2c3 = 1 n =1
c1 + 4c 2 + 8c3 = 2 n=2
Resolviendo el Sist. de Ec., se tiene que: c1 = -2, c2
= 2, c3 = -1/2, por lo que:
tn = 2n+1 n2n-2 - 2
Recurrencias No
Homogneas
Recurrencias No Homogneas

Estructura general recurrencia no homognea:


a0tn + a1tn-1 + + aktn-k = bn p(n)
b es una constante
p(n) un polinomio de grado d

Estrategia general
Transformar la recurrencia a una expresin homognea
Resolver la expresin, tomando en cuenta que la expresin
homognea no es idntica a la expresin original
Ejemplo 1

Considere la recurrencia:
tn 2tn-1 = 3n
b = 3, p(n) = 1
Para transformar la recurrencia, se sigue el
siguiente proceso:
3(tn 2tn-1 = 3n) 3tn 6tn-1 = 3n+1
Sustituyendo n n 1 se tiene
3tn-1 6tn-2 = 3n
Ejemplo 1

Se restan las recurrencias encontradas:


tn 2tn-1 = 3n *
-
3tn-1 6tn-2 = 3n **
Resultado: tn 5tn-1 + 6tn-2 = 0
Ecuacin caracterstica: x2 - 5x + 6 = 0
Races: r1 = 2, r2 = 3
Por tanto, la solucin es: tn = c12n + c23n
Ejemplo 1

Dado que (*) y (**) no son la misma recurrencia (no


tienen los mismos caso base), para encontrar los
valores de las constantes, se toma en cuenta que
de la recurrencia original, t1 = 2t0 + 3
c1 + c2 = t0 n=0
2c1 + 3c2 = 2t0 + 3 n = 1
Resolviendo el sistema, se concluye que:
c1 = t0 3, c2 = 3
Por tanto
tn = (t0 - 3)2n + 3n+1
Ejemplo 2

Considere la recurrencia:
tn 2tn-1 = (n+5)3n
Dado que se desea una combinacin lineal
de esta igualdad que sumadas den cero, se
observa lo siguiente:
(n+5)3n, -2 (3/3) (n+5)3n, (32/32) (n+5)3n
De lo anterior se obtienen las siguientes
recurrencias, las cuales son sumadas:
Ejemplo 2

tn 2t n 1 = (n + 5)3n
6t n 1 + 12t n 2 = 6(n + 4)3n 1
9t n 2 18t n 3 = 9(n + 3)3n 2

Sumando las recurrencias, obtenemos una


recurrencia homognea:
tn 8tn-1 + 21tn-2 18tn-3 = 0
El polinomio caracterstico es:
x3 8x2 + 21x 18 = 0
Ejemplo 2

Con un poco de manipulacin algebraica, se


deduce que:
x3 8x2 + 21x 18 = (x-2)(x-3)2
t = c 2n + c 3n + c(n)3n
n 1 2
De esta recurrencia, se deduce que:
t0 = c 1 + c 2
De tn 2tn-1 = (n+5)3n tn = 2tn-1 + (n+5)3n
t1 = 2t0 + 18
t2 = 2t1 + (2+5)32 = 4t0 + 99
Ejemplo 2
c1 + c2 = t0 n=0
2c1 + 3c2 + 3c3 = 2t0 + 18 n = 1
4c1 + 9c2 + 18c3 = 4t0 + 99 n = 2

De lo anterior, se deduce que:


c1 = t0 9, c2 = 9, c3 = 3
Por tanto:
tn = (t0 - 9)2n + (n+3)3n+1
Generalizacin

De los ejemplos anteriores, se puede concluir


que el polinomio caracterstico de una
recurrencia no homognea a0tn + a1tn-1 + +
aktn-k = bn p(n) es:
(a0xk + a1xk-1 + + ak)(x-b)d+1
Recuerde que:
b es una constante
d grado del polinomio p(n)
Ejemplo 3

Considere el problema de las torres de Hanoi:


0 si n = 0
tn =
2t n 1 + 1 caso contrario
La recurrencia se expresa como:
tn 2tn-1 = 1
Observemos que b = 1 y p(n) = 1 (polinomio de
grado 0). Por tanto, el polinomio caracterstico es:
(x-2)(x-1)
Por tanto, la recurrencia queda de la forma:
tn = c11n + c22n
Ejemplo 3

Demuestre que despus de despejar el


sistema, se obtiene la recurrencia:

tn = 2n -1
Cambio de Variable
Ejemplo

Transformar una recurrencia complicada en una


ms simple

1 si n = 1
T ( n) =
3T (n / 2) + n si n > 1, potencia de 2

Consideremos que n = 2i
La recurrencia resultante ahora queda en trminos de i
Por tanto, ti = T(2i)
Ejemplo

ti = T(2i) = 3T(2i-1) + 2i = 3ti-1 + 2i


Reescribiendo
ti 3ti-1 = 2i
Para este caso, b = 2, d = 0, por lo que el polinomio
caracterstico es:
p(x) = (x-3)(x-2)
De este polinomio se determina que:
ti = c13i + c22i
Dado que T(2i) = ti y n = 2i, entonces
T(n) = c13lg n + c22lg n = c1nlg 3 + c2n
Otras Tcnicas para Resolucin de
Recurrencias
Transformacin de Intervalo
Recurrencias Asintticas

En estas tcnicas, bsicamente se utiliza un


cambio de variable, as como equivalencias
que permitan transformar a la recurrencia en
una expresin de la forma lineal