Recursión

Proceso de repetir elementos de manera autosimilar

Una forma visual de recursión conocida como efecto Droste . La mujer de esta imagen sostiene un objeto que contiene una imagen más pequeña de ella sosteniendo un objeto idéntico, que a su vez contiene una imagen más pequeña de ella sosteniendo un objeto idéntico, y así sucesivamente. Lata de cacao Droste de 1904 , diseñada por Jan Misset.

La recursión ocurre cuando la definición de un concepto o proceso depende de una versión más simple o previa de sí mismo. [1] La recursión se utiliza en una variedad de disciplinas que van desde la lingüística hasta la lógica . La aplicación más común de la recursión es en matemáticas y ciencias de la computación , donde una función que se define se aplica dentro de su propia definición. Si bien esto aparentemente define un número infinito de instancias (valores de función), a menudo se hace de tal manera que no puede ocurrir un bucle infinito o una cadena infinita de referencias.

Un proceso que exhibe recursión es recursivo . La retroalimentación de video muestra imágenes recursivas, al igual que un espejo infinito .

Definiciones formales

Ouroboros , un símbolo antiguo que representa una serpiente o un dragón que se come su propia cola.

En matemáticas y ciencias de la computación, una clase de objetos o métodos exhibe un comportamiento recursivo cuando puede definirse mediante dos propiedades:

  • Un caso base simple (o casos): un escenario de terminación que no utiliza recursión para producir una respuesta
  • Un paso recursivo : un conjunto de reglas que reduce todos los casos sucesivos hacia el caso base.

Por ejemplo, la siguiente es una definición recursiva del antepasado de una persona . Un antepasado es:

  • El padre de uno ( caso base ), o
  • El antepasado de uno de los padres ( paso recursivo ).

La secuencia de Fibonacci es otro ejemplo clásico de recursión:

Fib(0) = 0 como caso base 1,
Fib(1) = 1 como caso base 2,
Para todos los números enteros n > 1 , Fib( n ) = Fib( n − 1) + Fib( n − 2) .

Muchos axiomas matemáticos se basan en reglas recursivas. Por ejemplo, la definición formal de los números naturales según los axiomas de Peano se puede describir como: "El cero es un número natural, y cada número natural tiene un sucesor, que también es un número natural". [2] Mediante este caso base y esta regla recursiva, se puede generar el conjunto de todos los números naturales.

Otros objetos matemáticos definidos recursivamente incluyen factoriales , funciones (por ejemplo, relaciones de recurrencia ), conjuntos (por ejemplo, conjunto ternario de Cantor ) y fractales .

Hay varias definiciones más irónicas de recursión; véase humor recursivo.

Definición informal

Masa madre que se mezcla con harina para producir masa madre: la receta requiere un poco de masa madre sobrante de la última vez que se hizo la misma receta.

La recursión es el proceso por el que pasa un procedimiento cuando uno de los pasos del procedimiento implica invocar el propio procedimiento. Un procedimiento que pasa por la recursión se dice que es "recursivo". [3]

Para comprender la recursión, es necesario reconocer la distinción entre un procedimiento y la ejecución de un procedimiento. Un procedimiento es un conjunto de pasos basados ​​en un conjunto de reglas, mientras que la ejecución de un procedimiento implica realmente seguir las reglas y realizar los pasos.

La recursión está relacionada con, pero no es lo mismo que, una referencia dentro de la especificación de un procedimiento a la ejecución de algún otro procedimiento.

Cuando se define un procedimiento de esta manera, se crea inmediatamente la posibilidad de un bucle sin fin; la recursión sólo se puede utilizar adecuadamente en una definición si se omite el paso en cuestión en ciertos casos para que el procedimiento pueda completarse.

Incluso si se define correctamente, un procedimiento recursivo no es fácil de ejecutar para los humanos, ya que requiere distinguir la nueva invocación del procedimiento de la antigua, parcialmente ejecutada; esto requiere cierta administración en cuanto a cuánto han progresado las distintas instancias simultáneas de los procedimientos. Por esta razón, las definiciones recursivas son muy raras en situaciones cotidianas.

En el idioma

