Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
9 de julio de 2016
RELACIONES DE
RECURRENCIA
Relaciones de Recurrencia y Algoritmos
Recursivos: Definiciones
Relación de recurrencia: Una relación de recurrencia para la sucesión a0, a1, ... es una
ecuación que relaciona an con ciertos predecesores a0, a1,..., an−1. Las condiciones iniciales
para una sucesión a0, a1, ... son valores dados en forma explícita para un número finito de
términos de la sucesión.
Casos base: Valores para los que una función recursiva no se invoca a sí misma.
La recursividad es una forma poderosa, elegante y natural de resolver una clase amplia
de problemas. Un problema que involucra un algoritmo recursivo se resuelve mediante una
técnica de divide y vencerás.
Divide y vencerás: bajo esta técnica, un problema se descompone en problemas del mismo
tipo que el problema original. Cada subproblema, a su vez, se descompone aún más hasta
que el proceso produce subproblemas que se pueden resolver de manera directa. Por
último, las soluciones de los subproblemas se combinan para obtener una solución del
problema original.
Link: https://www.youtube.com/watch?v=Mv9NEXX1VHc
Relaciones de Recurrencia y Algoritmos
Recursivos: Ejemplos (1)
Ejemplo 1: Algoritmo recursivo para el cálculo del factorial de n.
fn = 1 para n = 2
fn − 1 + fn − 2 para toda n ≥ 3
Número de espirales
Calcule fn/fn-1
Nota: se asume que los conejos no mueren y que engendran cada vez un solo par de conejos.
Sucesión de Fibonacci (3)
Links: http://www.popmath.org.uk/rpamaths/rpampages/snail.html
http://jwilson.coe.uga.edu/emt668/EMAT6680.2000/Obara/Emat6690/Golden%20Ratio/golden.html
Sucesión de Fibonacci (4)
Torre de Hanoi
Se supone que si un disco está en una estaca, sólo un disco de diámetro más
pequeño se puede colocar encima de él.
Para resolver una relación de recurrencia que implica la sucesión a0, a1, ... por
iteración, se usa la relación de recurrencia para escribir el n-ésimo término an
en términos de algunos de sus predecesores an−1, ... , a0.
if resta multiplicación
f(0) = 1
Método de Iteraciones: Ejemplo (2)
Método de Iteraciones: Ejemplo (3)
Relaciones de Recurrencia Homogéneas Lineales con
Coeficientes Constantes
Una relación de recurrencia homogénea lineal de orden k con coeficientes constantes es
una relación de recurrencia de la forma:
an = c1an−1 + c2an−2 + ··· + ckan−k , ck 0.
Una relación de recurrencia homogénea lineal de orden k con coeficientes constantes junto
con k condiciones iniciales
Teorema 1: Sea
an = c1an−1 + c2an−2
t2 – c1t – c2 = 0
an = b*(r1)n + d*(r2)n
Para la resolución de este ejercicio se debe encontrar las raíces de la siguiente ecuación cuadrática
t2 – c1t – c2 = 0
t2 – 5t – (-6) = t2 – 5t + 6 = 0
a0 = b*20 + d*30 = 7 = b + d
a1 = b*21 + d*31 = 16 = 2*b + 3*d
an = 5*2n + 2*3n
Solución de Relaciones de Recurrencia Homogéneas
Lineales con Coeficientes Constantes: Ejemplo 2
Ejemplo 6: Encuentre una fórmula explícita para la sucesión definida por la relación de
recurrencia dn = 3dn−1 − 2dn−2 y las siguientes condiciones iniciales d1 = 200 y d2 = 220.
Solución de Relaciones de Recurrencia Homogéneas
Lineales con Coeficientes Constantes: Ejemplo 3 (1)
Ejemplo 7: Encuentre una fórmula explícita para la sucesión de Fibonacci.
Teorema 2: Sea
an = c1an−1 + c2an−2
t2 – c1t – c2 = 0
an = b*(r1)n + d*n*(r2)n
Para la resolución de este ejercicio se debe encontrar las raíces de la siguiente ecuación cuadrática
t2 – c1t – c2 = 0
t2 – 4t – (-4) = t2 – 4t + 4 = 0
Al resolver esta ecuación se obtienen las raíces r1 = r2 = 2. En función de esto, la solución de la relación de
recurrencia en cuestión tiene la forma
a0 = b*20 + d*0*20 = 1 = b
a1 = b*21 + d*1*21 = 1 = 2*b + 2*d
casos base
n c*nk
n/b a*c*(n/b)k
A continuación se presenta un árbol con los primeros 4 niveles para la relación T(n). Note que este gráfico
está compuesto por 3 columnas. La primera describe el tamaño de los subproblemas de cada nivel, la
segunda muestra el árbol de recurrencia y la tercera muestra la cantidad de trabajo que se ejecuta en
cada nivel.
Dado que n es potencia de 2, entonces la cantidad de niveles del árbol anterior está dada por
log2(n) + 1. Dado que en cada nivel se realiza una cantidad de trabajo n, entonces la cantidad
total de trabajo que se realiza es T(n) = n*(log2(n) + 1).
ANÁLISIS
ASINTÓTICO DE
RELACIONES DE
RECURRENCIA
Análisis Asintótico de Relaciones de Recurrencia
Caso 1: Análisis asintótico de relaciones de recurrencia homogénea lineal. En este
caso primero se encuentra una solución explícita f(n) para la relación de
recurrencia y luego se encuentran las funciones O, y de f(n).
Para esta relación de recurrencia se tiene que f(n) = n/2, a = b = 3 y c = 1/2. Adicionalmente,
se puede verificar que f(n) = O(n), f(n) = (n) y f(n) = (n).
Caso 2: Para este caso se tiene que k = 0 dado que f(n) no tiene ningún logaritmo. El resultado
de logb(a) = log3(3) = 1. Por lo tanto se cumple el segundo caso del teorema maestro, con lo cual
T(n) = ( nx * [log2(n)]k + 1), donde x = log3(3) = 1. Entonces se tiene T(n) = ( n1 * log2(n)]0 + 1 ) =
( n*log2(n) ).
Análisis Asintótico de Relaciones de Recurrencia:
Ejemplo 3
Ejemplo 12: Calcule la notación de la relación de recurrencia T(n) = 3*T(n/2)+ n2
Para esta relación de recurrencia se tiene que f(n) = n2, a = 3, b = 2 y c = 1. Adicionalmente, se
puede verificar que f(n) = O(n2), f(n) = (n2) y f(n) = (n2).
Caso 2: Para este caso se tiene que k = 0 dado que f(n) no tiene ningún logaritmo. El resultado
de logb(a) = log2(3) = 1.585 2. Por lo tanto no se cumple el segundo caso del teorema maestro.
3*(n/2)2 n2
(3/4)* n2 n2
Dado que 3/4 1, entonces la última desigualdad es verdadera. Por lo tanto se cumple el
tercer caso del teorema maestro con lo cual T(n) = ( f(n) ) = (n2).
DEBER
Ejercicios (1)
R: T(n) = n*(log3(n) + 1)
Ejercicios (5)
Usando el teorema maestro, encontrar la notación de las siguientes relaciones
de recurrencia: