En la teoría de la computabilidad , la función de Ackermann , que recibe su nombre de Wilhelm Ackermann , es uno de los ejemplos más simples [ 1 ] y de los primeros descubiertos de una función totalmente computable que no es recursiva primitiva . Todas las funciones recursivas primitivas son totales y computables, pero la función de Ackermann ilustra que no todas las funciones totalmente computables son recursivas primitivas. Se construye esencialmente diagonalizando una secuencia de funciones recursivas primitivas.seleccionado de la jerarquía de Grzegorczyk . Esto hace que la función de Ackermann sea el primer punto límite.de la jerarquía de rápido crecimiento .
Tras la publicación por parte de Ackermann [ 2 ] de su función (que tenía tres argumentos enteros no negativos), muchos autores la modificaron para adaptarla a diversos propósitos, de modo que hoy en día "la función de Ackermann" puede referirse a cualquiera de las numerosas variantes de la función original. Una versión común es la función de Ackermann-Péter de dos argumentos desarrollada por Rózsa Péter y Raphael Robinson . Esta función se define a partir de la relación de recurrencia.con casos base apropiados . Su valor crece muy rápidamente; por ejemplo,resultados en, un número entero con 19.729 dígitos decimales. [ 3 ]
Historia
A finales de la década de 1920, los matemáticos Gabriel Sudan y Wilhelm Ackermann , alumnos de David Hilbert , estudiaban los fundamentos de la computación. Tanto Sudan como Ackermann son reconocidos [ 4 ] por descubrir funciones totalmente computables (denominadas simplemente "recursivas" en algunas referencias) que no son recursivas primitivas . Sudan publicó la función Sudan , menos conocida , y poco después, de forma independiente, en 1928, Ackermann publicó su función(del griego, la letra phi ). Función de tres argumentos de Ackermann,, se define de tal manera que para, reproduce las operaciones básicas de suma , multiplicación y potenciación como
y paraExtiende estas operaciones básicas de una manera que puede compararse con las hiperoperaciones :
(Además de su papel histórico como función totalmente computable pero no recursiva primitiva, se considera que la función original de Ackermann extiende las operaciones aritméticas básicas más allá de la exponenciación, aunque no de forma tan fluida como las variantes de la función de Ackermann diseñadas específicamente para ese propósito, como la secuencia de hiperoperaciones de Goodstein ).
En Sobre el infinito , [ 5 ] David Hilbert planteó por primera vez la hipótesis de que la función de Ackermann no era recursiva primitiva, pero fue Ackermann, secretario personal y antiguo alumno de Hilbert, quien realmente demostró la hipótesis en su artículo Sobre la construcción de los números reales de Hilbert . [ 2 ] [ 6 ]
Rózsa Péter [ 7 ] y Raphael Robinson [ 8 ] desarrollaron posteriormente una versión de dos variables de la función de Ackermann que se convirtió en la preferida por casi todos los autores.
La secuencia de hiperoperación generalizada , por ejemplo, también es una versión de la función de Ackermann. [ 9 ]
En 1963, R. Creighton Buck basó una variante intuitiva de dos variables [ n 1 ].en la secuencia de hiperoperación : [ 10 ] [ 11 ]
En comparación con la mayoría de las demás versiones, la función de Buck no tiene desplazamientos innecesarios:
Se han investigado muchas otras versiones de la función de Ackermann. [ 12 ] [ 13 ]
Definición
Definición: como función m -aria
La función original de tres argumentos de Ackermannse define recursivamente de la siguiente manera para enteros no negativosy:
De las diversas versiones de dos argumentos, la desarrollada por Péter y Robinson (denominada "la" función de Ackermann por la mayoría de los autores) está definida para enteros no negativos.ycomo sigue:
La función de Ackermann también se ha expresado en relación con la secuencia de hiperoperación : [ 14 ] [ 15 ]
o, escrito en la notación de flecha hacia arriba de Knuth (extendida a índices enteros)):
o, equivalentemente, en términos de la función F de Buck: [ 10 ]
Por inducción en, se puede demostrar quea pesar de.
Definición: como función 1-aria iterada
Definircomo la n -ésima iteración de:
La iteración es el proceso de componer una función consigo misma un cierto número de veces. La composición de funciones es una operación asociativa , por lo que.
Concibiendo la función de Ackermann como una secuencia de funciones unarias, se puede establecer.
La función se convierte entonces en una secuenciade funciones unarias [ n 2 ] , definidas a partir de la iteración :
Cálculo
Cálculo mediante programa LOOP
Las funcionesencajar en la jerarquía de crecimiento rápido (FGH) ( de nivel finito) de funciones [ 16 ]
Se cumple la siguiente desigualdad: [ 17 ]
Para fijo, la funciónpuede calcularse mediante un programa LOOP de profundidad de anidamiento: [ 18 ]
# ENTRADA (n) BUCLE n : # profundidad de anidamiento: 1 BUCLE n : # profundidad de anidamiento: 2 ... # ... BUCLE n : # profundidad de anidamiento: k n += 1 # # SALIDA (n)
La funciónTambién se puede calcular mediante un programa LOOP-k. [ 19 ] (El programa (esquema) no se incluye aquí).
Es obvio que, al no ser una función recursiva primitiva —véase más abajo— , no puede ser calculada por un programa LOOP.
Cálculo mediante sistema de reescritura de términos, basado en función biaria.
La definición recursiva de la función de Ackermann se puede transponer naturalmente a un sistema de reescritura de términos (TRS) .
La definición de la función de Ackermann 2-aria conduce a las reglas de reducción obvias [ 20 ] [ 21 ].
Ejemplo
Calcular
La secuencia de reducción es [ n 3 ]
Para calcularse puede usar una pila , que inicialmente contiene los elementos.
Luego, los dos elementos superiores se reemplazan repetidamente según las reglas [ n 4 ].
Esquemáticamente, comenzando desde:
MIENTRAS stackLength <> 1 { POP 2 elementos; PUSH 1 o 2 o 3 elementos, aplicando las reglas r1, r2, r3. }El pseudocódigo se publica en Grossman & Zeitman (1988) .
Por ejemplo, en la entrada,
Observaciones
- La estrategia leftmost-innermost está implementada en 225 lenguajes de programación en Rosetta Code .
- A pesar deel cálculo deno toma más depasos. [ 22 ]
- Grossman y Zeitman (1988) señalaron que en el cálculo deLa longitud máxima de la pila es, mientras.
Su propio algoritmo, inherentemente iterativo, calculadentrotiempo y dentroespacio.
Cálculo mediante TRS, basado en una función 1-aria iterada
La definición de las funciones de Ackermann 1-arias iteradas conduce a diferentes reglas de reducción.
Como la composición de funciones es asociativa, en lugar de la regla r6 se puede definir
Al igual que en la sección anterior, el cálculo dese puede implementar con una pila.
Inicialmente, la pila contiene los tres elementos..
Luego, los tres elementos superiores se reemplazan repetidamente según las reglas [ n 4 ].
Esquemáticamente, comenzando desde:
MIENTRAS stackLength <> 1 { POP 3 elementos; PUSH 1 o 3 o 5 elementos, aplicando las reglas r4, r5, r6; }Ejemplo
En la entradalas configuraciones de pila sucesivas son
Las igualdades correspondientes son
Cuando se utiliza la regla de reducción r7 en lugar de la regla r6, los reemplazos en la pila seguirán
Las configuraciones sucesivas de la pila serán entonces
Las igualdades correspondientes son
Observaciones
- Para cualquier entrada dada, los TRS presentados hasta ahora convergen en el mismo número de pasos. También utilizan las mismas reglas de reducción (en esta comparación, las reglas r1, r2, r3 se consideran "iguales a" las reglas r4, r5, r6/r7 respectivamente). Por ejemplo, la reducción deconverge en 14 pasos: 6 × r1, 3 × r2, 5 × r3. La reducción deconverge en los mismos 14 pasos: 6 × r4, 3 × r5, 5 × r6/r7. Los TRS difieren en el orden en que se aplican las reglas de reducción.
- Cuandose calcula siguiendo las reglas {r4, r5, r6}, la longitud máxima de la pila permanece por debajoCuando se utiliza la regla de reducción r7 en lugar de la regla r6, la longitud máxima de la pila es solo. La longitud de la pila refleja la profundidad de recursión. Como la reducción según las reglas {r4, r5, r7} implica una profundidad máxima de recursión menor, [ n 6 ] este cálculo es más eficiente en ese sentido.
Cálculo mediante TRS, basado en hiperoperadores.
Como Sundblad (1971) —o Porto y Matos (1980) — demostraron explícitamente, la función de Ackermann puede expresarse en términos de la secuencia de hiperoperaciones :
o, después de eliminar la constante 2 de la lista de parámetros, en términos de la función de Buck
La función de Buck, [ 10 ] una variante de la función de Ackermann por sí misma, se puede calcular con las siguientes reglas de reducción:
En lugar de la regla b6 se puede definir la regla
Para calcular la función de Ackermann basta con añadir tres reglas de reducción.
Estas reglas se encargan del caso base., la alineacióny el dulce de leche (-3).
Ejemplo
Calcular
Las igualdades coincidentes son
- cuando el TRS con la regla de reducciónse aplica:
- cuando el TRS con la regla de reducciónse aplica:
Observaciones
- El cálculo deSegún las reglas {b1 - b5, b6, r8 - r10} es profundamente recursivo. La profundidad máxima de anidamientos esEl problema radica en el orden en que se ejecuta la iteración:. La primeradesaparece solo después de que se haya desplegado toda la secuencia.
- El cálculo según las reglas {b1 - b5, b7, r8 - r10} es más eficiente en ese sentido. La iteraciónsimula el bucle repetido sobre un bloque de código. [ n 7 ] El anidamiento está limitado a, un nivel de recursión por función iterada. Meyer y Ritchie (1967) demostraron esta correspondencia.
- Estas consideraciones se refieren únicamente a la profundidad de recursión. Cualquiera de las formas de iterar conduce al mismo número de pasos de reducción, que involucran las mismas reglas (cuando las reglas b6 y b7 se consideran "iguales"). La reducción dePor ejemplo, converge en 35 pasos: 12 × b1, 4 × b2, 1 × b3, 4 × b5, 12 × b6/b7, 1 × r9, 1 × r10. El modus iterandi solo afecta el orden en que se aplican las reglas de reducción.
- Una ganancia real en el tiempo de ejecución solo se puede lograr al no recalcular los subresultados una y otra vez. La memorización es una técnica de optimización donde los resultados de las llamadas a funciones se almacenan en caché y se devuelven cuando se producen las mismas entradas. Véase, por ejemplo, Ward (1993) . Grossman y Zeitman (1988) publicaron un ingenioso algoritmo que calculadentrotiempo y dentroespacio.
Números enormes
Para demostrar cómo se realiza el cálculo deda como resultado muchos pasos y en gran número: [ n 5 ]
Tabla de valores
El cálculo de la función de Ackermann se puede resumir en una tabla infinita. Primero, colocamos los números naturales en la primera fila. Para determinar un número en la tabla, tomamos el número inmediatamente a la izquierda. Luego, usamos ese número para buscar el número correspondiente en la columna indicada y una fila más arriba. Si no hay ningún número a su izquierda, simplemente consultamos la columna con el número "1" en la fila anterior. Aquí se muestra una pequeña parte superior izquierda de la tabla:
Los números que aquí se expresan únicamente mediante exponenciación recursiva o flechas de Knuth son muy grandes y ocuparían demasiado espacio si se anotaran con dígitos decimales simples.
A pesar de los grandes valores que aparecen en esta primera sección de la tabla, se han definido números aún mayores, como el número de Graham , que no puede escribirse con ninguna cantidad pequeña de flechas de Knuth. Este número se construye con una técnica similar a la de aplicar la función de Ackermann sobre sí misma de forma recursiva.
Esta es una repetición de la tabla anterior, pero con los valores reemplazados por la expresión correspondiente de la definición de la función para mostrar el patrón con claridad:
Propiedades
Observaciones generales
- Puede que no sea inmediatamente obvio que la evaluación desiempre termina. Sin embargo, la recursión está limitada porque en cada aplicación recursivadisminuye opermanece igual ydisminuye. Cada vez quellega a cero,disminuye, por lo tantoeventualmente también llega a cero. (Expresado de manera más técnica, en cada caso el pardisminuye en el orden lexicográfico en pares, que es un buen ordenamiento , al igual que el ordenamiento de enteros no negativos individuales; esto significa que no se puede descender en el ordenamiento infinitas veces consecutivas. Sin embargo, cuandodisminuye no hay límite superior en cuántopuede aumentar, y a menudo aumentará considerablemente.
- Para valores pequeños de m como 1, 2 o 3, la función de Ackermann crece relativamente lento con respecto a n (como máximo exponencialmente ).Sin embargo, crece mucho más rápido; inclusoes aproximadamente 2,00353 × 1019 728 y la expansión decimal dees muy grande según cualquier medida típica, aproximadamente 2,12004 × 10 6,03123 × 1019 727 .
- Un aspecto interesante es que la única operación aritmética que utiliza es la suma de 1. Su rápido crecimiento se basa exclusivamente en la recursión anidada. Esto implica que su tiempo de ejecución es al menos proporcional a su resultado, por lo que también es extremadamente grande. En realidad, en la mayoría de los casos, el tiempo de ejecución es mucho mayor que el resultado; véase más arriba.
- Una versión de un solo argumentoque aumenta ambosyAl mismo tiempo, empequeñece a todas las funciones recursivas primitivas, incluidas las funciones de crecimiento muy rápido como la función exponencial , la función factorial, las funciones multifactoriales y superfactoriales , e incluso las funciones definidas usando la notación de flecha hacia arriba de Knuth (excepto cuando se usa la flecha hacia arriba indexada). Se puede ver quees aproximadamente comparable aen la jerarquía de rápido crecimiento . Este crecimiento extremo puede ser explotado para demostrar que, que obviamente es computable en una máquina con memoria infinita como una máquina de Turing y por lo tanto es una función computable , crece más rápido que cualquier función recursiva primitiva y por lo tanto no es recursiva primitiva.
No recursivo primitivo
La función de Ackermann crece más rápido que cualquier función recursiva primitiva y, por lo tanto, no es en sí misma una función recursiva primitiva.
Boceto de prueba :
Las funciones recursivas primitivas se construyen a partir de funciones básicas mediante composición y recursión primitiva, y todas crecen a una determinada tasa. Definimos, de forma constructiva, una jerarquía de funciones totales.por:
dóndedenotaiteración de pliegues deen la entrada. [ 23 ] Esta jerarquía crece estrictamente más rápido con el aumentoy toda función recursiva primitiva está finalmente acotada superiormente por algúnEsto se puede demostrar mediante inducción estructural sobre las definiciones de funciones recursivas primitivas.
Sin embargo, la función de Ackermanneventualmente supera a todos; por cada, existede tal manera quepara todos suficientemente grandes. De este modo,crece más rápido que cualquier función recursiva primitiva y, por lo tanto, no es recursiva primitiva.
Inverso
Dado que la función f ( n ) = A ( n , n ) considerada anteriormente crece muy rápidamente, su función inversa , f −1 , crece muy lentamente. Esta función inversa de Ackermann f −1 se suele denotar por α . De hecho, α ( n ) es menor que 5 para cualquier tamaño de entrada práctico n , ya que A (4, 4) es del orden de.
Esta inversa se observa en la complejidad temporal de algunos algoritmos, como la estructura de datos de conjuntos disjuntos y el algoritmo de Chazelle para árboles de expansión mínima . En ocasiones, se utiliza la función original de Ackermann u otras variaciones en estos casos, pero todas crecen a tasas igualmente elevadas. En particular, algunas funciones modificadas simplifican la expresión eliminando el -3 y términos similares.
Una variación de dos parámetros de la función inversa de Ackermann se puede definir de la siguiente manera, dondees la función de piso :
Esta función surge en análisis más precisos de los algoritmos mencionados anteriormente y proporciona una cota de tiempo más refinada. En la estructura de datos de conjuntos disjuntos, m representa el número de operaciones mientras que n representa el número de elementos; en el algoritmo del árbol de expansión mínima, m representa el número de aristas mientras que n representa el número de vértices. Existen varias definiciones ligeramente diferentes de α ( m , n ) ; por ejemplo, log 2 n a veces se reemplaza por n , y la función piso a veces se reemplaza por un techo .
Otros estudios podrían definir una función inversa de uno donde m se establece como una constante, de modo que la inversa se aplique a una fila en particular. [ 24 ]
La inversa de la función de Ackermann es recursiva primitiva, ya que es recursiva primitiva de grafos y está acotada superiormente por una función recursiva primitiva. [ 25 ]
Uso
En complejidad computacional
La función de Ackermann aparece en la complejidad temporal de algunos algoritmos , [ 26 ] como los sistemas de suma de vectores [ 27 ] y la alcanzabilidad de redes de Petri , lo que demuestra que son computacionalmente inviables para instancias grandes. [ 28 ]
La inversa de la función de Ackermann aparece en algunos resultados de complejidad temporal. Por ejemplo, la estructura de datos de conjuntos disjuntos requiere un tiempo amortizado por operación proporcional a la inversa de la función de Ackermann, [ 29 ] y no se puede acelerar dentro del modelo de sonda celular de complejidad computacional. [ 30 ]
En geometría discreta
Ciertos problemas en geometría discreta relacionados con secuencias de Davenport-Schinzel tienen límites de complejidad en los que la función de Ackermann inversaaparece. Por ejemplo, parasegmentos de línea en el plano, la cara no delimitada de la disposición de los segmentos tiene complejidady algunos sistemas deLos segmentos de línea tienen una cara de complejidad ilimitada.. [ 31 ]
Como referencia
La función de Ackermann, debido a su definición en términos de recursión extremadamente profunda, puede utilizarse como referencia para evaluar la capacidad de un compilador para optimizar la recursión. El primer uso publicado de la función de Ackermann de esta manera fue en 1970 por Dragoș Vaida [ 32 ] y, casi simultáneamente, en 1971, por Yngve Sundblad [ 14 ] .
El artículo fundamental de Sundblad fue retomado por Brian Wichmann (coautor del estándar Whetstone ) en una trilogía de artículos escritos entre 1975 y 1982. [ 33 ] [ 34 ] [ 35 ]
Véase también
Notas
- ↑ con el orden de los parámetros invertido
- ↑ ' curry '
- ↑ En cada paso , el redex subrayado se reescribe.
- 1 2 aquí: ¡estrategia del más a la izquierda al más interno!
- 1 2 3 4 Para una mejor legibilidad,S(0) se denota como 1,S(S(0)) se denota como 2,S(S(S(0))) se denota como 3,etc.
- ↑ La profundidad máxima de recursión se refiere al número de niveles de activación de un procedimiento que existen durante la llamada más profunda del mismo. Cornelius y Kirby (1975)
- ↑ BUCLE n+1 VECES HACER F
Referencias
- ^ Monin y Hinchey 2003 , pág. 61.
- 1 2 Ackermann 1928 .
- ↑ "Expansión decimal de A(4,2)" . kosara.net . 27 de agosto de 2000. Archivado del original el 20 de enero de 2010.
- ↑ Calude, Marcus y Tevy 1979 .
- ↑ Hilbert 1926 , pág. 185.
- ↑ van Heijenoort 1977 .
- ↑ Péter 1935 .
- ↑ Robinson 1948 .
- ↑ Ritchie 1965 , pág. 1028.
- 1 2 3 Buck 1963 .
- ^ Meeussen y Zantema 1992 , pág. 6.
- ↑ Munafo 1999a .
- ↑ Ritchie 1965 .
- 1 2 Sundblad 1971 .
- ↑ Porto y Matos 1980 .
- ↑ Odifreddi 1999 , pág. 298.
- ↑ "La jerarquía de Ackermann frente a la jerarquía de rápido crecimiento" . StackExchange .
- ↑ Sangría según la regla del lado opuesto ( INDENT ... DEDENT ), como en Python :
para _ en rango ( n ): n += 1
- ↑ Meyer y Ritchie 1967 .
- ↑ Grossman y Zeitman 1988 .
- ↑ Paulson 2021 .
- ↑ Cohen 1987 , pág. 56, Proposición 3.16 (véase en la prueba).
- ↑ Otra secuencia de funciones,, definiendo la jerarquía de Grzegorczyk , se utiliza frecuentemente para particionar las funciones recursivas primitivas en "clases de crecimiento". Sin embargo,(o) yno se alinean en su indexación.
- ↑ Pettie 2002 .
- ↑ Matos 2014 .
- ↑ Brubaker 2023 .
- ↑ Czerwiński y Orlikowski 2022 .
- ↑ Leroux 2022 .
- ↑ Tarjan 1975 .
- ↑ Fredman & Saks 1989 .
- ↑ Wiernik y Sharir 1988 .
- ↑ Vaida 1970 .
- ↑ Wichmann 1976 .
- ↑ Wichmann 1977 .
- ↑ Wichmann 1982 .
Bibliografía
- Ackermann, Wilhelm (1928). "Zum Hilbertschen Aufbau der reellen Zahlen" [ Sobre la construcción hilbertiana de los números reales ] . Mathematische Annalen (en alemán). 99 : 118– 133. doi : 10.1007/BF01459088 . S2CID 123431274 .
- Buck, RC (1963). "Inducción matemática y definiciones recursivas". American Mathematical Monthly . 70 (2): 128– 135. doi : 10.2307/2312881 . JSTOR 2312881 .
- Calude, Cristian ; Marcus, Solomon ; Tevy, Ionel (noviembre de 1979). "El primer ejemplo de una función recursiva que no es recursiva primitiva" . Historia Math. 6 (4): 380–84 . doi : 10.1016/0315-0860(79)90024-7 .
- Cohen, Daniel E. (enero de 1987). Computabilidad y lógica . Halsted Press. ISBN 9780745800349.
- Cornelius, BJ; Kirby, GH (1975). "Profundidad de la recursión y la función de Ackermann". BIT Numerical Mathematics . 15 (2): 144– 150. doi : 10.1007/BF01932687 . S2CID 120532578 .
- Czerwiński, Wojciech; Orlikowski, Łukasz (7 de febrero de 2022). La alcanzabilidad en sistemas de adición vectorial es Ackermann-completa . Actas del 62.º Simposio Anual de la IEEE sobre Fundamentos de la Informática de 2021. arXiv : 2104.13866 . doi : 10.1109/FOCS52979.2021.00120 .
- Fredman, M.; Saks, M. (mayo de 1989). «La complejidad de la sonda celular de las estructuras de datos dinámicas». Actas del vigésimo primer simposio anual de la ACM sobre Teoría de la Computación – STOC '89 . págs. 345–354 . doi : 10.1145/73007.73040 . ISBN 0897913078. S2CID 13470414 .
- Grossman, Jerrold W.; Zeitman, R. Suzanne (mayo de 1988). "Un cálculo inherentemente iterativo de la función de Ackermann". Theoretical Computer Science . 57 ( 2–3 ): 327–330 . doi : 10.1016/0304-3975(88)90046-1 .
- van Heijenoort, Jean (1977) [reimpreso con correcciones, publicado originalmente en 1967]. De Frege a Gödel: Un libro de referencia en lógica matemática, 1879-1931 . Harvard University Press.
- Hilbert, David (1926). "Über das Unendliche" [ Sobre el infinito ] . Mathematische Annalen (en alemán). 95 : 161– 190. doi : 10.1007/BF01206605 . S2CID 121888793 .
- Leroux, Jérôme (7 de febrero de 2022). El problema de alcanzabilidad para redes de Petri no es recursivo primitivo . Actas del 62.º Simposio Anual de la IEEE sobre Fundamentos de la Informática de 2021. arXiv : 2104.12695 . doi : 10.1109/FOCS52979.2021.00121 .
- Löb, MH; Wainer, SS (1970). "Jerarquías de funciones de teoría de números. I." . Archiv für mathematische Logik und Grundlagenforschung . 13 ( 1– 2): 39– 51. doi : 10.1007/BF01967649 .
- Matos, Armando B (7 de mayo de 2014). "La inversa de la función de Ackermann es recursiva primitiva" (PDF) . Archivado (PDF) del original el 9 de octubre de 2022.
- Meeussen, VCS; Zantema, H. (1992). Derivation lengths in term rewriting from interpretations in the naturals (PDF) (Informe). University of Utrecht Department of Computer Science. ISSN 0924-3275 . Archivado (PDF) del original el 9 de octubre de 2022.
- Meyer, Albert R.; Ritchie , Dennis MacAlistair (1967). "La complejidad de los programas de bucle". Actas de la 22.ª conferencia nacional de 1967. ACM '67: Actas de la 22.ª conferencia nacional de 1967. págs. 465–469 . doi : 10.1145/800196.806014 .
- Monin, Jean-Francois; Hinchey, MG (2003). Comprensión de los métodos formales . Springer. pág. 61. ISBN 9781852332471.
- Munafo, Robert (1999a). "Versiones de la función de Ackermann" . Large Numbers en MROB . Recuperado el 6 de noviembre de 2021 .
- Munafo, Robert (1999b). "Inventando nuevos operadores y funciones" . Large Numbers en MROB . Recuperado el 6 de noviembre de 2021 .
- Odifreddi, Piergiorgio (1999). Teoría clásica de la recursión. Vol. II . Estudios de lógica y fundamentos de las matemáticas. Vol. 143. Ámsterdam: North-Holland. ISBN 978-0-444-50205-6. MR 1718169 .
- Paulson, Lawrence C. (2021). "La función de Ackermann en forma iterativa: un experimento de asistente de demostración" . Recuperado el 19 de octubre de 2021 .
- Peter, Rózsa (1935). "Konstruktion nichtrekursiver Funktionen" [ Construcción de funciones no recursivas ] . Mathematische Annalen (en alemán). 111 : 42– 60. doi : 10.1007/BF01472200 . S2CID 121107217 .
- Pettie, S. (2002). «Una cota inferior de estilo Ackermann inverso para el problema de verificación en línea del árbol de expansión mínima». 43.º Simposio Anual IEEE sobre Fundamentos de la Informática, 2002. Actas . pp. 155–163 . doi : 10.1109/SFCS.2002.1181892 . ISBN 0-7695-1822-2. S2CID 8636108 .
- Porto, António; Matos, Armando B. (1 de septiembre de 1980). "Ackermann y las superpotencias" ( PDF) . ACM SIGACT News . 12 (3): 90– 95. doi : 10.1145/1008861.1008872 . S2CID 29780652. Archivado (PDF) del original el 9 de octubre de 2022. Versión original de 1980, publicada en ACM SIGACT News , modificada el 20 de octubre de 2012 y el 23 de enero de 2016 (documento de trabajo).
- Ritchie, Robert Wells (noviembre de 1965). "Clases de funciones recursivas basadas en la función de Ackermann" . Pacific Journal of Mathematics . 15 (3): 1027– 1044. doi : 10.2140/pjm.1965.15.1027 .
- Robinson, Raphael Mitchel (1948). "Recursión y doble recursión" . Boletín de la Sociedad Matemática Americana . 54 (10): 987– 93. doi : 10.1090/S0002-9904-1948-09121-2 .
- Sundblad, Yngve (marzo de 1971). "La función de Ackermann. Un estudio teórico, computacional y de manipulación de fórmulas". BIT Numerical Mathematics . 11 (1): 107– 119. doi : 10.1007/BF01935330 . S2CID 123416408 .
- Tarjan, Robert Endre (1975). "Eficiencia de un buen algoritmo de unión de conjuntos, pero no lineal". Journal of the ACM . 22 (2): 215– 225. doi : 10.1145/321879.321884 . hdl : 1813/5942 . S2CID 11105749 .
- Vaida, Dragoș (1970). "Validación del compilador para un lenguaje similar a Algol". Boletín Mathématique de la Société des Sciences Mathématiques de la République Socialiste de Roumanie . Nueva serie. 14 (62) (4): 487– 502. JSTOR 43679758 .
- Wainer, SS (1970). "Una clasificación de las funciones recursivas ordinales". Archiv für mathematische Logik und Grundlagenforschung . 13 ( 3– 4): 136– 153. doi : 10.1007/bf01973619 .
- Ward, Martin P. (16 de julio de 1993). Procedimientos iterativos para calcular la función de Ackerman . CiteSeerX 10.1.1.35.9907 .
- Wichmann, Brian A. (marzo de 1976). "La función de Ackermann: un estudio sobre la eficiencia de los procedimientos de llamada". BIT Numerical Mathematics . 16 : 103–110 . CiteSeerX 10.1.1.108.4125 . doi : 10.1007/BF01940783 . S2CID 16993343 .
- Wichmann, Brian A. (julio de 1977). "Cómo llamar a procedimientos, o reflexiones sobre la función de Ackermann". BIT Numerical Mathematics . 16 (3): 103– 110. doi : 10.1002/spe.4380070303 . S2CID 206507320 .
- Wichmann, Brian A. (julio de 1982). "Últimos resultados de la prueba de llamada a procedimiento, función de Ackermann" (PDF) . Archivado (PDF) del original el 9 de octubre de 2022.
Enlaces externos
- "Función de Ackermann" . Enciclopedia de Matemáticas . EMS Press . 2001 [1994].
- Weisstein, Eric W. "Función de Ackermann" . MathWorld .
Este artículo incorpora material de dominio público de Paul E. Black. "Función de Ackermann" . Diccionario de algoritmos y estructuras de datos . NIST .- Calculadora animada de la función de Ackermann
- Aaronson, Scott (1999). "¿Quién puede nombrar el número mayor?" .
- Funciones de Ackermann . Incluye una tabla con algunos valores.
- Brubaker, Ben (4 de diciembre de 2023). "Un problema que parece sencillo arroja números demasiado grandes para nuestro universo" .
- Munafo, Robert. "Grandes números" .describe varias variaciones sobre la definición de A.
- Nivasch, Gabriel (octubre de 2021). "Ackermann inverso sin dolor" . Archivado del original el 21 de agosto de 2007. Recuperado el 18 de junio de 2023 .
- Seidel, Raimund. "Comprendiendo la función inversa de Ackermann" (PDF) .
- La función de Ackermann escrita en diferentes lenguajes de programación (en Rosetta Code ).
- Smith, Harry J. "La función de Ackermann" . Archivado del original el 26 de octubre de 2009.) Algo de estudio y programación.
- Wiernik, Ady; Sharir, Micha (1988). "Realizaciones planares de secuencias no lineales de Davenport-Schinzel por segmentos" . Discrete & Computational Geometry . 3 (1): 15– 47. doi : 10.1007/BF02187894 . MR 0918177 .
- Aritmética
- números enteros grandes
- Funciones especiales
- Teoría de la computación
- teoría de la computabilidad