El lingüista Noam Chomsky , entre muchos otros, ha argumentado que la falta de un límite superior en el número de oraciones gramaticales en un idioma, y ​​la falta de un límite superior en la longitud de las oraciones gramaticales (más allá de las restricciones prácticas como el tiempo disponible para pronunciar una), se pueden explicar como consecuencia de la recursión en el lenguaje natural. [4] [5]

Esto se puede entender en términos de una definición recursiva de una categoría sintáctica, como una oración. Una oración puede tener una estructura en la que lo que sigue al verbo es otra oración: Dorothy piensa que las brujas son peligrosas , en la que la oración las brujas son peligrosas aparece en la oración más larga. Por lo tanto, una oración se puede definir de forma recursiva (de manera muy aproximada) como algo con una estructura que incluye una frase nominal, un verbo y, opcionalmente, otra oración. En realidad, este es solo un caso especial de la definición matemática de recursión.

Esto proporciona una manera de entender la creatividad del lenguaje (el número ilimitado de oraciones gramaticales) porque predice inmediatamente que las oraciones pueden tener una longitud arbitraria: Dorothy piensa que Toto sospecha que el Hombre de Hojalata dijo que... Hay muchas estructuras aparte de las oraciones que se pueden definir recursivamente y, por lo tanto, muchas maneras en las que una oración puede incrustar instancias de una categoría dentro de otra. [6] A lo largo de los años, los idiomas en general han demostrado ser susceptibles a este tipo de análisis.

La idea generalmente aceptada de que la recursión es una propiedad esencial del lenguaje humano ha sido cuestionada por Daniel Everett basándose en sus afirmaciones sobre la lengua pirahã . Andrew Nevins, David Pesetsky y Cilene Rodrigues se encuentran entre muchos otros que han argumentado en contra de esto. [7] En cualquier caso, se puede argumentar que la autorreferencia literaria es de un tipo diferente a la recursión matemática o lógica. [8]

La recursión juega un papel crucial no solo en la sintaxis, sino también en la semántica del lenguaje natural . La palabra y , por ejemplo, puede interpretarse como una función que puede aplicarse a significados de oraciones para crear nuevas oraciones, y lo mismo para significados de frases nominales, significados de frases verbales y otros. También puede aplicarse a verbos intransitivos, verbos transitivos o verbos ditransitivos. Con el fin de proporcionar una única denotación para ella que sea adecuadamente flexible, y se define típicamente de modo que pueda tomar cualquiera de estos diferentes tipos de significados como argumentos. Esto se puede hacer definiéndola para un caso simple en el que combina oraciones, y luego definiendo los otros casos recursivamente en términos del simple. [9]

Una gramática recursiva es una gramática formal que contiene reglas de producción recursiva . [10]

Humor recursivo

La recursión se utiliza a veces con humor en los libros de texto de informática, programación, filosofía o matemáticas, generalmente dando una definición circular o autorreferencial , en la que el supuesto paso recursivo no se acerca a un caso base, sino que conduce a una regresión infinita . No es inusual que dichos libros incluyan una entrada de broma en su glosario del tipo:

Recursión, véase Recursión . [11]

Una variación se encuentra en la página 269 en el índice de algunas ediciones del libro de Brian Kernighan y Dennis Ritchie The C Programming Language ; la entrada del índice se referencia a sí misma recursivamente ("recursion 86, 139, 141, 182, 202, 269"). Se pueden encontrar versiones tempranas de este chiste en Let's talk Lisp de Laurent Siklóssy (publicado por Prentice Hall PTR el 1 de diciembre de 1975, con fecha de copyright de 1976) y en Software Tools de Kernighan y Plauger (publicado por Addison-Wesley Professional el 11 de enero de 1976). El chiste también aparece en The UNIX Programming Environment de Kernighan y Pike. No apareció en la primera edición de The C Programming Language . El chiste es parte del folclore de la programación funcional y ya estaba muy extendido en la comunidad de programación funcional antes de la publicación de los libros antes mencionados. [12] [13]

Una placa conmemora el Proyecto de Historia Recursiva de Toronto.

