¿Dijiste recursión?
Introducción
La palabra recursión no la acepta la Real Academia española, a pesar de ser ampliamente usada en matemáticas y computación. Su palabra análoga más cercana es la de recurrencia que significa "que vuelve a ocurrir". En la recursión hay algo que se repite, es decir, que vuelve a ocurrir.
En matemáticas, el significado de "recursión" es más fácil de captar a través de ejemplos. El factorial de un número
se define como "
por el factorial de
". El problema es que entonces faltaría definir el factorial de
. El problema se disuelve definiendo el caso base: el factorial de cero es 1.
Factorial de un número
El factorial de un número natural puede ser pensado como una función de los naturales en los naturales. Se denota con
y tiene la siguiente definición (no recursiva):
. El caso base es, por convención,
.
Ejemplos:
,
.
La forma recursiva de definir la función factorial es: Si
entonces
(caso base), de otra manera (paso inductivo),
Ejemplo:
.
Notemos en este ejemplo la principal utilidad de la recursión: el problema se reduce a otro de una dimensión menor.




Pero
sí está definido.
Entonces:





Recursividad
La definición misma de los números naturales es recursiva: 1 es un número natural (caso base), si n es un número natural entonces n+1 es un número natural.
Sea
una función que transforma números naturales en elementos de un conjunto
(esto lo abreviamos
). Se dice que la función
es recursiva si existe el caso base
tal que
, y una operación
que transforma el número natural
y un elemento
en un elemento
tales que:


Dentro de esta definición (que no es la más general) está el factorial de un número natural:
, con 
En general, se requiere el caso base y la transformación de
en términos de
y
Por ejemplo, si definimos
como
con
, se tiene
etc.
Torres de Hanoi
La solución del acertijo denominado las Torres de Hanoi es también recursiva. En este acertijo hay tres postes donde se pueden colocar discos de diferentes diámetros. Inicialmente hay n discos en el poste 1 y el reto es pasarlos al poste 3 con la restricción de que nunca se ponga en un mismo poste un disco sobre uno de mayor diámetro y moviendo solamente un disco a la vez.
La solución para
(caso base) es trivial, para
se tiene que usar el poste 2 como de transición y "pasar el disco 1 al poste 2 y usar la solución para
para el disco 2 y para el disco 1". De esta manera, si se sabe la solución para
discos entonces la solución para
se obtiene "pasando los primeros
al poste 2, pasar el disco
al poste 3 y finalmente pasar los
del poste 2 al poste 3." (Ver comentario más abajo sobre "pensar recursivamente".)
El lector podría verificar que para 3 discos se necesitan 7 movimientos. Para demostrar que para
discos se requieren
movidas, designemos con
el número mínimo de movidas para pasar
discos del poste 1 al 3. Demostremos que
.
El caso base es
. Para este caso basta con hacer una movida, es decir,
. Así que la fórmula
se cumple para el caso base.
Ahora el paso inductivo. La hipótesis de inducción es que para n discos son necesarias
movidas, y queremos probar que
(si la hipótesis de inducción es cierta). Es decir, queremos probar que si la fórmula se cumple para
entonces también se cumple para
.
(El siguiente razonamiento no es fácil de asimilar; para su comprensión cabal el lector debe razonarlo de manera recursiva. ¿Y cómo lo puede razonar recursivamente si todavía no sabe razonar recursivamente? Bueno, ésta es la paradoja del aprendizaje, y lo único que yo podría decir es --aquí va una de mis frases favoritas-- el significado está en el uso.)
Puesto que para
discos lo que tenemos que hacer es pasar los
discos superiores al poste 2 (
movidas, por hipótesis de inducción), luego pasar el disco inferior al poste 3 (una movida) y, finalmente, pasar los
discos en el poste 2 al poste 3 (
movidas), tenemos entonces que:
(por lo recién dicho)
(por la hipótesis de inducción)
(expandiendo el producto)
(simplificando)
El teorema queda demostrado. (Este ejemplo ilustra el hecho de que el paso inductivo en general no es fácil. Es casi obligatorio "ver" la recursividad de la solución del acertijo.)
Factorización prima
Uno de los usos de más potencia de la recursividad es en el diseño de algoritmos. El siguiente ejemplo es el procedimiento equivalente a la prueba de la descomposición canónica de un número natural
--factorización prima:
Paso de inicialización: Dividir
entre
hasta encontrar un primer divisor
de
.
Si
entonces ya acabamos: n es primo (por favor, mediten sobre la veracidad de esta afirmación); de otra manera, si p es menor que n, entonces p es primo (porque si hubiese un divisor d de p tendría que ser menor que p y sería también divisor de n --y se logra una contradicción, pues entonces p no sería el primer divisor de n según el procedimiento.)
Paso recursivo: (Ya tenemos un primer factor primo de
) Repetir el proceso para
.
Otra instancia de uso de la recursión como método de demostración
Con esta idea general de que si ya sabemos resolverlo para n entonces lo podemos resolver para
veamos un pequeño teorema. Pero antes recordemos la notación sumatoria.
.

= 
Ejercicio: Demostrar que 
Demostrar que para todo
,
Solución
Como tenemos que demostrar una propiedad para todos los números naturales a partir de
, el caso base es el
, el cual tenemos que demostra directamente y después en el paso inductivo supondremos que
, y que la propiedad se cumple para n.
Caso base (
):

Supongamos que
es tal que
.
Entonces, sumando
a ambos lados de
se obtiene 
Por otro lado,
(por recursividad)
(por la propiedad distributiva de la multiplicación respecto a la suma)
(porque
)
(porque
)
Pero antes demostramos que 
De aquí que 
como se quería.
Los saluda
jmd
PD: Una definición recursiva "viola" una de las reglas del definir. No puede ser que el concepto definido entre a formar parte de su definición (no se puede definir algo en términos de sí mismo). Pero, se puede pensar a la definición recursiva como la excepción de la regla.
Ejemplo clásico: un ancestro de X es, ya sea uno de los padres de X o bien un ancestro de sus padres.
Otro ejemplo: un directorio (en el disco duro de mi PC) es una parte del disco que contiene archivos y directorios.
Su carácter de excepción es quizá lo que hace difícil comprender la recursión.
| Adjunto | Descripción | Tamaño | |
|---|---|---|---|
| Torres de Hanoi.PNG | Torres de Hanoi.PNG | 33.02 KB | |

