Está en la página 1de 6

Relacin de Recurrencia

Las relaciones de recurrencia para la secuencia {an} es una ecuacin que nos permite
expresar {an} en trminos de uno o ms de los trminos previos (a0,a1,a2.an-1) para
todos los enteros donde este no es negativo.
Una secuencia es llamada relacin de recurrencia si sus trminos satisfacen la relacin
de recurrencia.
Cmo resolver una relacin de recurrencia?

Resolver una relacin de recurrencia consiste en determinar una formula explicita


(cerrada) para el termino general, es decir una funcin no recursiva de n.
Se pueden resolver por diferentes mtodos ya sea geomtrica, polinomio, linear o
generando funciones. En este caso hacemos uso de la aritmtica.
Mtodo Aritmtico

Consideremos una secuencia aritmtica como 5, 8, 11, 14, 17.


Debido a que cada trmino es 3 veces mayor que el anterior, puede ser
expresado como una recurrencia como demostrado.
Reconoce que cualquier secuencia en forma de an=an 1+d es una secuencia
aritmtica.
Escribe la forma cerrada de la formula de una secuencia aritmtica,
posiblemente en incgnitas como demostrado.
Resuelve las incgnitas dependiendo de cmo inicio la secuencia. En este caso,
debido a que 5 fue el termino 0, la formula es an=5+3n.
o Si en su lugar quisiera que el 5 el primer trmino, obtendras an=2+3n

Mtodo Geomtrico

Considera una secuencia geomtrica 3, 6, 12, 24, 48.


Debido a que cada termino es 3 veces mayor que el anterior puede ser expresado
como una recurrencia como demostrado.
Reconoce que cualquier recurrencia de forma an=rxan-1 es una secuencia
geomtrica.
Escribe la forma cerrada de la frmula para una secuencia geomtrica,
posiblemente con incgnitas como demostrada.
Resuelve cualquier incgnita dependiendo de cmo inici la secuencia. En este
caso, debido a que el 3 fue el trmino 0o, la frmula es an = 3*2n. Si en su lugar
quisieras que 3 fuera el primer trmino, obtendras an = 3*2(n-1).
Mtodo de Polinomio.

Considera la secuencia 5, 0, -8, -17, -25, -30, .. dada la secuencia mostrada.


Cualquier recurrencia de la forma mostrada, donde p(n) es cualquier polinomio
en, tendr una formula polinomial cerrada mayor del grado uno conrrespecto al
grado de p.
Escribe la forma general de un polinomio del grado requerido. En este ejemplo,
p es cuadrtica, as que necesitaremos un cubo que representa la secuencia an.
Debido a que un cubo tiene 4 coeficientes desconocidos, 4 trminos de la
secuencia se requieren para obtener el sistema resultante. Cualquiera de los 4 se
puede utilizar, as que utiliza los trminos 0, 1, 2, and 3. Ejecuta la recurrencia al
revs para encontrar el trmino -1opodra dar un sistema ms fcil de resolver,
pero no es necesario.
Resuelve el sistema resultante de deg (p)+2 ecuaciones en deg (p)=2 incgnitas
como demostrado.
Si a fue uno de los trminos que utilizaste para resolver los coeficientes, da
como resultado el trmino de la constante del polinomio libres y puedes reducir
inmediatamente el sistema a deg (p)+1 ecuaciones en deg (p)+1 incgnitas como
demostradas.
Resuelve el sistema de las ecuaciones lineares para encontrar c3 = 1/3, c2 = -5/2,
c1 = -17/6, y c = 5. Presenta la frmula cerrada para (an) como un polinomio con
coeficientes conocidos.

Mtodo Linear

Este es el primer mtodo capaz de resolver la secuencia de Fibonacci en la


introduccin, pero el mtodo resuelve cualquier recurrencia donde el trmino
noes una combinacin linear de los trminos k previos. As que vamos a probar
los diferentes ejemplos mostrados donde los primeros trminos son 1, 4, 13, 46,
157,....
Escribe las caractersticas polinomiales de la recurrencia. Esto se encuentra al
reemplazar cada an en la recurrencia por xn y dividiendo por x(n-k) dejando un
polinomio mnico de grado k y un trmino constante que no es cero.
Resuelve el polinomio caracterstico. En este caso, la caracterstica tiene un
grado 2 por lo que podemos utilizar la frmula cuadrtica para encontrar las
races.

Cualquier expresin de la forma mostrada satisface la recurrencia. La c es


cualquier constante y la base de los exponentes son las races de la caracterstica
encontrada arriba. Esto puede ser verificado por induccin.

Si la caracterstica tiene una raz mltiple, este paso se modifica ligeramente. Si r


es la raz de la multiplicidad m, usa (c1rn + c2nrn + c3n2rn + ... + cmnm-1rn) en lugar
de simplemente (c1rn). Por ejemplo, la sucesin inicia 5, 0, -4, 16, 144, 640,
2240,... satisface la relacin de recurrencia an = 6an-1 - 12an-2 + 8an-3. El
polinomio caracterstico tiene triple raz de 2 y una frmula de forma cerrada
an = 5*2n - 7*n*2n + 2*n2*2n.

Encuentra la (c) que satisfaga las condiciones inciales especificadas. Como en el


ejemplo del polinomio, esto se hace al crear un sistema linear de ecuaciones de
los trminos inciales. Debido a que este ejemplo tiene dos incgnitas,
necesitamos dos trminos. Cualquier par de trminos funcionar, as que toma el
0o y 1opara evitar tener que elevar un nmero irracional a una potencia alta.
Resuelve el sistema de ecuaciones resultante
Conecta las constantes resultantes en la formula general como la solucin
general.

Ejemplo

Defina caractersticas de las ecuaciones de recurrencia:

Pn=(1.11)Pn-1 . Es lineal homognea de grado 1


fn= fn-1 + fn-2 . Es lineal homognea de grado 2
an= an-5. Es lineal homognea de grado 5
an= an-1 + a2n-2 . No es lineal
Hn= 2Hn-1 + 1. No es homognea
Bn= nBn-1. No tiene coeficientes constantes

La primera alternativa consiste en buscar soluciones de la forma an= rn, donde r


es una constante. Note que an=rn es una solucin de la relacin de recurrencia
an=c1an-1+c2an-2+ . +ckan-k si y solo si:
rn=c1rn-1+c2rn-2+ . +ckrn-k.

Cuando dividimos ambos lados por rn-k y reacomodamos para que la ecuacin
resultante sea igualada a 0, obtenemos la siguiente ecuacin:
rk c1rk-1 c2rk-2 . ck-1r ck = 0. (ecuacin caracterstica)

Consecuentemente, la secuencia { an } con an= rn es una solucin si y solo si r


es una solucin de la ecuacin caracterstica. Las soluciones de esta ecuacin
son llamadas las races caractersticas de la relacin de recurrencia..

Utilizamos la relacin de recurrencia para escribir el n-simo trmino en trminos de


algunos de sus predecesores. Luego utilizamos de manera sucesiva la relacin de
recurrencia para reemplazar cada uno de los trminos por algunos de sus predecesores.
La recurrencia en la computacin

La conexin con el anlisis de algoritmos estriba que la forma que se ha adoptado para
medir las complejidades, utiliza funciones cuyo dominio son los nmeros naturales, o
en otras palabras sucesiones. Si el algoritmo es recurrente, es de esperarse que las
complejidades, como funciones que estiman la demanda de recursos a lo largo de la
ejecucin, sean sucesiones que satisfacen ciertas ecuaciones de recurrencia.

En un algoritmo recursivo la funcin (n) que establece su complejidad viene dada por
una ecuacin de recurrencia. Una ecuacin de recurrencia nos permiten indicar el
tiempo de ejercicios para los distintos casos del algoritmo recursivo (casos base y
recursivo)

En la informtica la recurrencia se implementa mediante funciones y el primer lenguaje


de programacin que implemento funciones recursivas fue el lenguaje lips.

Algoritmo Recursivo

En ciencias de la computacin, la recursividad es un elemento muy importante en la


solucin de algunos problemas. Por definicin, un algoritmo recursivo es aquel que
utiliza una parte de l mismo como solucin al problema. La otra parte generalmente es
la solucin trivial, es decir, aquella cuya solucin ser siempre conocida, es muy fcil
de calcular, o es parte de la definicin del problema a resolver. Dicha solucin sirve
como referencia y adems permite que el algoritmo tenga una cantidad finita de pasos.
La implementacin de estos algoritmos se realiza generalmente en conjunto con una
estructura de datos, la pila, en la cual se van almacenando los resultados parciales de
cada recursin.

Ventajas:
-Algunos problemas son esencialmente recursivos, por lo cual su implementacin se
facilita mediante un algoritmo de naturaleza recursiva, sin tener que cambiarlo a un
mtodo iterativo, por ejemplo.
-En algunas ocasiones el cdigo de un algoritmo recursivo es muy pequeo
Desventajas
-Puede llegar a utilizar grandes cantidades de memoria en un instante, pues implementa
una pila cuyo tamao crece linealmente con el nmero de recursiones necesarias en el
algoritmo. Si los datos en cada paso es muy grande, podemos requerir grandes
cantidades de memoria.
Cmo podemos resolver un algoritmo recursivo?

La funcin potencia (b,n), vista en unidades anteriores, realizaba n iteraciones para


poder obtener el valor de b^n. Sin embargo, es posible optimizarla teniendo en cuenta
que:

b^n = b^(n/2) b^(n/2) si n es par.

b^n = b^(n1)/2 b^(n1)/2 b si n es impar.

Antes de programar cualquier funcin recursiva es necesario decidir cul ser el caso
base y cul el caso recursivo. Para esta funcin, tomaremos n = 0 como el caso base, en
el que devolveremos 1; y el caso recursivo tendr dos partes, correspondientes a los dos
posibles grupos de valores de n.

def potencia(b,n):

Precondicin: n debe ser mayor o igual que cero.

Devuelve: b\^n.

# Caso base

if n <= 0:

return 1

# n par

if n % 2 == 0:

pot = potencia(b, n/2)

return pot * pot

# n impar

else:

pot = potencia(b, (n-1)/2)

return pot * pot * b


El uso de la variable pot en este caso no es optativo, ya que es una de las ventajas
principales de esta implementacin: se aprovecha el resultado calculado en lugar de
tener que calcularlo dos veces. Vemos que este cdigo funciona correctamente:

>>> potencia(2,10)

1024

>>> potencia(3,3)

27

>>> potencia(5,0)

1
El orden de las llamadas, haciendo un seguimiento simplificado de la funcin ser:

potencia(2,10)

pot = potencia(2,5) # b 2 n 10

pot = potencia(2,2) #b2n5

pot = potencia(2,1) #b2n2

pot = potencia(2,0) # b 2 n 1

return 1 #b2n0

return 1 * 1 * 2 # b 2 n 1 pot 1

return 2 * 2 # b 2 n 2 pot 2

return 4 * 4 * 2 # b 2 n 5 pot 4

return 32 * 32 # b 2 n 10 pot 32
Se puede ver, entonces, que para calcular 2^10 se realizaron 5 llamadas a potencia,
mientras que en la implementacin ms sencilla se realizaban 10 iteraciones. Y esta
optimizacin ser cada vez ms importante a medida que aumenta n, por ejemplo,
para n = 100 se realizarn 8 llamadas recursivas, para n = 1000, 11 llamadas.

También podría gustarte