Busy beaver
una máquina de Turing de alfabeto binario con parada que escribe la mayor cantidad de 1s en la cinta, utilizando solo un conjunto limitado de estados
From Wikipedia, the free encyclopedia
En ciencia computacional teórica, el juego del castor ocupado (nombre original en inglés: busy beaver) busca obtener un programa de un tamaño dado, que (según la definición) produzca la mayor cantidad de salida posible o se ejecute durante el mayor número de pasos antes de detenerse.[2] Dado que es fácil concebir un programa en bucle infinito que produzca una salida infinita o se ejecute durante un tiempo infinito, dichos programas se excluyen del juego.[2] En lugar de lenguajes de programación tradicionales, los programas utilizados en el juego son máquinas de Turing de n estados,[2] uno de los primeros modelos de computación matemáticos.[3]

Las máquinas de Turing consisten en una cinta infinita y un conjunto finito de estados que sirven como el "código fuente" del programa. Producir la mayor cantidad de datos se define como escribir la mayor cantidad de unos en la cinta, también conocido como obtener la puntuación más alta, y ejecutar durante el mayor tiempo se define como tomar la mayor cantidad de pasos para detenerse.[4] El juego del castor ocupado de n estados consiste en encontrar la máquina de Turing de n estados que ejecute n estados y finalmente se detenga.[2] Se supone que dichas máquinas comienzan en una cinta en blanco, y se supone que la cinta contiene solo ceros y unos (una máquina de Turing binaria).[2] El objetivo del juego es programar un conjunto de transiciones entre estados buscando la puntuación más alta o el tiempo de ejecución más largo, asegurándose de que la máquina se detenga finalmente.
Decidir el tiempo de ejecución o la puntuación del n-simo castor ocupado no es computable.[4] De hecho, tanto las funciones Σ(n) como S(n) finalmente se vuelven mayores que cualquier función computable.[4] Esto tiene implicaciones en teoría de la computabilidad, en el problema de la parada y en la teoría de la complejidad computacional.[5] El concepto de castor ocupado fue introducido por primera vez por Tibor Radó en su artículo de 1962, "Sobre funciones no computables".[4]
Una implicación del juego del castor ocupado es que, si fuera posible calcular las funciones Σ(n) y S(n) para todo n, entonces esto resolvería todas las conjeturas matemáticas que pueden ser reducidas a un problema de parada, por ejemplo, en una forma de "¿se detiene ⟨esta máquina de Turing⟩?".[6] Por ejemplo, existe una máquina de Turing de 27 estados que verifica la conjetura de Goldbach para cada número y se detiene ante un contraejemplo; si esta máquina no se detuviera tras ejecutarse durante S(27) pasos, entonces debe ejecutarse indefinidamente, resolviendo así la conjetura.[6][7] Muchos otros problemas, incluyendo la hipótesis de Riemann (744 estados) y la consistencia de la teoría de conjuntos de Zermelo-Fraenkel (745 estados),[8][9] pueden expresarse de forma similar, donde como máximo se deben verificar infinitos casos numerables.[6]
Definición técnica
El juego del castor ocupado de n estados (o juego BB-n), introducido en el artículo de Tibor Radó de 1962, involucra una clase de máquinas de Turing, cada una de las cuales debe cumplir con las siguientes especificaciones de diseño:
- La máquina tiene n estados "operativos" más un estado de parada, donde n es un entero positivo, y uno de los n estados se distingue como el estado inicial. (Normalmente, los estados se etiquetan con 1, 2, ..., n, siendo el estado 1 el estado inicial, o con A, B, C, ..., siendo el estado A el estado inicial).
- La máquina utiliza una única cinta bidireccional infinita (o ilimitada).
- El alfabeto de la cinta es {0, 1}, donde 0 representa el símbolo en blanco.
- La función de transición de la máquina toma dos entradas:
- el estado actual que no es de parada,
- el símbolo en la celda actual de la cinta,
y produce tres salidas:
- un símbolo para escribir sobre el símbolo en la celda actual de la cinta (puede ser el mismo símbolo que el símbolo sobrescrito),
- una dirección para moverse (izquierda o derecha; es decir, desplazarse a la celda de cinta una posición a la izquierda o a la derecha de la celda actual), y un estado al que transitar (que puede ser el estado de parada).
La ejecución de la máquina consiste en comenzar en el estado inicial, con la celda actual de la cinta siendo cualquier celda de una cinta en blanco (todas las posiciones cero), y luego iterar la función de transición hasta que se alcance el estado de parada (si es que se alcanza). Si y solo si la máquina finalmente se detiene, el número de unos que quedan en la cinta se denomina la puntuación de la máquina. Un castor ocupado de n estados, BB-n o simplemente "castor ocupado", es una máquina de Turing que gana el juego del castor ocupado de n estados.[6] Según la definición, obtiene la puntuación más alta (denotada por Σ(n))[4] o se ejecuta durante el mayor tiempo (S(n)), entre todas las posibles máquinas de Turing de n estados.
Ejemplo
Las reglas para una máquina de Turing de 1 estado podrían ser:
- En el estado 1, si el símbolo actual es 0, escribe un 1, avanza un espacio a la derecha y vuelve al estado 1.
- En el estado 1, si el símbolo actual es 1, escribe un 0, avanza un espacio a la derecha y se detiene.
Esta máquina de Turing se desplazaría hacia la derecha, intercambiando el valor de todos los bits que recorre. Dado que la cinta inicial está compuesta solo por ceros, generaría una cadena infinita de unos. Esta máquina no sería una máquina de Turing competitiva porque se ejecuta indefinidamente en una cinta en blanco.
Funciones
En su artículo original de 1962, Radó definió dos funciones relacionadas con el juego del castor ocupado: la función de puntuación Σ(n) y la función de desplazamientos S(n).[4] Ambas toman un número de estados de la máquina de Turing y producen la puntuación máxima alcanzable por una máquina de Turing con ese número de estados, según alguna medida. La función de puntuación Σ(n) proporciona el número máximo de unos que una máquina de Turing con estados puede producir antes de detenerse, mientras que la función de desplazamientos S(n) proporciona el número máximo de desplazamientos (o, equivalentemente, pasos, ya que cada paso incluye un desplazamiento) que una máquina de Turing con estados puede realizar antes de detenerse.[4] Demostró que ambas funciones no eran computables, porque cada una crecía más rápido que cualquier función computable.[4] La función BB(n) se ha definido como cualquiera de estas funciones, por lo que esa notación no se utiliza en este artículo.
También se pueden definir otras funciones incomputables midiendo el rendimiento de las máquinas de Turing de maneras distintas al tiempo o al número máximo de unos:[10] Por ejemplo:[10]
- La función se define como el número máximo de unos contiguos que una máquina de Turing que se detiene puede escribir en una cinta en blanco. En otras palabras, este es el mayor unary number que una máquina de Turing de n estados puede escribir en una cinta.
- La función se define como el número máximo de casillas de cinta que una máquina de Turing que se detiene puede «leer» (es decir, visitar) antes de detenerse. Esto incluye la casilla inicial, pero no una casilla a la que la máquina solo llega después de la transición de parada (si la transición de parada está anotada con una dirección de movimiento), ya que esa casilla no influye en el comportamiento de la máquina. Este es el valor máximo de complejidad espacial de una máquina de Turing de «n» estados.
Estas cuatro funciones juntas se encuentran en la relación .[10] También se pueden definir más funciones ejecutando el juego en diferentes máquinas de computación, como máquinas de Turing de 3 símbolos,[11] máquinas de Turing no deterministas,[12] cálculo lambda (sucesión A333479 en OEIS) o incluso lenguajes de programación arbitrarios.[11]
Función de puntuación Σ
La función de puntuación cuantifica la puntuación máxima que puede alcanzar un castor ocupado de un tamaño dado. Esta es una función no computable, porque crece asintóticamente más rápido que cualquier función computable.[13]
La función de puntuación, , se define de modo que sea la puntuación máxima alcanzable (el número máximo de unos que finalmente aparecen en la cinta) entre todas las máquinas de Turing de dos símbolos y dos estados del tipo descrito anteriormente, que se detienen al iniciarse en una cinta en blanco.
Es evidente que es una función bien definida: para cada n, existen como máximo un número finito de máquinas de Turing de n estados como las anteriores, salvo isomorfismos, y por lo tanto, como máximo un número finito de tiempos de ejecución posibles.[4]p. 880
Según la definición basada en la puntuación, cualquier máquina de Turing M de dos símbolos y dos estados que alcance la puntuación máxima (σ(M)= Σ(n)) se denomina "busy beaver" (castor ocupado). Para cada n, existen al menos 4(n − 1)! castores ocupados de n estados.
Dado cualquier castor ocupado de n estados, se obtiene otro simplemente cambiando la dirección de desplazamiento en una transición de parada, un tercero invirtiendo uniformemente todas las direcciones de desplazamiento, y un cuarto invirtiendo la dirección de parada del castor ocupado con todas las direcciones intercambiadas. Además, una permutación de todos los estados excepto Inicio y Parada produce una máquina que alcanza la misma puntuación. Teóricamente, podría haber más de un tipo de transición que conduzca al estado de parada, pero en la práctica sería un desperdicio, ya que solo hay una secuencia de transiciones de estado que produce el resultado deseado.
No computabilidad
El artículo de Radó de 1962 demostró que si es cualquier función computable, entonces Σ(n) > f(n) para todo n suficientemente grande, y por lo tanto, que Σ no es una función computable.[4]
Además, esto implica que es un problema indecidible mediante un algoritmo general si una máquina de Turing arbitraria es un castor ocupado. Tal algoritmo no puede existir, ya que su existencia permitiría calcular Σ, lo cual es una imposibilidad demostrada. En particular, dicho algoritmo podría usarse para construir otro algoritmo que calcularía Σ de la siguiente manera: para cualquier n dado, se probarían todas las máquinas de Turing de 2 símbolos y n estados hasta encontrar una máquina de Turing de n estados; esta máquina se simularía para determinar su puntuación, que por definición es Σ(n).
Aunque Σ(n) es una función incomputable, existen algunos valores pequeños de n para los cuales es posible obtener sus valores y demostrar su corrección. No es difícil demostrar que Σ(0) = 0, Σ(1) = 1, Σ(2) = 4, y con creciente dificultad se puede demostrar que Σ(3) = 6, Σ(4) = 13 y Σ(5) = 4098 (sucesión A028444 en OEIS). Aún no se ha determinado Σ(n) para ningún caso de n > 5, aunque se han establecido límites inferiores (véase la sección valores conocidos más adelante).
Complejidad e imposibilidad de demostrar Σ
Una variante de la complejidad de Kolmogórov se define de la siguiente manera:[14] la complejidad de un número n es el número más pequeño de estados necesarios para una máquina de Turing de clase BB que se detiene con un solo bloque de n 1s consecutivos en una cinta inicialmente en blanco. La variante correspondiente de la complejidad de Kolmogórov establece que, en el contexto de un sistema axiomático dado para los números naturales, existe un número k tal que no se puede probar que ningún número específico tenga una complejidad mayor que k, y por lo tanto que no se puede probar ningún límite superior específico para Σ(k) (esto último se debe a que "la complejidad de n es mayor que k" se probaría si se probara que n > Σ(k). Como se menciona en la referencia citada, para cualquier sistema axiomático de matemáticas ordinarias, el valor más pequeño k para el cual esto es cierto es mucho menor que 10⇈10. En consecuencia, en el contexto de las matemáticas ordinarias, ni el valor ni ningún límite superior de Σ(10⇈10) pueden demostrarse.
El teorema de incompletitud de Gödel se ilustra con este resultado: en un sistema axiomático de matemáticas ordinarias, existe una proposición verdadera pero indemostrable de la forma Σ(10⇈10)= n, e infinitas proposiciones verdaderas pero indemostrables de la forma Σ(10⇈10) < n.
Función del máximo número de desplazamientos S
Además de la función Σ, Radó [1962] introdujo otra función extrema para las máquinas de Turing, la función del máximo número de desplazamientos, S, definida de la siguiente manera:[4]
- s(M) = el número de desplazamientos que M realiza antes de detenerse, para cualquier M ∈ En,
- S(n)= max{s(M)|M ∈ En} = el mayor número de desplazamientos realizados por cualquier máquina de Turing de 2 símbolos y n estados que se detiene. Dado que las máquinas de Turing normales requieren un desplazamiento en cada transición o "paso" (incluida cualquier transición a un estado de parada), la función de desplazamientos máximos es, a su vez, una función del máximo de pasos.
Radó demostró que S no es computable por la misma razón que Σ no lo es: crece más rápido que cualquier función computable. Lo demostró simplemente observando que, para cada n, S(n) ≥ Σ(n). Cada desplazamiento puede escribir un 0 o un 1 en la cinta, mientras que Σ cuenta un subconjunto de los desplazamientos que escribieron un 1, es decir, aquellos que no habían sido sobrescritos cuando la máquina de Turing se detuvo; por consiguiente, S crece al menos tan rápido como Σ, que ya se había demostrado que crecía más rápido que cualquier función computable.[4]
Lin y Radó utilizaron la siguiente relación entre Σ y S (Estudios Computacionales de Problemas de Máquinas de Turing, 1965) para demostrar que Σ(3) = 6 y que S(3) = 21: Para un n dado, si se conoce S(n), entonces todas las máquinas de Turing de n estados pueden (en principio) ejecutarse hasta S(n) pasos, momento en el cual cualquier máquina que aún no se haya detenido nunca se detendrá. En ese punto, al observar qué máquinas se han detenido con la mayor cantidad de 1s en la cinta (es decir, las máquinas más activas), se obtiene de sus cintas el valor de Σ(n). El enfoque utilizado por Lin y Radó para el caso de n = 3 fue conjeturar que S(3) = 21 (tras conjeturar sin éxito 18), y luego simular todas las máquinas de 3 estados esencialmente diferentes (82.944 máquinas, equivalentes a 21034) hasta 21 pasos. Encontraron 26.073 máquinas que se detuvieron, incluyendo una que se detuvo solo después de 21 pasos. Al analizar el comportamiento de las máquinas que no se detuvieron dentro de los 21 pasos, lograron demostrar que ninguna de esas máquinas se detendría jamás, y la mayoría de ellas seguían un patrón determinado. Esto demostró la conjetura de que S(3) = 21, y también determinó que Σ(3) = 6, valor que alcanzaron varias máquinas, todas deteniéndose después de 11 a 14 pasos.[15]
En 2016, Adam Yedidia y Scott Aaronson obtuvieron la primera cota superior (explícita) sobre el mínimo n para el cual S(n) es indemostrable en el conjunto de Zermelo-Fraenkel. Para ello construyeron una máquina de Turing[16] de 7910 estados cuyo comportamiento no puede probarse basándose en los axiomas usuales de la teoría de conjuntos (los axiomas de Zermelo-Fraenkel con el axioma de elección), bajo hipótesis de consistencia razonables (propiedad de Ramsey estacionaria, equivalente a la existencia de cardenales sutiles arbitrariamente grandes).[17][18][19] Stefan O'Rear luego la redujo a 1919 estados, con la dependencia de la propiedad de Ramsey estacionaria eliminada,[20][21] y más tarde a 748 estados.[5] En julio de 2023, Riebel lo redujo a 745 estados.[8][9] Se informan mejoras adicionales en el sitio web del BB Challenge .
Prueba de la incomputabilidad de S(n) y Σ(n)
Supóngase que S(n) es una función computable y sea EvalS una máquina de Turing que evalúa S(n). Dada una cinta con n unos, producirá S(n) unos en la cinta y luego se detendrá. Sea Clean una máquina de Turing que limpia la secuencia de unos escrita inicialmente en la cinta. Sea Double una máquina de Turing que evalúa la función n + n. Dada una cinta con n unos, producirá 2n unos en la cinta y luego se detendrá.
Sean las opciones disponibles Double | EvalS | Clean, y sea n0 el número de estados de esta máquina. Sea Create_n0 una máquina de Turing que crea n0 unos en una cinta inicialmente en blanco. Esta máquina puede construirse de manera trivial para tener n0 estados (el estado i escribe 1, mueve el cabezal a la derecha y cambia al estado i + 1, excepto el estado n0, que se detiene). Sea N la suma n0 + n0.
Sea BadS la composición Create_n0 | Double | EvalS | Clean. Nótese que esta máquina tiene N estados. Partiendo de una cinta inicialmente en blanco, primero crea una secuencia de n0 unos y luego la duplica, produciendo una secuencia de N unos. A continuación, EvalS producirá S(N) unos en la cinta, y finalmente borrará todos los unos y se detendrá. Pero la fase de limpieza continuará al menos S(N) pasos, por lo que el tiempo de funcionamiento de BadS es estrictamente mayor que S(N), lo cual contradice la definición de la función S(n).
La imposibilidad de calcular Σ(n) puede demostrarse de forma similar. En la demostración anterior, se debe intercambiar la máquina "EvalS" por "EvalΣ" y "Clean" por "Increment", una máquina de Turing simple que busca el primer 0 en la cinta y lo reemplaza por un 1.
La incomputabilidad de S(n) también se puede establecer haciendo referencia al problema de la parada en la cinta vacía. Este problema consiste en decidir, para cualquier máquina de Turing, si se detendrá o no al comenzar con una cinta vacía. El problema de la parada en una cinta vacía es equivalente al problema de la parada estándar y, por lo tanto, también es incomputable. Si S(n) fuera computable, se podría resolver el problema de la parada en la cinta vacía simplemente ejecutando cualquier máquina de Turing con n estados durante S(n) pasos; si aún no se ha detenido, nunca lo hará. Por lo tanto, dado que el problema de la parada en una cinta vacía no es computable, se deduce que S(n) también debe ser incomputable.
Incomputabilidad de espacio(n) y num(n)
Tanto las funciones como son incomputables.[10] Esto se puede demostrar para observando que cada casilla de cinta en la que una máquina de Turing escribe un uno, también debe visitarla; en otras palabras, .[10] Se puede demostrar que la función es incomputable probando, por ejemplo, que : esto se puede hacer diseñando una máquina de Turing de (3n+3) estados que simule el campeón del espacio de n estados y luego la use para escribir al menos unos contiguos en la cinta.[10]
Generalizaciones
Se pueden definir fácilmente análogos de la función de desplazamiento en cualquier lenguaje de programación, siempre que los programas se puedan describir mediante cadenas de bits y se pueda contar el número de pasos de un programa.[11] Por ejemplo, el juego del castor ocupado también se puede generalizar a dos dimensiones utilizando máquinas de Turing en cintas bidimensionales, o a máquinas de Turing que pueden permanecer en el mismo lugar y moverse a la izquierda y a la derecha.[11] Alternativamente, se puede definir una "función del castor ocupado" para diversos modelos de computación con complejidad de Kolmogórov.[11] Esto se logra tomando como el mayor entero tal que , donde es la longitud del programa más corto en que produce : es, por lo tanto, el mayor entero que un programa con longitud o menor puede producir en .[11]
La máquina de 6 estados y 2 símbolos de mayor duración que posee la propiedad adicional de invertir el valor de la cinta en cada paso produce 6147 1s después de 47 339 970 pasos. Así, para la clase de máquina de Turing Inversa (RTM),[22] SRTM(6) = 47 339 970 y ΣRTM(6) = 6147. De igual modo, se podría definir una función análoga a la función Σ para una máquina de registro como el mayor número que puede estar presente en cualquier registro al detenerse, para un número dado de instrucciones.[23]
Diferentes números de símbolos
Una generalización sencilla es la extensión a máquinas de Turing con m símbolos en lugar de solo dos (0 y 1).[11] Por ejemplo, una máquina de Turing ternaria con m = 3 símbolos tendría los símbolos 0, 1 y 2. La generalización a máquinas de Turing con n estados y m símbolos define las siguientes funciones generalizadas de castor ocupado:
- Σ(n, m): el mayor número de valores distintos de cero que puede imprimir una máquina de n estados y m símbolos, iniciada en una cinta inicialmente en blanco, antes de detenerse, y
- S(n, m): el mayor número de pasos que puede dar una máquina de n estados y m símbolos, iniciada en una cinta inicialmente en blanco, antes de detenerse.[11]
Por ejemplo, la máquina de 3 estados y 3 símbolos que más tiempo ha tardado en ejecutarse, 119 112 334 170 342 540 pasos antes de detenerse.[24][25]
Máquinas de Turing no deterministas
| p | Pasos | Estados |
|---|---|---|
| 1 | 2 | 2 |
| 2 | 4 | 4 |
| 3 | 6 | 7 |
| 4 | 7 | 11 |
| 5 | 8 | 15 |
| 6 | 7 | 18 |
| 7 | 6 | 18 |
El problema puede extenderse a una máquina de Turing no determinista buscando el sistema con el mayor número de estados en todas las ramas o la rama con el mayor número de pasos.[12] La cuestión de si una NDTM dada se detendrá sigue siendo computacionalmente irreducible, y el cálculo necesario para encontrar una NDTM que se detenga es significativamente mayor que en el caso determinista, ya que hay múltiples ramas que deben considerarse. Para un sistema de 2 estados y 2 colores con p casos o reglas, la tabla de la derecha muestra el número máximo de pasos antes de la parada y el número máximo de estados únicos creados por la NDTM.
Aplicaciones
Problemas matemáticos abiertos
Además de plantear un juego matemático bastante desafiante, las funciones Σ(n) y S(n) ofrecen un enfoque completamente nuevo para resolver problemas de matemáticas puras. Muchos problemas abiertos en matemáticas podrían, en teoría, pero no en la práctica, resolverse sistemáticamente dado el valor de S(n) para un n suficientemente grande.[6][26] Teóricamente hablando, el valor de S(n) codifica la respuesta a todas las conjeturas matemáticas que pueden ser verificadas en tiempo infinito por una máquina de Turing con menos de n estados.[5]
Considérese cualquier conjetura : cualquier conjetura que pueda ser refutada mediante un contraejemplo entre un conjunto de casos numerable (por ejemplo, la conjetura de Goldbach). Escríbase entonces un programa informático que pruebe secuencialmente esta conjetura para valores crecientes. En el caso de la conjetura de Goldbach, se consideraría cada número par igual a 4 de forma secuencial y se comprobaría si es o no la suma de dos números primos. Supóngase que este programa se simula en una máquina de Turing de n estados. Si se encuentra un contraejemplo (un número par igual a 4 que no es la suma de dos primos en el presente ejemplo), se detiene e indica que no lo es. Sin embargo, si la conjetura es verdadera, el programa nunca se detendrá. Este programa se detiene "solo" si encuentra un contraejemplo.[5]
Ahora bien, este programa se simula en una máquina de Turing de n estados, por lo que si se conoce S(n), se puede decidir (en un tiempo finito) si se detendrá o no simplemente ejecutando la máquina esa cantidad de pasos. Y si, después de S(n) pasos, la máquina no se detiene, se sabe que nunca lo hará y, por lo tanto, que no hay contraejemplos a la conjetura dada (es decir, no hay números pares que no sean la suma de dos primos). Esto probaría que la conjetura es verdadera.[5] Así, valores específicos (o límites superiores) para S(n) podrían usarse, en teoría, para resolver sistemáticamente muchos problemas abiertos en matemáticas.[5]
Sin embargo, los resultados actuales sobre el problema del castor ocupado sugieren que esto no será práctico por dos razones:
- Es extremadamente difícil demostrar valores para la función del castor ocupado (y para la función del máximo de desplazamientos). Cada valor exacto conocido de S(n) se demostró enumerando cada máquina de Turing de n estados y probando si cada una se detiene o no. Habría que calcular S(n) mediante algún método menos directo para que fuera realmente útil.
- Los valores de S(n) y otras funciones de castor ocupado se vuelven muy grandes, muy rápidamente. Mientras que el valor de S(5) es solo 47.176.870,[27] el valor de S(6) es más que , es decir, 2 elevado a la 2 elevado a la 2 elevado a la 9, que es al menos 2 pentado a la 5.[28] El valor de S(25), que es el número de pasos que el programa capaz de verificar la conjetura de Goldbach necesitaría ejecutar para dar una respuesta concluyente, es incomprensiblemente enorme, y no remotamente posible escribirlo, y mucho menos materializar una máquina capaz de ejecutar el programa en el universo observable.[6][7]
Consistencia de las teorías
Otra propiedad de S(n) es que ninguna teoría teoría axiomatizada aritméticamente correcta y computable puede demostrar todos los valores de la función. Específicamente, dada una teoría computable y aritméticamente correcta, existe un número tal que para todo , ninguna afirmación de la forma puede demostrarse en .[5] Esto implica que para cada teoría existe un valor máximo específico de S(n) que puede demostrar. Esto es cierto porque para cada teoría de este tipo , una máquina de Turing con estados puede diseñarse para enumerar cada demostración posible en .[5] Si la teoría es inconsistente, entonces todas las afirmaciones falsas son demostrables, y la máquina de Turing puede recibir la condición de detenerse si, y solo si, encuentra una prueba de, por ejemplo, .[5] Cualquier teoría que demuestre el valor de demuestra su propia consistencia, violando el segundo teorema de incompletitud de Gödel.[5] Esto puede usarse para colocar varias teorías en una escala, por ejemplo los diversos axiomas de cardinales grandes en conjuntos de Zermelo-Fraenkel: si a cada teoría se le asigna como su número , las teorías con valores mayores de demuestran la consistencia de aquellas por debajo de ellas, colocando todas esas teorías en una escala infinita numerable.[5]
Ejemplos notables
- Se ha construido una máquina de Turing binaria de 745 estados que se detiene si y solo si es inconsistente con la teoría de Zermelo-Fraenkel.[8][9]
- Se ha construido una máquina de Turing de 744 estados que se detiene si y solo si la hipótesis de Riemann es falsa.[20][6]
- Se construyó una máquina de Turing de 43 estados que se detiene si y solo si la conjetura de Goldbach es falsa. Esta se redujo posteriormente a una máquina de 27 estados,[20][6] luego a una de 25 estados, y posteriormente se demostró y verificó formalmente en el lenguaje de demostración de teoremas Lean.[7]
- Se ha construido una máquina de Turing de 15 estados que se detiene si y solo si se cumple que la conjetura formulada por Paul Erdős en 1979 es falsa: para todo n > 8, existe al menos un dígito 2 en la representación en base 3 de 2n.[29][30]
- Se ha descubierto una máquina de Turing de 6 estados que se detiene si y solo si las aplicaciones repetidas de a partir de 4 producen el doble de valores impares que pares. Posteriormente se la denominó "Antihydra".[31]
Tesis física de Church-Turing
Las propiedades de crecimiento de la función Busy Beaver tienen implicaciones para el comportamiento de los sistemas físicos, asumiendo la veracidad de la tesis física de Church–Turing. Si la tesis física de Church-Turing es válida y todas las funciones físicamente computables son Turing-computables, entonces ninguna magnitud física directamente medible puede crecer más rápido que la función Busy Beaver, ya que ninguna función Turing-computable puede crecer más rápido que ella.[32] Las funciones simples de también impondrían un límite inferior a las tasas de crecimiento, así como límites superiores e inferiores a las tasas de convergencia.[33][32]
Resultados conocidos
Límites inferiores
Máquinas de Green
En 1964, Milton Green desarrolló una cota inferior para la variante de conteo de unos de la función del castor ocupado, que se publicó en las actas del simposio IEEE de 1964 sobre teoría de circuitos de conmutación y diseño lógico. Heiner Marxen y Jürgen Buntrock la describieron como "una cota inferior no trivial (no recursiva primitiva)".[34] Esta cota inferior se puede calcular, pero es demasiado compleja para expresarla como una sola expresión en términos de n.[35] Esto se realizó con un conjunto de máquinas de Turing, cada una de las cuales demostró la cota inferior para un n determinado.[35] Cuando n = 8 el método da como resultado:
En contraste, la mejor cota inferior actual (a fecha de 2026) para es , donde las forman parte de la representación en notación flecha de Knuth.[36] Esto representa . El valor de es probablemente mucho mayor.
El límite inferior de Green se demostró mediante una construcción recursiva de una serie de máquinas de Turing, cada una de las cuales estaba compuesta por una más pequeña con dos estados adicionales que aplicaban repetidamente la máquina más pequeña a la cinta de entrada.[35] Definiendo el valor del castor ocupado de estados en una cinta que contiene unos como (la salida final de cada máquina es su valor en , porque una cinta en blanco tiene 0 unos), las relaciones de recursión son las siguientes:[35]
Esto conduce a dos fórmulas para calcular el límite inferior dado por la máquina :
El límite inferior de Green también puede relacionarse con la función de Ackermann. En particular,
para todos los enteros positivos .[37]
Relaciones entre las funciones de la máquina de Turing
Es trivial que S(n) ≥ Σ(n), ya que una máquina que escribe Σ(n) unos debe emplear al menos Σ(n) pasos para hacerlo.[37] Es posible establecer varios límites superiores para el tiempo S(n) con el número de unos Σ(n):
Al definir num(n) como el número máximo de unos que una máquina de Turing de n estados puede generar de forma contigua, en lugar de en cualquier posición (el mayor número unario que puede generar), es posible demostrar que[37][10]
Ben-Amram y Petersen, 2002, también proporcionan una cota asintóticamente mejorada para S(n). Existe una constante c tal que para todo n ≥ 2,[37]
Valores exactos y cotas inferiores y superiores
La siguiente tabla muestra los valores exactos y algunas cotas inferiores conocidas para S(n), Σ(n) y otras funciones de la máquina de Turing de dos símbolos. En esta tabla se utilizan máquinas de Turing de dos símbolos. Las entradas marcadas con "?" son al menos tan grandes como las demás entradas a la izquierda (ya que todas las máquinas de n estados son también máquinas de (n+1) estados) y no mayores que las entradas superiores (porque S(n) ≥ espacio(n) ≥ Σ(n) ≥ num(n)). Por lo tanto, se sabe que espacio(6) es mayor que 25, puesto que espacio(n) ≥ Σ(n) y Σ(6) > 25. 47 176 870 es una cota superior para espacio(5), porque S(5) = 47 176 870 ([3]) y S(n) ≥ espacio(n). 4098 es una cota superior para num(5), ya que Σ(5) = 4098 y Σ(n) ≥ num(n). La última entrada marcada como "?" es num(6), porque Σ(n) > (6) > 25, pero Σ(n) ≥ num(n), lo mismo ocurre con num(7).
| Función | 2 estados | 3 estados | 4 estados | 5 estados | 6 estados | 7 estados |
|---|---|---|---|---|---|---|
| S(n) | 6[5] | 21[5] | 107[5] | 47 176 870[3][38] | > 25[36] | > 223[36] |
| espacio(n) | 4[37] | 7[37] | 16[37] | 12289[38] | > 25 espacio(n) ≥ Σ(n) |
> 223[36] |
| Σ(n) | 4[37] | 6[37] | 13[37] | 4098[38][36] | > 25[36] | > 223[36] |
| num(n) | 4[37] | 6[37] | 12[37] | 165[39] | ? | ? |
El problema del castor ocupado de 5 estados fue descubierto por Heiner Marxen y Jürgen Buntrock en 1989, pero no fue hasta 2024 que un colectivo matemático aficionado en línea lo reconoció como el quinto mejor problema del castor ocupado, mediante una demostración formalizada en Coq.[40][41]
Lista de castores ocupados

Estas son tablas de reglas para máquinas de Turing que generan Σ(1) y S(1), Σ(2) y S(2), Σ(3) (pero no S(3)), Σ(4) y S(4), Σ(5) y S(5), y la mejor cota inferior conocida para Σ(6) y S(6).
En las tablas, las columnas representan el estado actual y las filas el símbolo leído de la cinta. Cada entrada es una cadena de tres caracteres que indica el símbolo a escribir en la cinta, la dirección de movimiento y el nuevo estado (en ese orden). El estado de parada se muestra como H.
Cada máquina comienza en el estado A con una cinta infinita que contiene solo ceros. Por lo tanto, el símbolo inicial leído de la cinta es un 0.
Clave de resultado: (comienza en la posición del texto con raya superior, termina en la posición del texto con raya inferior
| A | |
|---|---|
| 0 | 1RH |
| 1 | (no usado) |
Resultado: 0 0 1 0 0 (1 paso, un "1" en total)
| A | B | |
|---|---|---|
| 0 | 1RB | 1LA |
| 1 | 1LB | 1RH |
Resultado: 0 0 1 1 1 1 0 0 (6 pasos, cuatro "1" en total)

Resultado: 0 0 1 1 1 1 1 1 0 0 (14 pasos, seis "1" en total).
Esta es una de varias máquinas no equivalentes que generan seis "1". A diferencia de las máquinas anteriores, esta es muy eficiente para Σ, pero no para S. (S(3) = 21, y la máquina obtiene solo cinco "1".[15])

| A | B | C | D | |
|---|---|---|---|---|
| 0 | 1RB | 1LA | 1RH | 1RD |
| 1 | 1LB | 0LC | 1LD | 0RA |
Resultado: 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 (107 pasos, trece "1" en total)

| A | B | C | D | E | |
|---|---|---|---|---|---|
| 0 | 1RB | 1RC | 1RD | 1LA | 1RH |
| 1 | 1LC | 1RB | 0LE | 1LD | 0LA |
Resultado: 4098 "1" con 8191 "0" intercalados en 47.176.870 pasos.
Obsérvese en la imagen de la derecha cómo esta solución es cualitativamente similar a la evolución de algunos autómatas celulares.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 0 | 1RB | 1RC | 1LD | 1RA | 0LD | 1RA |
| 1 | 1RA | 1RH | 0RF | 0LE | 1RC | 0RE |
Resultado: más de 2↑↑↑5 "1" en más de 2↑↑↑5 pasos, donde 2↑↑↑5 = 2↑↑2↑↑2↑↑2↑↑2 y ↑↑ representa una tetración.
Visualizaciones
En la siguiente tabla, las reglas para cada castor ocupado (que maximiza S) se representan visualmente, con cuadrados naranjas que corresponden a un "1" en la cinta y blancos a un "0". La posición de la cabeza se indica mediante el ovoide negro, y la orientación de la cabeza representa el estado. Las cintas individuales se disponen horizontalmente, con el tiempo avanzando de arriba abajo. El estado de parada se representa mediante una regla que mapea un estado a sí mismo (la cabeza no se mueve).