11.08.2023 Views

Algoritmos - CAP1

Complejidad de algoritmos

Complejidad de algoritmos

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

14 TÉCNICAS DE DISEÑO DE ALGORITMOS

a 0

T(n) + a 1

T(n −1) +... + a k

T(n − k) = b 1 n p 1

(n) +b 2 n p 2

(n) +... + b s n p s

(n)

donde como en el caso anterior, los coeficientes a i y b i son números reales y p j (n)

son polinomios en n de grado d j . En este caso también existe una forma general de

la solución, en donde se demuestra que la ecuación característica es:

(a 0

x k + a 1

x k−1 + a 2

x k −2 + ... + a k

)(x − b 1

) d 1 +1 (x − b 2

) d 2 +1 ...(x − b s

) d s +1 = 0 .

Como ejemplo, supongamos la ecuación

T(n) = 2T(n–1) + n + 2 n , n≥1,

con la condición inicial T(0) = 1. En este caso tenemos que b 1 = 1, p 1 (n) = n,

b 2 = 2 y p 2 (n) = 1, por lo que su ecuación característica es (x–2) 2 (x–1) 2 = 0, lo que

da lugar a la expresión final de T(n):

T(n) = –2 – n + 2 n+1 + n2 n ∈Θ(n2 n ).

1.4.3 Cambio de Variable

Esta técnica se aplica cuando n es potencia de un número real a, esto es, n = a k . Sea

por ejemplo, para el caso a = 2, la ecuación T(n) = 4T(n/2) + n, donde n es una

potencia de 2 (n > 3), T(1) = 1, y T(2) = 6.

Si n = 2 k podemos escribir la ecuación como:

T(2 k ) = 4T(2 k–1 ) + 2 k .

Haciendo el cambio de variable t k = T(2 k ) obtenemos la ecuación

t k = 4t k–1 + 2 k

que corresponde a una de las ecuaciones estudiadas anteriormente, cuya solución

viene dada por la expresión

t k = c 1 (2 k ) 2 + c 2 2 k .

Deshaciendo el cambio que realizamos al principio obtenemos que

T(n) = c 1 n 2 + c 2 n.

Calculando entonces las constantes a partir de las condiciones iniciales:

T(n) = 2n 2 – n ∈Θ(n 2 ).

1.4.4 Recurrencias No Lineales

En este caso, la ecuación que relaciona T(n) con el resto de los términos no es

lineal. Para resolverla intentaremos convertirla en una ecuación lineal como las que

hemos estudiado hasta el momento.

Por ejemplo, sea la ecuación T(n) = nT 2 (n/2) para n potencia de 2, n > 1, con la

condición inicial T(1) = 1/3. Llamando t k = T(2 k ), la ecuación queda como

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!