You are on page 1of 22

2 ECUACIONES DE RECURRENCIA

Una ecuacin de recurrencia es una expresin finita que define implcitamente una sucesin, en la
cual un elemento de la sucesin se determina por medio de otros elementos ms sencillos, que
incluyen casos iniciales o bsicos. La conexin con el anlisis de algoritmos estriba en 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.
Solucionar una ecuacin de recurrencia consiste en encontrar una expresin cerrada para una
sucesin que satisfaga la ecuacin, i.e., una expresin en la que los valores de los elementos de la
sucesin no dependan de otros valores de la sucesin. Para el caso del anlisis de algoritmos, es
deseable contar con esta clase de expresiones cerradas, puesto que, a partir de formulaciones
recurrentes para funciones de complejidad, resulta difcil establecer rdenes de crecimiento asinttico
correspondientes.
La solucin de ecuaciones de recurrencia es de suyo importante para la informtica, si se piensa en
que las matemticas que esta disciplina utiliza son eminentemente constructivas. Muchos objetos
informticos son definidos de manera recurrente y los razonamientos inductivos son piedra angular
para desarrollos tericos y prcticos, utilizados de forma natural y, en ocasiones, incluso
inconscientemente. En este captulo se estudiarn mtodos para solucionar algunas clases sencillas
de ecuaciones de recurrencia, como son la mayora que ocurren en el anlisis de algoritmos.
Una observacin, que puede simplificar en gran parte la comprensin de las ideas que aqu se
exponen, es el paralelo existente de la teora de ecuaciones de recurrencia con la de teora clsica
de ecuaciones diferenciales. Se puede notar que los desarrollos en ambas teoras guardan
similitudes evidentes, v.gr., segn se trate de ecuaciones lineales, homogneas y no homogneas,
ecuaciones no lineales. Como es de esperarse, la consciencia de estas similitudes har ms
sencillos el entendimiento y uso de una de las teoras si esto ya se tiene para la otra. Por otra parte,
cabe advertir que, de igual manera que pueden encontrarse ecuaciones diferenciales muy difciles de
solucionar, i.e., para las que se desconoce un procedimiento sistemtico de solucin, es concebible
encontrar ecuaciones de recurrencia cuya solucin est fuera del alcance de los mtodos que aqu
se exponen. O incluso, puede ser imposible encontrar soluciones por mtodos algortmicos.


2.1 DEFINICIONES BASICAS
22 Eficiencia de algoritmos


Una sucesin (de X) es una funcin cuyo dominio son los nmeros naturales, i.e., x: nat X.
Un elemento (de una sucesin) x es cualquier valor x( n) , tambin denotado x
n

6
. El codominio X
suele ser un conjunto numrico, tpicamente R, el conjunto de los nmeros reales. El conjunto de las
sucesiones de X se denota X. Para referirse a una sucesin como un todo se utiliza la notacin x
n
.
La definicin de una sucesin x
n
debe ser finita y consistente. En consecuencia, una definicin es
una descripcin finita de un mtodo que permita determinar, despus de un nmero finito de pasos,
un nico valor para cualquier elemento x
n
, nnat.
Una definicin para una sucesin se llamar cerrada (o bien, no recurrente ), si el valor de cada
elemento x
n
se determina independientemente de los valores de otros elementos. Por ejemplo, una
definicin cerrada para la sucesin de los cuadrados de los nmeros naturales:
c
n
= n
2
, par a n0.
En cambio, una definicin recurrente expresa los valores de algunos elementos en trminos de los
de otros, usualmente anteriores en el orden de nat. Por supuesto, debe haber elementos, llamados
iniciales o bsicos , cuya definicin particular es no recurrente. Como ejemplo, la siguiente es una
definicin recurrente para la sucesin de los cuadrados de los nmeros naturales:
c
0
= 0
c
n
= c
n- 1
+ 2n - 1 , par a n1.
Una ecuacin de recurrencia no es otra cosa que una definicin recurrente de una sucesin
(incgnita ) que debe determinarse. En realidad, el concepto puede entenderse de manera algo ms
general, si se piensa que al plantear una ecuacin es factible que varias sucesiones puedan
satisfacer la recurrencia en cuestin. De este modo, una ecuacin de recurrencia representa un
conjunto de posibles sucesiones que la cumplen.
Una solucin (de tipo X) para una ecuacin de recurrencia es una definicin cerrada de una
sucesin de elementos en X que la satisface. Llamaremos soluciones naturales (resp. enteras,
reales, complejas) aquellas de tipo nat (resp. Z, R, C). Como ya se anot, es factible que una
ecuacin tenga ms de una solucin. Por ejemplo, la ecuacin
x
n
= x
n- 1
+ 2n - 1 , par a n1,
tiene infinitas soluciones. Si se buscan aquellas cuyos elementos sean nmeros naturales, las
soluciones son de la forma:
x
n
= n
2
+ a , par a n0,
donde a es cualquier nmero natural. En especial, cuando a=0, se obtiene la solucin particular
x
n
= n
2
, par a n0.
Por otra parte, nada garantiza que una ecuacin de recurrencia deba tener al menos una solucin,
bien sea porque se est interesado en soluciones sobre un codominio X especfico, o porque la
recurrencia impone condiciones que ninguna sucesin puede satisfacer. Por ejemplo, la ecuacin:
x
0
= 1
x
n
2