Otro chiste es que "Para entender la recursión, debes entender la recursión". [11] En la versión en inglés del motor de búsqueda web Google, cuando se realiza una búsqueda de "recursión", el sitio sugiere "¿Quiso decir: recursión ?". [14] Una forma alternativa es la siguiente, de Andrew Plotkin : "Si ya sabes qué es la recursión, simplemente recuerda la respuesta. De lo contrario, encuentra a alguien que esté más cerca de Douglas Hofstadter que tú; luego pregúntale qué es la recursión".

Las siglas recursivas son otros ejemplos de humor recursivo. PHP , por ejemplo, significa "PHP Hypertext Preprocessor" (Preprocesador de hipertexto PHP), WINE significa "WINE Is Not an Emulator" (WINE no es un emulador), GNU significa "GNU's not Unix" (GNU no es Unix) y SPARQL denota "SPARQL Protocol and RDF Query Language" (Protocolo SPARQL y lenguaje de consulta RDF).

En matemáticas

El triángulo de Sierpinski : una recursión confinada de triángulos que forman un fractal

Conjuntos definidos recursivamente

Ejemplo: los números naturales

El ejemplo canónico de un conjunto definido recursivamente está dado por los números naturales :

0 está en norte {\displaystyle \mathbb {N}}
si n está en , entonces n + 1 está en norte {\displaystyle \mathbb {N}} norte {\displaystyle \mathbb {N}}
El conjunto de números naturales es el conjunto más pequeño que satisface las dos propiedades anteriores.

En lógica matemática, los axiomas de Peano (o postulados de Peano o axiomas de Dedekind–Peano) son axiomas para los números naturales presentados en el siglo XIX por el matemático alemán Richard Dedekind y por el matemático italiano Giuseppe Peano . Los axiomas de Peano definen los números naturales haciendo referencia a una función sucesora recursiva y a la adición y multiplicación como funciones recursivas.

Ejemplo: Procedimiento de prueba

Otro ejemplo interesante es el conjunto de todas las proposiciones "demostrables" en un sistema axiomático que se definen en términos de un procedimiento de prueba que se define inductivamente (o recursivamente) de la siguiente manera:

  • Si una proposición es un axioma, es una proposición demostrable.
  • Si una proposición puede derivarse de proposiciones verdaderas alcanzables por medio de reglas de inferencia, es una proposición demostrable.
  • El conjunto de proposiciones demostrables es el conjunto más pequeño de proposiciones que satisfacen estas condiciones.

Reglas de subdivisión finita

Las reglas de subdivisión finita son una forma geométrica de recursión que se puede utilizar para crear imágenes de tipo fractal. Una regla de subdivisión comienza con una colección de polígonos etiquetados con un número finito de etiquetas y, a continuación, cada polígono se subdivide en polígonos etiquetados más pequeños de una manera que depende únicamente de las etiquetas del polígono original. Este proceso se puede iterar. La técnica estándar de los "tercios medios" para crear el conjunto de Cantor es una regla de subdivisión, al igual que la subdivisión baricéntrica .

Recursión funcional

Una función puede definirse recursivamente en términos de sí misma. Un ejemplo conocido es la secuencia numérica de Fibonacci : F ( n ) = F ( n − 1) + F ( n − 2). Para que una definición de este tipo sea útil, debe ser reducible a valores definidos de forma no recursiva: en este caso, F (0) = 0 y F (1) = 1.

Pruebas que involucran definiciones recursivas

La aplicación de la técnica estándar de prueba por casos a conjuntos o funciones definidos recursivamente, como en las secciones anteriores, produce la inducción estructural , una poderosa generalización de la inducción matemática ampliamente utilizada para derivar pruebas en lógica matemática y ciencia informática.

Optimización recursiva

La programación dinámica es un enfoque de optimización que reformula un problema de optimización de varios periodos o de varios pasos en forma recursiva. El resultado clave de la programación dinámica es la ecuación de Bellman , que escribe el valor del problema de optimización en un momento anterior (o en un paso anterior) en términos de su valor en un momento posterior (o en un paso posterior).

El teorema de recursión

En teoría de conjuntos , este es un teorema que garantiza que existen funciones definidas recursivamente. Dado un conjunto X , un elemento a de X y una función f : XX , el teorema establece que existe una función única (donde denota el conjunto de números naturales incluido el cero) tal que F : norte incógnita {\displaystyle F:\mathbb {N} \a X} norte {\displaystyle \mathbb {N}}

