La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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.

Presentaciones similares


Presentación del tema: "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."— Transcripción de la presentación:

1 M.C. Meliza Contreras González 1

2  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

3 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

4  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

5  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

6 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

7  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

8  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

9  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

10  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

11  Quedando como raíces  Por tanto: 22 r 1 =1+  5 2 222  5 2 r 2 =1- 2 n T(n)=c 1 + c 2 22 1+  5 2 2 222 1-  5 2 n 11

12  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=0 0 22 1+  5 2 2 222 1-  5 2 0 T(1)=c 1 + c 2 =1 1 22 1+  5 2 2 222 1-  5 2 1 12

13  Así c 1 =-c 2 =1/  5 sustituyendo en la ecuación anterior resulta T(0)= -  (  n 22 1+  5 2 2 222 1-  5 2 n 1 55 1 55 n 13

14 Una recurrencia es no homogénea cuando la combinación lineal no es igual a 0 a 0 t n + a 1 t n-1 +...+ 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-1 +... + 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

15  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

16  (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

17  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

18 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

19  Método de cambio de variable  Método maestro 19

20 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=1.5849 1si n=1 3t(n/2) + n si n es potencia de 2, n>1 20

21  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

22  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

23  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

24  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

25  T(n)=3T(n/4)+nlogn  a=3,b=4, f(n)=nlogn,  n = n =O(n 0.793 ),  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


Descargar ppt "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."

Presentaciones similares


Anuncios Google