= - x
n- 1
, par a n1

6
En ocasiones se llama 'sucesin' a x( nat) , el conjunto de sus elementos.
2 Ecuaciones de recurrencia 23


no tiene soluciones de valores reales (aunque s de valores complejos). En cambio, la ecuacin:
x
n
= x
n
+ 1

, par a n1
no tiene soluciones de ningn tipo.
Un sistema de ecuaciones de recurrencia es un conjunto de ecuaciones de recurrencia. Una solucin
de un sistema de ecuaciones es un conjunto de sucesiones que satisfacen las ecuaciones que lo
conforman. De nuevo, un sistema puede tener ninguna, una o varias soluciones.
Por ejemplo, el sistema:
a
n
= a
n- 1
+ 2b
n- 1
, par a n1

b
0
= 1
b
n+1
= 2b
n
, par a n0

tiene como soluciones reales (A es cualquier constante) :
a
n
= A + 2
n+1
, par a n0

b
n
= 2
n

, par a n0.
2.2 EJEMPLOS EN ANLISIS DE ALGORITMOS
En general, la dificultad en el anlisis de complejidad de un algoritmo es directamente proporcional a
lo complicada que sea la definicin misma del algoritmo. La misma idea, expresada de una manera
positiva, lleva a la conclusin de que un algoritmo simple de expresar ser, as mismo, simple de
analizar.
Enseguida se presentan tres ejemplos sencillos, y en cierto modo representativos, de la clase de
recurrencias que se pueden dar en el anlisis de algoritmos.
2.2.1 Conteo de nodos en rboles binarios
Los rboles son estructuras de datos cuya definicin es eminentemente recurrente. Es de esperarse
que las preguntas que se hagan sobre ellos puedan plantearse y resolverse, en forma natural,
mediante algoritmos recurrentes.
Supngase que se desea recorrer un rbol binario perfecto
7
de altura n, haciendo en cada nodo una
visita de costo constante, y que el costo de viajar de un nodo a otro es despreciable. Ntese que el
costo de un algoritmo que resuelva este problema est directamente relacionado con a
n
, el nmero
de nodos de un rbol binario perfecto de altura n.
La figura siguiente sugiere una ecuacin de recurrencia para a
n
:

7
Es decir: un nodo tiene 0 2 hijos y todas las hojas tienen igual altura.
24 Eficiencia de algoritmos


b
n
a
n- 1

As, si b
n
denota el nmero de nodos en el ltimo nivel de un rbol binario perfecto de altura n,
deber valer el sistema de ecuaciones de recurrencia:
b
0
= 1
b
n
= 2b
n- 1
, par a n1
a
0
= 1
a
n
= a
n- 1
+ b
n
, par a n1.
Otra manera de visualizar el conteo de a
n
, resulta de considerar un rbol binario perfecto de altura n
como el nodo raz que tiene como subrboles dos rboles binarios perfectos, cada uno de altura n- 1.
Grficamente:
a
n- 1
a
n- 1

Entonces se llega a la ecuacin de recurrencia:
a
0
= 1
a
n
= 1 + 2a
n- 1
, par a n1.
Siempre se puede intentar resolver una ecuacin expandiendo la recurrencia, de la siguiente forma:
a
n
= 1 + 2a
n- 1

= 1 + 2( 1 + 2a
n- 2
) = 1 + 2 + 4a
n- 2

= 1 + 2 + 4( 1 + 2a
n- 3
) = 1 + 2 + 4 + 8a
n- 3



= 1 + 2 + 8 + + 2
n
a
0

= +: 0kn: 2
k

= 2
n+1
- 1
La anterior relacin se cumple si n1. Pero, como el resultado tambin vale para n=0, se tiene la
solucin:
a
n
= 2
n+1
- 1 , par a n0.
Para este ejemplo se ha tenido la suerte de encontrar que la ltima expansin es una expresin
conocida (una suma geomtrica), de manera que la expresin cerrada para a
n
se determina con
facilidad.

2 Ecuaciones de recurrencia 25

2.2.2 La sucesin de Fibonacci
El siguiente problema, debido a Leonardo de Pisa (o Leonardo Fibonacci), pretende modelar la
reproduccin de conejos mediante un esquema sencillo de suposiciones:
Supngase que los conejos se reproducen de acuerdo a las siguientes reglas:
Cada pareja de conejos frtiles tiene una pareja de conejitos cada mes.
Cada pareja de conejos comienza a ser frtil a partir del segundo mes de vida.
Ninguna pareja de conejos muere ni deja de reproducirse.
Un granjero, que conoce estos hbitos de los conejos, decide construir una conejera y coloca en ella,
en el primer mes, una pareja de conejos recin nacidos. Cuntas parejas de conejos habr en el
mes n?
Para tratar de contestar la pregunta definimos las siguientes variables discretas, para n0:
F
n
= poblacin total de parejas de conejos en el mes n,
N
n
= nmero de parejas de conejos nacidos en el mes n, y
V
n
= nmero de parejas de conejos adultos en el mes n.
Del enunciado del problema se obtienen las siguientes relaciones, para n0:
( 1) F
n
= N
n
+ V
n
( 2) N
n+1
= V
n