F ( 0 ) = a {\displaystyle F(0)=a}
F ( norte + 1 ) = F ( F ( norte ) ) {\displaystyle F(n+1)=f(F(n))}

para cualquier número natural n .

Dedekind fue el primero en plantear el problema de la definición única de funciones de la teoría de conjuntos mediante recursión, y presentó un esbozo de un argumento en el ensayo de 1888 "¿Qué son y cómo se deben los números?" [15]. norte {\displaystyle \mathbb {N}}

Prueba de unicidad

Tome dos funciones y tales que: F : norte incógnita {\displaystyle F:\mathbb {N} \a X} GRAMO : norte incógnita {\displaystyle G:\mathbb {N} \a X}

F ( 0 ) = a {\displaystyle F(0)=a}
GRAMO ( 0 ) = a {\displaystyle G(0)=a}
F ( norte + 1 ) = F ( F ( norte ) ) {\displaystyle F(n+1)=f(F(n))}
GRAMO ( norte + 1 ) = F ( GRAMO ( norte ) ) {\displaystyle G(n+1)=f(G(n))}

donde a es un elemento de X.

Se puede demostrar por inducción matemática que F ( n ) = G ( n ) para todos los números naturales n :

Caso base : F (0) = a = G (0) por lo que la igualdad se cumple para n = 0 .
Paso inductivo : supongamos que F ( k ) = G ( k ) para algún . Entonces F ( k + 1) = f ( F ( k )) = f ( G ( k )) = G ( k + 1) . a norte {\displaystyle k\in \mathbb {N}}
Por lo tanto, F ( k ) = G ( k ) implica F ( k + 1) = G ( k + 1) .

Por inducción, F ( n ) = G ( n ) para todo . norte norte {\displaystyle n\in \mathbb {N}}

En informática

Un método común de simplificación es dividir un problema en subproblemas del mismo tipo. Como técnica de programación informática , esto se llama divide y vencerás y es clave para el diseño de muchos algoritmos importantes. Divide y vencerás sirve como un enfoque de arriba hacia abajo para la resolución de problemas, donde los problemas se resuelven resolviendo instancias cada vez más pequeñas. Un enfoque contrario es la programación dinámica . Este enfoque sirve como un enfoque de abajo hacia arriba, donde los problemas se resuelven resolviendo instancias cada vez más grandes, hasta que se alcanza el tamaño deseado.

Un ejemplo clásico de recursión es la definición de la función factorial , dada aquí en código Python :

def  factorial ( n ):  si  n  >  0 :  devuelve  n  *  factorial ( n  -  1 )  de lo contrario :  devuelve  1

La función se llama a sí misma recursivamente en una versión más pequeña de la entrada (n - 1)y multiplica el resultado de la llamada recursiva por n, hasta llegar al caso base , de manera análoga a la definición matemática de factorial.

La recursión en la programación informática se ejemplifica cuando se define una función en términos de versiones más simples, a menudo más pequeñas, de sí misma. La solución al problema se idea entonces combinando las soluciones obtenidas a partir de las versiones más simples del problema. Un ejemplo de aplicación de la recursión es en los analizadores sintácticos para lenguajes de programación. La gran ventaja de la recursión es que un programa informático finito puede definir, analizar o producir un conjunto infinito de posibles oraciones, diseños u otros datos.

Las relaciones de recurrencia son ecuaciones que definen una o más secuencias de forma recursiva. Algunos tipos específicos de relaciones de recurrencia se pueden "resolver" para obtener una definición no recursiva (por ejemplo, una expresión de forma cerrada ).

El uso de la recursión en un algoritmo tiene ventajas y desventajas. La principal ventaja suele ser la simplicidad de las instrucciones. La principal desventaja es que el uso de memoria de los algoritmos recursivos puede crecer muy rápidamente, lo que los vuelve poco prácticos para instancias más grandes.

En biología

En plantas y animales aparecen a veces formas que parecen haber sido creadas mediante procesos recursivos, como en las estructuras ramificadas en las que una parte grande se ramifica en dos o más partes más pequeñas similares. Un ejemplo es el brócoli romanesco . [16]

En las ciencias sociales

Los autores utilizan el concepto de recursividad para poner de relieve la situación en la que se encuentran específicamente los científicos sociales cuando producen conocimiento sobre el mundo del que siempre forman parte. [17] [18] Según Audrey Alejandro, “como científicos sociales, la recursividad de nuestra condición se relaciona con el hecho de que somos a la vez sujetos (ya que los discursos son el medio a través del cual analizamos) y objetos de los discursos académicos que producimos (ya que somos agentes sociales que pertenecen al mundo que analizamos)”. [19] A partir de esta base, ella identifica en la recursividad un desafío fundamental en la producción de conocimiento emancipador que exige el ejercicio de esfuerzos reflexivos :

Estamos socializados en discursos y disposiciones producidos por el orden sociopolítico que pretendemos desafiar, un orden sociopolítico que, por lo tanto, podemos reproducir inconscientemente mientras intentamos hacer lo contrario. La recursividad de nuestra situación como académicos –y, más precisamente, el hecho de que las herramientas disposicionales que utilizamos para producir conocimiento sobre el mundo son producidas por este mundo– evidencia la necesidad vital de implementar la reflexividad en la práctica y plantea el principal desafío para hacerlo.

—  Audrey Alejandro, Alejandro (2021)

En los negocios

En la ciencia de la gestión, a veces se hace referencia a la recursión como el proceso de iteración a través de niveles de abstracción en grandes entidades comerciales. [20] Un ejemplo común es la naturaleza recursiva de las jerarquías de gestión , que van desde la gerencia de línea hasta la gerencia superior  pasando por la gerencia media . También abarca la cuestión más amplia de la estructura de capital en la gobernanza corporativa . [21]

En el arte

Muñecas recursivas: el conjunto original de muñecas Matryoshka de Zvyozdochkin y Malyutin , 1892
La cara frontal del Tríptico Stefaneschi de Giotto , 1320, contiene recursivamente una imagen de sí mismo (sostenida por la figura arrodillada en el panel central).

La muñeca Matrioska es un ejemplo artístico físico del concepto recursivo. [22]

La recursión se ha utilizado en pinturas desde el Tríptico Stefaneschi de Giotto , realizado en 1320. Su panel central contiene la figura arrodillada del cardenal Stefaneschi, sosteniendo el tríptico como una ofrenda. [23] [24] Esta práctica se conoce más generalmente como el efecto Droste , un ejemplo de la técnica de Mise en abyme .

La Galería de Estampas de MC Escher (1956) es una estampa que representa una ciudad distorsionada que contiene una galería que contiene recursivamente la imagen, y así hasta el infinito . [25]

En la cultura

En la película Origen se ha adoptado la costumbre de añadir el sufijo -cepción a un sustantivo para indicar en tono de broma la recursión de algo. [26]

Véase también

