M.C. Meliza Contreras González 1
Es normal que un algoritmo se base en procedimientos auxiliares, haga llamadas recursivas para tamaños menores o reduzca el tamaño del problema progresivamente. En el análisis, T(n) se expresa en función del tiempo para T(n-1), T(n-2)... Ecuaciones de recurrencia. 2
Hanoi (origen,pivote,destino,discos) si discos=1 mover(origen,destino) en otro caso Hanoi (origen,destino,pivote,discos-1) mover (origen,destino) Hanoi (pivote,origen,destino,discos-1) T(n)=2T(n-1)+c 3
En general, las ecuaciones de recurrencia tienen la forma: t(n) = bPara 0 n n 0 Casos base t(n) = f ( t(n-1),..., t(n-k), n)en otro caso 4
La ecuación de recurrencia es de la forma: a 0 t(n) + a 1 t(n-1) a k t(n-k) = 0; a i constante Caso sencillo: t(n) = x·t(n-1); t(0)= 1. Solución: t(n) = x·t(n-1) = x·x·t(n-2) = x 3 t(n-3) =... = x n ·t(0) t(n) = x n 5
Teorema fundamental del Álgebra Todo polinomio p(x) de grado k posee k raíces de tal modo que p(x) = i=1,k (x-r i ) donde r i son las soluciones de p(x)=0 como p(x)=0 y x=r i y t n =x n entonces r i n es una solución de la recurrencia Toda combinación lineal de soluciones es también una solución x n = t n = i=1,k c i r i n donde c 1, c 2,... c n son constantes 6
Si la ecuación de recurrencia tiene k llamados la elección del grado será x k-1 Por ejemplo, T(n)=T(n-1) + 3T(n-2)+5T(n-3) Por lo que T(n)=x 3 7
Si todas las raíces son distintas, es decir r i r j entonces la solución viene dada por la expresión: Donde los coeficientes c i se determinan a partir de las condiciones iniciales T(n)=c 1 r 1 n +c 2 r 2 n +…+c k r k n =Σc i r i n 8
T(n)=T(n-1)+T(n-2), n>=2 Condiciones iniciales T(0)=0, T(1)=1. Haciendo el cambio t(n)=x 2 Se obtiene la ecuación característica x 2 =x+1 9
Esta ecuación de segundo grado se resuelve mediante la fórmula Si el polinomio es de grado mayor a 2 las raíces se pueden obtener mediante división sintética X=-b b 2 -4ac 2a 10
Quedando como raíces Por tanto: 22 r 1 =1+ 5 2 r 2 =1- 2 n T(n)=c 1 + c 5 2 n 11
Para encontrar las constantes c 1 y c 2 se resuelve el sistema de ecuaciones planteado con las condiciones iniciales T(0)=c 1 + c 2 =c1+c2= T(1)=c 1 + c 2 =
Así c 1 =-c 2 =1/ 5 sustituyendo en la ecuación anterior resulta T(0)= - ( n 5 2 n 1 55 1 55 n 13
Una recurrencia es no homogénea cuando la combinación lineal no es igual a 0 a 0 t n + a 1 t n a k t n-k = b n ·p(n) Donde b es constante y p(n) es un polinomio de grado d Solución: reducir al caso homogéneo: Aplicando el polinomio característico (t n =x n ) (a 0 x k + a 1 x k a k )·(x-b) d+1 donde d es el grado de p(n) Las constantes se determinan con las condiciones iniciales y con la propia recurrencia Ejemplos: t n – 2·t n-1 = 3 n T(n) = 0si n=0 2t(n-1) + 1 en otro caso 14
T(n) =2t(n-1) + 1 T(0)=0, T(1)=1 En este caso b=1 y p(n)=1, polinomio en n de grado 0. Se resuelve la ecuación homogénea con el cambio T(n)=x resultando X-2=0, agregando a este binomio el binomio (x-b) d+1 15
(x-2)(x-1) 0+1 =(x-2)(x-1), as í T(n) =c 1 2 n +c 2 1 n O 2 n 16
Supongamos que alguna de las raíces tiene multiplicidad m>1 entonces la ecuación característica se escribe: En este caso la ecuación de recurrencia viene dada por la expresión (x-r 1 ) m (x-r 2 )…(x-r k-m+1 ) Σc i r n i-m+1 i=m+1 T(n)=Σc i n i-1 r 1 n + i=1 m k 17
Ejemplo con raíces múltiples: t n = 2·t n-1 + n(a) Polinomio característico: (x-2)(x-1) 2 Solución de la forma: t n = c 1 2 n + c 2 1 n + c 3 n1 n (b) Solución: (2 n ) 18
Método de cambio de variable Método maestro 19
T(n) término de una recurrencia original Ti término de un nueva recurrencia obtenida de la original mediante cambio de variable Ejemplo: t(n) = a) n = 2 i i=log 2 n ; para transformarla en algo conocido hacemos: t i = t(2 i ) t i = t(2 i ) = 3t(2 i-1 ) + 2 i t i – 3t i-1 = 2 i (x-2)(x-3) t i = c 1 ·3 i + c 2 2 i como i = log 2 n y c log n =n log c t i = c 1 n log 3 + c 2 n log 2 t(n) O(n log 3 ), log 2 3= si n=1 3t(n/2) + n si n es potencia de 2, n>1 20
Provee cotas para las recurrencias de la forma: T(n)=aT(n/b)+f(n) a>=1,b>1 y f(n) positiva. Describe el tiempo que un algoritmo divide un problema de tamaño n en a subproblemas cada uno de tamaño n/b. El costo de dividir el problema y combinar los resultados se describe con f(n) 21
Si f(n)=O(n ) >0 T(N)= (n ) Si f(n)= (n ) T(N)= (n logn) Si f(n)=Ώ(n ) >0 y af(n/b)<=cf(n) T(N)= (f(n)) log b a log b a- log b a log b a+ 22
T(n)=9T(n/3)+n a=9,b=3, f(n)=n, n = (n 2 ) f(n)=O(n ), =1, f(n)=O(n) T(n)= (n 2 ) Caso 1 log 3 9 log 3 9- 23
T(n)=T(2n/3)+1 a=1,b=3/2, f(n)=1, n = n =n 0 =1, f(n)= (n )= (1) T(n)= (1logn) Caso 2 log b a log 3/2 1 log b a 24
T(n)=3T(n/4)+nlogn a=3,b=4, f(n)=nlogn, n = n =O(n ), f(n)= Ώ(n )=Ώ(n), =0.2 af(n/b)=3(n/4)log(n/4) <=(3/4)nlogn=cf(n), c=3/4 T(n)= (nlogn) Caso 3 log b a log 4 3 Log 4 3+ 25