( 3) V
n+1
= N
n
+ V
n
.
De (1) y (3) se obtiene, para n0:
( 4) V
n+1
= F
n

De esta forma, para n0:
F
n+2
= N
n+2
+ V
n+2
, por ( 1)
= V
n+1
+ V
n+2
, por ( 2)
= F
n
+ F
n+1
, por ( 4) .
As, para calcular el nmero total de parejas de conejos en un mes dado, basta conocer el mismo
dato en los dos meses anteriores. Esto es cierto del segundo mes en adelante. Como en el mes 0 no
hay conejos y en el mes 1 se coloca una pareja en la conejera, se tiene que:
F
0
= 0
F
1
= 1
F
n
= F
n- 2
+ F
n- 1
, par a n2.
La ecuacin anterior define la llamada sucesin de Fibonacci . Una primera pregunta surge al tratar
de encontrar una solucin para esta recurrencia. Por otra parte, se puede pensar en escribir un
algoritmo que, para n0, calcule el valor de F
n
. Para este algoritmo, resulta interesante conocer su
complejidad temporal.
Lo ms sencillo es disear una funcin recurrente, cuya correccin est justamente garantizada por
la ecuacin que define F
n
:
f unct i on f i b ( n: nat) : nat
{Pos: f i b = F
n
}
26 Eficiencia de algoritmos

if n = 0 f i b: = 0
[ ] n = 1 f i b: = 1
[ ] n 2 f i b: = f i b( n- 1) + f i b( n- 2)
fi

Si slo la suma se considera como operacin bsica, se tendr la siguiente ecuacin de recurencia
para T
fib
(n):
T
f i b
( n) = 0 , par a 0n<2
= T
f i b
( n- 1) + T
f i b
( n- 2) + 1 , par a n2.
Para tener una idea de una forma cerrada para T
f i b
( n) , se pueden tabular sus primeros valores y
compararlos con los de F
n
. De aqu se puede proponer y mostrar por induccin que
T
f i b
( n) = F
n+1
- 1 , par a n0.
En otras palabras,
T
f i b
( n) = O( F
n+1
) .
Como una variante puede presentarse un algoritmo de agenda basado en f i b, i.e., una versin
iterativa de la funcin recurrente (cf. [Car91]):
f unct i on f i bi t ( n: nat) : nat
{Pos: f i bi t = F
n
}
var agenda : sequ nat;
i , m: nat
m, agenda: = 0, n;
{I nv: F
n
= m+ + k: kagenda: F
k
}
do agenda i , agenda: = head( agenda) , t ai l ( agenda) ;
if i =0 skip
[ ] i =1 m: = m+ 1;
[ ] i 2 agenda: = agenda & i - 1, i - 2
fi
od;
f i bi t : = m

En este caso, se tiene la recurrencia:
T
f i bi t
( n) = 0 , par a n=0
= 1 , par a n=1
= T
f i bi t
( n- 1) + T
f i bi t
( n- 2) , par a n2.
Es decir, la sucesin T
f i bi t
( n) soluciona la ecuacin de Fibonacci, i.e.,
2 Ecuaciones de recurrencia 27

T
f i bi t
( n) = F
n
, par a n0.
De este modo, se obtiene que, tambin:
T
f i bi t
( n) = O( F
n
) .
Ms adelante se mostrar cmo se soluciona la ecuacin de Fibonacci, lo que entonces completar
el anlisis de fib y fibit (V. 2.3) .
2.2.3 Ordenamiento por intercalamiento
El ordenamiento por intercalamiento (ingls: mergesort), consiste en partir una lista de entrada de n
elementos en dos mitades, ordenar cada mitad e intercalar los resultados. Al hacer el anlisis de
complejidad en el peor caso, suponiendo que la operacin de intercalamiento toma a lo sumo n-1
comparaciones, se obtiene la ecuacin
T
m
( n) = 0 , si n1
= T
m
(


n
2

) + T
m
(
n
2
) + n - 1 , si n>1
Aunque en este momento no es formalmente fcil de demostrar, es intuitivamente plausible que:
T
m
( n) = ( M( n) )
donde
M( n) = 0 , si n1
= 2 M(
n
2
) + n - 1 , si n>1
Una solucin para esta ltima ecuacin deber ser una sucesin que cumpla las restricciones
anotadas para los argumentos en que la divisin por 2 tenga sentido; obsrvese que, para otros
argumentos no se afirma nada. Aparentemente, resolver de esta clase de ecuaciones parece una
tarea complicada, pero ms adelante se ver un mtodo algebraico relativamente general para
encontrar soluciones.
Ms generalmente, al analizar algoritmos recurrentes se presentan con frecuencia ecuaciones de la
forma:
T( n) = f ( n) , si nn
0

= k T(
n
k
) + g( n) , si n>n
0.
La situacin se presenta cuando se utilizan tcnicas de desarrollo de algoritmos de "dividir y
conquistar". Un algoritmo, cuya complejidad temporal tenga la forma indicada, parte un problema de
tamao n en k problemas de tamao
n
k
. El armado de la solucin del todo a partir de las soluciones
de las partes tiene como costo g( n) .
2.3 ECUACIONES DE RECURRENCIA LINEALES

