Algoritmos - CAP1
Complejidad de algoritmos
Complejidad de algoritmos
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
12 TÉCNICAS DE DISEÑO DE ALGORITMOS
Para calcular las constantes c 1 y c 2 necesitamos utilizar las condiciones iniciales
de la ecuación original, obteniendo:
⎛ 1+
5 ⎞
T (0) = c ⎜ ⎟
1
2
⎝ ⎠
1
⎛ 1+
5 ⎞
T (1) = c ⎜ ⎟
1
2
⎝ ⎠
0
⎛1−
5 ⎞
+ c ⎜ ⎟
2
2
⎝ ⎠
1
⎛1−
5 ⎞
+ c ⎜ ⎟
2
2
⎝ ⎠
0
= c
= 1
1
+ c
Sustituyendo entonces en la ecuación anterior, obtenemos
2
⎫
= 0⎪
⎪
⎬ ⇒ c1
= −c
⎪
⎪
⎭
2
=
1
.
5
T ( n)
=
1 ⎛ 1+
⎜
5
⎝ 2
5 ⎞
⎟
⎠
n
−
1 ⎛1−
⎜
5
⎝ 2
5 ⎞
⎟
⎠
n
n
∈Ο(
ϕ ).
Caso 2: Raíces con multiplicidad mayor que 1
Supongamos que alguna de las raíces (p.e. r 1 ) tiene multiplicidad m>1. Entonces la
ecuación característica puede ser escrita en la forma
(x – r 1 ) m (x – r 2 )...(x – r k–m+1 )
en cuyo caso la solución de la ecuación en recurrencia viene dada por la expresión:
T ( n)
=
m
∑
i=
1
c n
i
r
i−1
n
1
+
k
n
∑ciri
−m+
1
i=
m+
1
donde los coeficientes c i se determinan a partir de las condiciones iniciales.
Veamos un ejemplo en el que la ecuación en recurrencia es:
T(n) = 5T(n–1) – 8T(n–2) + 4T(n–3), n≥2
con las condiciones iniciales T(k) = k para k = 0, 1, 2. La ecuación característica
que se obtiene es x 3 – 5x 2 + 8x – 4 = 0, o lo que es igual (x–2) 2 (x–1) = 0 y por tanto,
T(n) = c 1 2 n + c 2 n2 n + c 3 1 n .
De las condiciones iniciales obtenemos c 1 = 2, c 2 = –1/2 y c 3 = –2, por lo que
T(n) = 2 n+1 – n2 n–1 – 2 ∈Θ(n2 n ).
Este caso puede ser generalizado de la siguiente forma. Si r 1 ,r 2 ,...,r k son las
raíces de la ecuación característica de una ecuación en recurrencia homogénea,
cada una de multiplicidad m i , esto es, si la ecuación característica puede expresarse
como:
(x − r 1
) m 1
(x − r 2
) m 2
...(x − r k
) m k
= 0 ,
entonces la solución a la ecuación en recurrencia viene dada por la expresión: