La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Solución a Ecuaciones de Recurrencia Dr. Rogelio Dávila Pérez División de Posgrado Universidad Autónoma de Guadalajara

Presentaciones similares


Presentación del tema: "Solución a Ecuaciones de Recurrencia Dr. Rogelio Dávila Pérez División de Posgrado Universidad Autónoma de Guadalajara"— Transcripción de la presentación:

1 Solución a Ecuaciones de Recurrencia Dr. Rogelio Dávila Pérez División de Posgrado Universidad Autónoma de Guadalajara rdav90@gmail.com

2 Complejidad de programas Evalúe el orden del siguiente algoritmo: for i=1 to n for j=1 to i for k=1 to j x = x +1 endfor

3 Complejidad de programas Evalúe el orden del siguiente algoritmo: Exp2(a,n) { if( n == 1) return(a) ; m = n/2 power = exp2(a, m) power = power * power if (n es par) return(power) else return(power * a) }

4 Relaciones de recurrencia Def. Una relación de recurrencia es una fórmula que nos permite calcular los elementos de una secuencia, uno después de otro iniciando con uno o más valores. Suponga por ejemplo que deseamos generar una secuencia de números x 0, x 1, x 2,… por medio de: x n+1 = 3x n ( x 0 =1) Que nos genera la secuencia: 1, 3, 9, 27, 81, … 1 En 1202, regresando de Oriente, Fibonacci escribió su famoso trabajo. Liber Abaci, en el que introduce su famosa secuencia originada a partir de un problema relacionado con la reproducción de conejos.

5 Relaciones de recurrencia Ejemplo 2: Secuencia de Fibonacci 1 La secuencia de Fibonacci f 1, f 2, … se define por la ecuación de recurrencia: f n = f n-1 + f n-2, n≥3 y las condiciones iniciales: f 1 = f 2 = 1 La secuencia se genera como: 1, 1, 2, 3, 5, 8, 13, 21, 33, … 1 En 1202, regresando de Oriente, Fibonacci escribió su famoso trabajo. Liber Abaci, en el que introduce su famosa secuencia originada a partir de un problema relacionado con la reproducción de conejos.

6 Relaciones de recurrencia Problemas ejemplo: Resuelva la siguientes ecuaciones de recurrencia: (a)x n+1 = cx n ( c≥0; x 0 =1) (b)x n+1 = b n+1 x n ( x 0 given) (c)x n+1 = b n+1 x n + c n+1 ( x 0 given)

7 Relaciones de recurrencia Problema 1.Sea c n el término que denota el número de veces que la instrucción x=x+1, es ejecutada en el algoritmo: calcula(n) { if (n==1) return ; for i=1 to n x = x+1; calcula(n/2) }

8 Relaciones de recurrencia Solución Tenemos la condición inicial: c 1 = 0 ya que si n= 0 el algoritmo calcula simplemente hace return. Cuando n>1, la instrucción x=x+1 es ejecutada n veces y llama a calcula(n/2). Lo que ocasiona que x=x+1 sea ejecutado adicionalmente c [n/2] veces. Así obtenemos la siguiente ecuación de recurrencia: c n = n + c [n/2]

9  El problema es que para calcular el valor de la ecuación para cada número k, a partir de esta definición, tenemos que realizar k+c [k/2] pasos para computar c k.  Es más conveniente manejar una expresión más explicita y fácil de calcular para c n. A este proceso se le denomina: “resolver la relación de recurrencia”.  Resolver la relación de recurrencia para la secuencia {c n } consiste en dar una fórmula para c n que no contenga a c i para ningún elemento i.  El problema es similar al de resolver una ecuación algebraica (ej. una ecuación cuadrática). La diferencia es que en una ecuación algebraica la solución es un número y en una relación de recurrencia, la solución es una secuencia. Resolviendo relaciones de recurrencia

10 La ecuación de recurrencia: x n+1 = cx n (c≥0, x 0 =1) Es una ecuación de primer orden ya que el valor nuevo x n+1, de la secuencia depende tan solo del elemento x n. La definición de la ecuación consta de dos partes: (i) el inicio: x 0 =1 (ii) valores de n a los que se aplica la ecuación, n≥0.

11 Resolviendo relaciones de recurrencia Una técnica llamada iteración o sustitución, es utilizada para resolver una relación de recurrencia en la cual el elemento n esta dado solamente en términos del elemento que inmediatamente le precede, el n-1. Ejemplo: Resuelva la siguiente ecuación de recurrencia: c n = n + c n-1, n ≥ 1

12 Resolviendo relaciones de recurrencia Solución Desarrollemos la ecuación: c n = n + c n-1 = n + [(n-1) + c n-2 ] = n + [(n-1) + [(n-2) + c n-3 ]] … = n + (n-1) + (n-2) + … + 2 + 1 + 0 Lo que nos lleva a la solución:

13 Resolviendo relaciones de recurrencia Ejercicio La ecuación de recurrencia: c n = n + c [n/2], n ≥ 1 es típica de las ecuaciones de recurrencia que describen el tiempo requerido para los algoritmos del tipo divide-y- vencerás. Resolver la ecuación.

14 Ejercicios 1.Utilice iteración para resolver las siguientes relaciones recurrentes: a.a n = a n-1 + 3, n > 1 ; a 1 = 2 b.a n = 2 na n-1, n > 0 ; a 0 = 1 2.Dado el siguiente algoritmo, evalúa el valor de a n. El número de multiplicaciones requerido para evaluar a n, es denotado como c n : exp1(a,n) { if( n == 1) return(a) ; m = n/2 return(exp1(a,m)*exp1(a, n-m)) } a. Explique como el algoritmo mostrado calcula a n. b. Encuentre la ecuación de recurrencia y las condiciones iniciales para la secuencia {c n }. c. Evalúe c2, c3 y c4. d. Resuelva la relación de recurrencia encontrada en el inciso b, para el caso en que n sea una potencia de 2.


Descargar ppt "Solución a Ecuaciones de Recurrencia Dr. Rogelio Dávila Pérez División de Posgrado Universidad Autónoma de Guadalajara"

Presentaciones similares


Anuncios Google