Las ecuaciones de recurrencia ms sencillas para las que se pueden encontrar soluciones de
manera sistemtica son las ecuaciones lineales. De los ejemplos de 2.2, tanto la sucesin de
28 Eficiencia de algoritmos

Fibonacci como las funciones para contar nodos de rboles binarios perfectos son definidas por
ecuaciones lineales.
Se considerarn sucesiones cuyos elementos estn en un conjunto X {R, C}. Recurdese que X
es el conjunto de las sucesiones de X.
Una ecuacin de recurrencia lineal (de orden k) es de la forma:
Par a n0:
i
k
=

0
p
i
a
n+i
= f
n

donde, para i =0, , k: p
i
X, y f
n
es una sucesin conocida. Cuando f =0, se dice que la
ecuacin es homognea.
Con las definiciones:
a
n
+ b
n
: = a
n
+ b
n

c a
n
: = c b
n

el conjunto X es un espacio lineal. La sucesin nula 0 : = 0 es el mdulo de la suma de
sucesiones.
2.3.1 Operadores lineales
Un operador
F: X X
es lineal si se cumple que:
F( ca
n
+ b
n
) = c F( a
n
) + F( b
n
)
Los parntesis se omiten, a menos que haya ambigedades, es decir:
Fa
n
= F( a
n
)
Sea LX el conjunto de los operadores lineales sobre X. Con las operaciones
( F + G) a
n
: = Fa
n
+ Ga
n

( cF) a
n
: = c Fa
n

LX es un espacio vectorial. El operador 0 (funcin constante 0) es el mdulo de la suma de
operadores lineales.
Adems, se puede definir una multiplicacin o composicin de operadores lineales:
( FG) a
n
: = F( Ga
n
)
y tambin la composicin de dos operadores lineales es un operador lineal. Ms aun, valen las
distributividades:
F ( G + H) = FG + FH
( F + G) H = FH + GH
Hay un mdulo de la multiplicacin: el operador identidad I , que por supuesto es operador lineal.
Como notacin, el operador cI se escribe tambin c.
2 Ecuaciones de recurrencia 29

Se pueden definir potencias enteras de operadores lineales:
F
0
= I
F
r +1
= FF
r
, r 0.
As, un polinomio sobre un operador lineal F es de nuevo un operador lineal.
De la teora de espacios vectoriales, se sabe que el ncleo de un operador lineal es un espacio
vectorial. Cuando se trata de un polinomio, se puede mostrar que el ncleo tiene como dimensin el
grado del polinomio.
2.3.2 El operador E
El operador
E: X X
a
n
a

a
n+1

es el operador de adelanto
8
. Es lineal, puesto que:
E( ca
n
+ b
n
) = E( ca
n
+ b
n
)
= ca
n+1
+ b
n+1

= ca
n+1
+ b
n+1

= c Ea
n
+ Eb
n

Obsrvese que, para i 0:
E
i
a
n
= a
n+i

Como ya se vio, tanto las potencias como los polinomios sobre E son tambin operadores lineales.
Con ayuda del operador de adelanto E, una ecuacin de recurrencia lineal se puede escribir, en
forma equivalente:

i
k
=

0
p
i
E
i
a
n
= f
n

o bien
P( E) a = f
donde P( E) es el polinomio sobre el operador de adelanto E:
P( E) =
i
k
=

0
p
i
E
i
.
Cuando en la anterior expresin se cambia el operador E por una variable numrica x, se habla del
polinomio caracterstico de la ecuacin, i.e.,
P( x) =
i
k
=

0
p
i
x
i
.

8
El operador E corresponde al operador diferencial D en la teora clsica de ecuaciones diferenciales.
30 Eficiencia de algoritmos

2.3.3 Ecuaciones lineales homogneas
Una ecuacin homognea tiene la forma
P( E) a = 0.
Supngase una raz r para el polinomio caracterstico P( x) , i.e. P( r ) =0. Considrese ahora la
sucesin r
n
. Entonces:
P( E) r
n
= p
i
E
i
r
n

i
k
=

0
= p
i
r
n+i

i
k
=

0
= r
n
p
i
r
i

i
k
=

0
= r
n
P( r )
= 0
Es decir, r
n
es solucin de la ecuacin homognea. El siguiente resultado es una generalizacin de
la anterior observacin:
Teorema A
a Para 0j <m: ( E- r )
m
n
j
r
n
= 0
b Si r es una raz de multiplicidad mpara el polinomio P( x) , entonces las sucesiones n
j
r
n
, con
j =0, , m- 1, son soluciones linealmente independientes de la ecuacin homognea
P( E) a = 0.
c Sea P( x) = ( x- r
1
)
m
1
( x- r
s
)
m
s
el polinomio caracterstico de la ecuacin de recurrencia
homognea
P( E) a = 0.
Entonces, la solucin ms general para esta ecuacin es de la forma
Par a n0: a
n
=
i
s
=

1 j
i
m
=

0
1
c
i j
n
j
r
n
i

donde los coeficientes c
i j
son constantes cualesquiera.
Demostracin:
Se omite.
[]
La parte a del teorema resuelve una ecuacin de recurrencia muy sencilla, como es:
( E- r )
m
a = 0.
Se puede mostrar que la dimensin del espacio vectorial de las soluciones de una ecuacin de grado
m es, precisamente, m. La parte b muestra una base (mfunciones independientes) para este
espacio. Finalmente, la parte c revela un mtodo para encontrar todas las soluciones que una
ecuacin lineal homognea pueda tener: se deben encontrar todas las races del polinomio
caracterstico, con las multiplicidades que les correspondan. Para encontrar una solucin particular,
2 Ecuaciones de recurrencia 31

las constantes c
i j
de la expresin general se pueden determinar considerando restricciones sobre
algunos valores particulares de a
n
.
Ejemplos
En los siguientes ejemplos se buscan soluciones reales y complejas para las ecuaciones de
recurrencia planteadas.
a Races reales diferentes
Considrese la ecuacin:
a
0
= 0
a
1
= 1
a
n
- 5a
n- 1
+ 6a
n- 2
= 0 , par a n2.
Para poder utilizar el Teorema A, la recurrencia debe reescribirse de manera que el ndice ms
pequeo sea n. De esta forma, la ecuacin se plantea:
a
0
= 0
a
1
= 1
a
n+2
- 5a
n+1
+ 6a
n
= 0 , par a n0.
O bien, utilizando el operador E:
a
0
= 0
a
1
= 1
( E
2
- 5E + 6) a

= 0.
El polinomio caracterstico es
x
2
- 5x + 6 = ( x - 2) ( x - 3) ,
de manera que la solucin general tiene la forma:
a
n
= A 2
n
+ B 3
n
, par a n0,

con A y B constantes determinadas por las condiciones iniciales, i.e., debe cumplirse que
a
0
= A + B = 0
a
1
= 2A + 3B = 1.
As, se tiene como nica solucin:
a
n
= 3
n
- 2
n
, par a n0.
b Races reales repetidas
Considrese la ecuacin:
a
0
= 0
a
1
= 1
a
n+2
- 4a
n+1
+ 4a
n
= 0 , par a n0.
32 Eficiencia de algoritmos

Con ayuda del operador E, se plantea en forma equivalente:
a
0

= 0
a
1
= 1
( E
2
- 4E + 4) a = ( E - 2)
2
a = 0.
As, el polinomio caracterstico tiene una sola raz, 2, de multiplicidad 2. Entonces la solucin
ms general tiene la forma:
a
n
= A 2
n
+ Bn 2
n
, par a n0.
Para determinar las constantes A y B, se observa que:
a
0
= A = 0
a
1
= 2A + 2B = 1,
de donde se concluye que:
a
n
= n 2
n- 1
, par a n0.
c Races complejas
En los problemas de anlisis de algoritmos no es corriente encontrar ecuaciones cuyos
polinomios caractersticos tengan una o varias races complejas. Sin embargo, la solucin de
tales recurrencias puede encontrarse, sin consideraciones adicionales, usando el Teorema A.
Por ejemplo, para la ecuacin (, nmeros complejos arbitrarios):
a
0
=
a
1
=
a
n+2

+ a
n
= 0 , par a n0.
En trminos del operador E:
a
0
=
a
1
=
( E
2

+ 1) a

= 0
El polinomio caracterstico es:
x
2
+ 1 = 0,
con races complejas i , - i . La solucin ms general es de la forma:
a
n
= A i
n
+ B ( - i )
n
, par a n0.

Usando las condiciones de frontera:
a
n
=
a- i b
2
i
n
+
a+i b
2
( - i )
n
, par a n0.
[]
2.3.4 Ecuaciones lineales no homogneas
2 Ecuaciones de recurrencia 33

El siguiente teorema y su corolario proporcionan un mtodo para resolver ecuaciones lineales no
homogneas en la forma ms general:
Teorema B
Sea P( E) un polinomio sobre el operador de adelanto E. Para la ecuacin lineal no homognea
P( E) a = f ( *)
la solucin ms general es de la forma:
a = p + h,
donde p es una solucin particular de ( *) , i.e., p es una sucesin tal que
P( E) p = f ,
y h es la solucin ms general de la ecuacin homognea correspondiente
P( E) h = 0.
Demostracin:
Se omite.
[]
Corolario C
Supngase que, en la ecuacin ( *) , el polinomio caracterstico P( x) es factorizable
P( x) = ( x- r
1
)
m
1

( x- r
s
)
m
s
.

Entonces, la solucin ms general de (*) es de la forma:
a
n
= p
n
+
i
s
=

1 j
i
m
=

0
1
c
i j
n
j
r
n
i
, par a n0,
donde p
n
es una solucin particular cualquiera de ( *) .
Demostracin:
Se omite.
[]
En otras palabras, el mtodo sugerido para solucionar una ecuacin lineal no homognea consiste en
encontrar una ecuacin particular arbitraria a la que debe sumarse la solucin ms general de la
ecuacin lineal homognea correspondiente. Como en la seccin anterior ya se explic un mtodo
para resolver, de la manera ms general, una ecuacin lineal homognea, se plantea entonces el
problema de encontrar una solucin particular para la ecuacin no homognea.
El mtodo del anulador
Para una ecuacin de recurrencia lineal
P( E) a = f
34 Eficiencia de algoritmos

supngase conocido un polinomio A( E) , tal que A( E) f = 0. Entonces:
A( E) P( E) a = A( E) f = 0.
Ahora, Q( E) = A( E) P( E) es un polinomio en E, para el que se debe resolver una ecuacin
homognea. La forma general de las soluciones se establece con el Teorema A. El polinomio A( E)
se llama un anulador de f .
A continuacin se presenta una lista de anuladores para algunas clases de sucesiones, as como la
razn para que as suceda:
( E- r )
m
es anulador para n
j
r
n
, si j = 0,,m-1.
Es la misma afirmacin del Teorema A, parte a.

( E- 1)
m
es anulador para n
j
, si j = 0,,m-1.
Caso particular del anterior: r =1.

Si A es un anulador de a , tambin lo es de k a
n
, para una constante k.
n
Porque A es un operador lineal.

Si A es un polinomio en E, anulador de a
n
, y B es un polinomio en E, anulador de b
n
, entonces
la composicin AB es un polinomio en E, anulador de a +b .
n n
El hecho de que A y B sean polinomios en E permite afirmar que AB = BA. Entonces:
ABa
n
+b
n
= A( Ba
n
+b
n
)
= ABa
n

= BAa
n

= B0
= 0
Ejemplos
a Considrese la ecuacin:
a
0
= 1
a
n
= 2a
n- 1
+ 1 , par a n1.
En trminos del operador E:
a
0
= 1
( E - 2) a = 1
Un anulador para 1 es ( E - 1) . Por esta razn:
( E - 1) ( E - 2) a = ( E - 1) 1 = 0.
Por el Corolario C:
a
n
= A + B 2
n
, par a n0.
Adems, se sabe que:
a
0
= 1 = A + B
2 Ecuaciones de recurrencia 35

a
1
= 2a
0
+ 1 = 3 = A + 2B,
de donde se deduce que
a
n
= 2
n+1
- 1

, par a n0.

b Sea la ecuacin de recurrencia:
a
0
= 0
a
n+1
+ a
n
= 3n + 2
n
, par a n0.
Es decir:
a
0
= 0
( E + 1) a = 3n + 2
n

Ahora, puesto que ( E - 1)
2
anula a 3n y ( E - 2) anula a 2
n
, se tendr que:
( E - 1)
2
( E - 2) ( E + 1) a = ( E - 1)
2
( E - 2) 3n + 2
n
= 0.
De este modo, la solucin ms general tiene la forma:
a
n
= A + Bn + C 2
n
+ D( - 1)
n
, par a n0.
A partir de la ecuacin original se puede comprobar que:
a
0
= 0, a
1
= 1, a
2
= 4, a
3
= 6,
y, finalmente:
a
n
=
1
12
( 2
n+2
+ 18n - 9 + ( - 1)
n
5) , par a n0.
[]
2.3.5 Ejercicios
1 Pruebe el Teorema A de 2.3.3.
AYUDA: (a) se muestra por induccin sobre j . Para (b), el polinomio caracterstico es de la
forma A( E) ( E- r )
m
, donde A es un polinomio para el que r no es raz. Para (c), puede mostrarse
una biyeccin entre el espacio vectorial de las soluciones y un espacio vectorial de dimensin
m= m
1
++m
s
.
2 Sea F
n
la sucesin de Fibonacci. Compruebe las siguientes afirmaciones, para n0:
a F
n
= O(
n
) , donde
9
=
1+ 5
2
.
b F
n
= emc(
n

5
) , donde emc( x) es el entero ms cercano al nmero x.

9
El nmero (del escultor griego Fidias) fue llamado por Euclides la "media y extrema razn". En el Renacimiento se le
denomin la "divina proporcin" y ltimamente se le conoce como el "nmero de oro". En el arte clsico griego, la razn de a
1 se juzg como "la ms esttica posible", de modo que aparece representada en las medidas de construcciones, esculturas,
etc.
36 Eficiencia de algoritmos


c Para n>0:
( )
1 1
1 0
n
=
( )
F
n+1
F
n
F
n
F
n- 1
.

d F
n+1
F
n- 1
- F
n
2
= ( - 1)
n
.
AYUDA: Calcule determinantes a ambos lados en c.

e Para k0: F
nk
es un mltiplo de F
k
.
3 Encuentre la solucin ms general para las ecuaciones de recurrencia:
a a
0
= 1
a
1
= 5
a
n+1
= 2a
n
- a
n- 1
, par a n1.
b a
0
= 1
a
1
= 0
a
n+1
= 4a
n
- 4a
n- 1
, par a n1.
c a
0
= 1
a
1
= 1
a
n+1
= a
n
+ a
n- 1
, par a n1.
d a
n
= a
1
+ 2b
n- 1
, par a n0
n-
b
0
= 1
b
n+1
= 2b
n
, par a n0
4 D anuladores para cada una de las siguientes sucesiones (n0):
a 12 b 12n c 12n
2
d n
m- 1
e 4 - 4n + n
2
f r
n
g n
m- 1
r
n
h 4 - 4n + n
2
+ 5
n
3 Encuentre la solucin ms general para las ecuaciones de recurrencia:
a a
0
= 1
a
n+1
= 3a
n
+ n , par a n0.
b x
n
= x
n- 1
+ 2
n
- 1 , par a n1.
c x
n
= x
n- 1
+ 2
n
- 1 , par a n1.

2.4 ECUACIONES DE RECURRENCIA NO LINEALES

Al igual que en la teora de ecuaciones diferenciales, los problemas serios comienzan cuando se trata
de resolver ecuaciones de recurrencia no lineales. No hay mtodos que funcionen para todos los
casos, pero para ciertas familias de ecuaciones es posible efectuar transformaciones de los espacios
que hacen las veces de dominio y rango de las posibles soluciones, de suerte que la ecuacin
transformada s es lineal.
2.4.1 Cambio de dominio
2 Ecuaciones de recurrencia 37

Antes de intentar un mtodo general, considrese la ecuacin que se utiliz en el anlisis del
ordenamiento por intercalamiento en 2.2.3:
M( n) = 0 , si n1
= 2 M(
n
2
) + n - 1 , si n>1
La recurrencia no es lineal y, ms aun, debe entenderse que puede no tener sentido para valores
impares de n. Sin embargo, considrese la sucesin x
k
, que describe los saltos que se encuentran
en la recurrencia, ligada a la de los nmeros naturales por las relaciones
10
:
x
0
= 1
x
k- 1
=
n
2
, x
k
= n.
De las dos ltimas ecuaciones, se obtiene una ecuacin que debe satisfacer x:
x
k
- 2x
k- 1
= 0.
De otra forma:
x
0
= 1
( E - 2) x = 0.
Entonces, se obtiene que
x
k
= 2
k
, par a k0.
Recurdese que, adems, n = 2
k
. Ahora, considrese la sucesin definida por
a
k
= M( x
k
) , par a k0
= M( 2
k
) , par a k0
Con estas transformaciones, se buscan soluciones para:
a
0
= T
1
= 0
a
k
= 2a
k- 1
+ 2
k
- 1
Esta ltima es una ecuacin lineal sobre k, y tiene como solucin:
a
k
= 2
k
( k - 1) + 1 , par a k0.
Finalmente, la solucin se puede expresar en trminos de n, la variable original:
M( n)

= n l og n - n + 1 , par a n1.
(El valor M(0) = 0 no est incluido en la frmula anterior, precisamente porque x
0
= 1).
[]
El mtodo

10
Obsrvese cmo se evita decir que x
0
= 0, puesto que esto hara trivialmente nula la secuencia x.
38 Eficiencia de algoritmos

Para tratar de generalizar el mtodo utilizado en la solucin de la anterior recurrencia, supngase una
ecuacin de la forma
T
n
= f ( T
( n)
)
donde se espera que ( n) <n. La tcnica de cambio de dominio considera, en primer lugar, la
sucesin x
k
, definida por la recurrencia
x
k
= n
x
k- 1
= ( n) ,
o bien,
x
k- 1
= ( x
k
) .
Si esta ltima recurrencia se puede resolver para x, se define la sucesin
a
k
= T
x
k
y se trata de resolver la ecuacin original con el cambio de variable sealado, i.e., puesto que T
x
k
=
f ( T
x
k- 1
) , deber tenerse que
a
k
= f ( a
k- 1
) .
De lograrse una solucin para esta ltima ecuacin, puede refrasearse en trminos de n, la variable
original, ya que:
T
n
= T
x
k
= a
k
.
[]
Ejemplo
Un ejemplo ms complejo de transformacin de dominio surge de analizar un algoritmo de
multiplicacin de nmeros binarios de n bits, el cual realiza 3 multiplicaciones de
n
2
+ 1 bits ms un
trabajo adicional de costo O( n) . Si se analiza recurrentemente el algoritmo, para estimar su
complejidad temporal, se llega a una recurrencia de la forma (si n3 el algoritmo no recurre):
T( n) = O( 1) , par a n3
= 3 T(
n
2
+ 1) + O( n) , par a n>3
Como se busca una cota superior para estimar T( n) , basta considerar una funcin T1( n) , tal que
(, son constantes adecuadas):
T1( n) = , par a n3
= 3 T1(
n
2
+ 1) + n , par a n>3
Naturalmente, T = ( T1) . Se buscar ahora una solucin para T1, utilizando una transformacin de
dominio. En primer lugar, se establece la ecuacin:

x
0
= 3
x
k
= n
2 Ecuaciones de recurrencia 39

x
k- 1
=
n
2
+ 1
De manera que:
x
0
= 3
x
k+1
- 2x
k
= - 2.
Es decir:
x
k
= 2
k
+ 2 , par a k0.
Ahora se define
a
k
= T1( x
k
) , par a k0
y se llega a la ecuacin:
a
0
= T1( x
0
) = T1( 3) =
a
k
= 3a
k- 1
+ 2
k
+ 2 , par a k1,
que tiene como solucin:
a
k
= ( + 3) 3
k
- 2
k+1
- , par a k0.
Finalmente
11
:
T1( n)

= ( + 3) ( n - 2)
l og3
- 2n + 3 , par a n3.
Asintticamente:
T1( n) = O( n
l og3
) , si + 3 0
= O( n) , si + 3 = 0, 0
= O( 1) , si = 0, = 0.
[]
2.4.2 Cambio de rango
Considrese la ecuacin de recurrencia no lineal:
a
0
= 1
a
n
= 3 ( a
n- 1
)
2
, par a n1.
Si se toman logaritmos en ambos lados de las anteriores relaciones, se obtiene:
l og a
0
= 0
l og a
n
= l og 3 + 2 l og a
n- 1

, par a n1.
Ahora, llamando b
n
= l og a
n
, para n0, la recurrencia se puede refrasear en:

11
Recurdese que a
x
= b
x l og
b
a
.
40 Eficiencia de algoritmos

b
0
= 0
b
n
= l og 3 + 2 b
n- 1

, par a n1.
Esta ltima es una ecuacin lineal, con solucin
b
n
= ( l og 3) ( 2
n
- 1) , par a n0.
Por lo tanto:
a
n
= 3
2
n
- 1
, par a n0.

El mtodo
Para una ecuacin de recurrencia sobre una incgnita a
n
, un cambio de rango es una
transformacin sobre la incgnita. As, si la ecuacin original es de la forma:
T
n
= f ( T
( n)
) ,
con (n)<n, se propone una ecuacin de la forma
b
n
= g( T
n
) ,
donde g es una funcin invertible. Para que el mtodo tenga xito, la funcin compuesta g( f ( . ) )
debe ser manipulable algebraicamente. En otras palabras, se puede resolver
b
n
= g( f ( T
( n)
) ) ,
para la incgnita b
n
. En este caso:
T
n
= g
- 1
( b
n
) .
[]
Ejemplo
Considrese la ecuacin de recurrencia:
a
0
= 1
a
n+1
= 5 a
n
, par a n0.
En un primer intento de cambio de rango se puede elevar al cuadrado para deshacer el radical:
a
2
0
= 1
a
2
n+1
= 5
2
a
n
, par a n0.
Ahora pueden tomarse logaritmos:
2 l og a
0
= 0
2 l og a
n+1
= 2 l og 5 + l og a
n
, par a n0.
Con la transformacin b
n
= l og a
n
, se consigue una formulacin como:
b
0
= 0
2 Ecuaciones de recurrencia 41

b
n+1
-
1
2
b
n
= l og 5 , par a n0.
Resolviendo para b
n
:
b
n
= ( l og 25) ( 1 - 2
- n
) , par a n0,
de manera que:
a
n
= 25
( 1- 2
- n
)
, par a n0
[]
2.4.3 Ejercicios
1 Resuelva las siguientes ecuaciones de recurrencia (k es una constante positiva):
a T( n) = c
1
, si n=1
= k T(
n
k
) + c
2
, si n2
b T( n) = c
1
, si n=1
= k T(
n
k
) + c
2
n , si n2
c T( n) = c
1
, si n=1
= k T(
n
k
) + c
2
n
m
, si n2
d T( n) = c
1
, si n=1
= T(
n
2
) + c
2
, si n2
e T( n) = c
1
, si n=1
= 2 T(
n
2
) + c
2
, si n2
2 Considrese la ecuacin de recurrencia (a, b son constantes, c es una funcin):
T( 1) = c( 1)
T( n) = a T(
n
b
) + c( n) , par a nb
Muestre que, para n = b
k
, con k0, se tiene que:
T( n) =
i
k
=

0 i
k
=

0
a
i
c(
n
b
i
)
3 Para la ecuacin de recurrencia (a, b, c son constantes):
T( 1) = c
T( n) = a T(
n
b
) + c n , par a nb
a Muestre que, para n = b
k
, con k0, se tiene que:
T( n) = c n
1 - ( a/ b)
k+1
1 - ( a/ b)
, si ab
= c n ( k+1) , si a=b
b Pruebe que:
42 Eficiencia de algoritmos

T( n) = ( n) , si a<b
= ( n l og n) , si a=b
= ( n
l og
b
a
) , si a>b
4 Use ecuaciones de recurrencia para hallar frmulas compactas (que no involucran sumatorias)
para:
a La suma de los n primeros cuadrados perfectos.
b La suma de los n primeros cuadrados perfectos.
5 a Calcule la suma +: 1km:
k
2
k
.
b Estime asintoticamente la suma +: 1 k l og n:
k
2
k
.
6 El anlisis de un mtodo rpido para multiplicar nmeros de n bits lleva a la ecuacin
T( n) = l og n + 2 T( 4 n)
a Para qe valores de n podra tener sentido esta ecuacin de recurrencia, considerando
que mide la complejidad de un algoritmo?
b Estime la complejidad asinttica de T( n) .
7 Una secuencia S de smbolos se dice parentizada si uno de los siguientes casos vale:
La longitud de S es 1, i.e., S consta de un solo smbolo
S es de la forma ( S
1
) ( S
2
) , donde S
1
y S
2
son secuencias parentizadas.
Si a
1
, a
2
, , a
n
son n smbolos diferentes y p( n) es el nmero de secuencias parentizadas
que contienen los elementos a
1
, a
2
, , a
n
dispuestos de izquierda a derecha exactamente en
ese orden,
a Halle una ecuacin de recurrencia que defina a p( n) , n1.
b Demuestre que p( n+1) =
1
n+1
y que p( n+1) 2
n- 1
, n0.

n
n 2
Bibliografa
[Apo69] Apostol, T.M., Calculus, Blaisdell Publ. Co., 1969.
[Car91] Cardoso, R., Verificacin y desarrollo de programas, Ediciones Uniandes -Ecoe, 2a. impresin revisada, 1993.
[Mel77] Melhorn, K., Effiiziente Algorithmen, Teubner Studienbcher - Informatik, 1977.

You might also like