Referencias

  1. ^ Causey, Robert L. (2006). Lógica, conjuntos y recursión (2.ª ed.). Sudbury, Mass.: Jones and Bartlett Publishers. ISBN 0-7637-3784-4.OCLC 62093042  .
  2. ^ "Axiomas de Peano | Matemáticas". Enciclopedia Británica . Consultado el 24 de octubre de 2019 .
  3. ^ "Definición de RECURSIVO". www.merriam-webster.com . Consultado el 24 de octubre de 2019 .
  4. ^ Pinker, Steven (1994). El instinto del lenguaje . William Morrow.
  5. ^ Pinker, Steven; Jackendoff, Ray (2005). "La facultad del lenguaje: ¿qué tiene de especial?". Cognición . 95 (2): 201–236. CiteSeerX 10.1.1.116.7784 . doi :10.1016/j.cognition.2004.08.004. PMID  15694646. S2CID  1599505. 
  6. ^ Nordquist, Richard. "¿Qué es la recursión en la gramática inglesa?". ThoughtCo . Consultado el 24 de octubre de 2019 .
  7. ^ Nevins, Andrew; Pesetsky, David; Rodrigues, Cilene (2009). "Evidencia y argumentación: una respuesta a Everett (2009)" (PDF) . Lengua . 85 (3): 671–681. doi :10.1353/lan.0.0140. S2CID  16915455. Archivado desde el original (PDF) el 2012-01-06.
  8. ^ Drucker, Thomas (4 de enero de 2008). Perspectivas sobre la historia de la lógica matemática. Springer Science & Business Media. pág. 110. ISBN 978-0-8176-4768-1.
  9. ^ Barbara Partee y Mats Rooth. 1983. En Rainer Bäuerle et al., Meaning, Use, and Interpretation of Language . Reimpreso en Paul Portner y Barbara Partee, eds. 2002. Formal Semantics: The Essential Readings . Blackwell.
  10. ^ Nederhof, Mark-Jan; Satta, Giorgio (2002), "Análisis de gramáticas no recursivas libres de contexto", Actas de la 40.ª reunión anual de la Asociación de Lingüística Computacional (ACL '02) , Stroudsburg, PA, EE. UU.: Asociación de Lingüística Computacional, págs. 112-119, doi : 10.3115/1073083.1073104.
  11. ^ ab Hunter, David (2011). Fundamentos de matemáticas discretas. Jones y Bartlett. pág. 494. ISBN 9781449604424.
  12. ^ Shaffer, Eric. "CS 173: Estructuras discretas" (PDF) . Universidad de Illinois en Urbana-Champaign . Consultado el 7 de julio de 2023 .
  13. ^ "Introducción a la informática y programación en C; Sesión 8: 25 de septiembre de 2008" (PDF) . Universidad de Columbia . Consultado el 7 de julio de 2023 .
  14. ^ "recursión - Búsqueda de Google". www.google.com . Consultado el 24 de octubre de 2019 .
  15. ^ A. Kanamori, "Elogio del reemplazo", pp.50--52. Bulletin of Symbolic Logic, vol. 18, no. 1 (2012). Consultado el 21 de agosto de 2023.
  16. ^ "Imagen del día: Coliflor fractal". 28 de diciembre de 2012. Consultado el 19 de abril de 2020 .
  17. ^ Bourdieu, Pierre (1992). "Doble vínculo y conversión". Pour Une Anthropologie Réflexive . París: Le Seuil.
  18. ^ Giddens, Anthony (1987). Teoría social y sociología moderna . Polity Press.
  19. ^ Alejandro, Audrey (2021). «Análisis reflexivo del discurso: una metodología para la práctica de la reflexividad». Revista Europea de Relaciones Internacionales . 27 (1): 171. doi : 10.1177/1354066120969789 . ISSN  1354-0661. S2CID  229461433.
  20. ^ "La interfaz entre las pequeñas empresas y los bancos canadienses: un modelo recursivo". Revistas SAGE.
  21. ^ Beer, Stafford (1972). El cerebro de la empresa . ISBN 978-0471948391.
  22. ^ Tang, Daisy. "Recursión" . Consultado el 24 de septiembre de 2015. Más ejemplos de recursión: muñecas rusas Matryoshka. Cada muñeca está hecha de madera maciza o es hueca y contiene otra muñeca Matryoshka en su interior.
  23. «Giotto di Bondone y colaboradores: tríptico de Stefaneschi». Vaticano . Consultado el 16 de septiembre de 2015 .
  24. ^ Svozil, Karl (2018). Causalidad física: determinismo, aleatoriedad y eventos no causados. Springer. p. 12. ISBN 9783319708157.
  25. ^ Cooper, Jonathan (5 de septiembre de 2007). «Arte y matemáticas» . Consultado el 5 de julio de 2020 .
  26. ^ "-ception – The Rice University Neologisms Database". Universidad Rice. Archivado desde el original el 5 de julio de 2017. Consultado el 23 de diciembre de 2016 .

Bibliografía

  • Recursión: tutorial de Alan Gauld
  • Archivos Zip hasta el final
  • Nevins, Andrew y David Pesetsky y Cilene Rodrigues. Evidencia y argumentación: una respuesta a Everett (2009). Language 85.3: 671--681 (2009)
Obtenido de "https://es.wikipedia.org/w/index.php?title=Recursión&oldid=1251544936"