Entre todas las máquinas de Turing posibles, ¿qué tan comunes son las máquinas de Turing universales?

La respuesta definitiva está en este artículo : [1510.01671] La reprogramabilidad conductual transfronteriza revela evidencia de universalidad de Turing generalizada.

La respuesta es quizás bastante intuitiva para algunos y, por lo tanto, extremadamente sorprendente, pero señala hacia la dirección establecida por Wolfram y explicada por Todd Rowland en una de las otras respuestas a esta pregunta. Por lo tanto, fortalece, o tal vez incluso prueba, el Principio de Equivalencia Computacional de Wolfram.

Es cierto que depende de la enumeración elegida de las máquinas de Turing, pero para las “enumeraciones naturales”, por ejemplo, enumerando por tamaño o simplemente tomando un conjunto completo de máquinas de Turing de tamaño fijo, se puede demostrar que la densidad de los programas universales de Turing y así, las capacidades de reprogramación de los programas de computadora aleatorios (vea la explicación a continuación sobre lo que significa una máquina aleatoria de Turing) asintóticamente alcanza la medida 1 ( esto significa que la mayoría de ellos son Turing universales y eventualmente prácticamente todos ).

El enfoque se basa en el concepto de ‘ universalidad intrínseca ‘, que proporciona una fuerte evidencia de la universalidad de Turing ubicua al explorar el espacio del compilador basado en el cálculo de reescalado y la emulación de grano grueso. Incluso mostramos una serie de resultados de cruce de límites, que incluyen instancias de emulación (en todos los casos para todas las condiciones iniciales) de Wolfram Class 2 Elementary Cellular Automata (ECA) por clase 1 ECA, clases 2 y 3 ECA emulando clases 1, 2 y 3 , y Clase 3 ECA emulando las Clases 1, 2 y 3, junto con resultados de un tipo similar para CA general (vecindario r = 3/2), incluyendo Clase 1 CA emulando las Clases 2 y 3, Clases 3 y 4 emulando todas las demás clases (1, 2, 3 y 4). Esto significa que no solo encontramos que la mayoría de los programas de computadora pueden emular a la mayoría de los otros programas de computadora, sino que incluso proporcionamos las codificaciones específicas.

Esta figura muestra cómo los programas informáticos (AC sin pérdida de generalidad) alcanzan asintóticamente la universalidad intrínseca completa (y, por lo tanto, la universalidad de Turing porque la universalidad intrínseca es un requisito más estricto). El gráfico muestra los programas de computadora acumulados que pueden reprogramarse para comportarse como al menos otro programa de computadora (no trivial) en el mismo espacio de reglas con un compilador de hasta 15 (ECA) y 12 (GCA). Un compilador de computadora (como cualquier definición de compilador de computadora) es solo un programa de traducción que no actúa, pero al comienzo del cálculo y, por lo tanto, no está interactuando con el programa de computadora en cuestión (evidentemente, reglas triviales como las reglas 0 y 255 de ECA nunca se reprogramen pero son efectivamente de medida 0). Esto significa que con la probabilidad asintótica 1, un programa de computadora ‘aleatorio’ (cf abajo) será capaz de realizar un cálculo universal.

Tenga en cuenta que la forma en que se prueba la universalidad de Turing para una máquina o autómata determinado es precisamente mediante la búsqueda de un compilador o codificador, como algunos lo llaman, este es el enfoque general para las pruebas de universalidad, desde Turing hasta Minsky’s hasta la Regla 110 de Cook y Wolfram , por mencionar algunos ejemplos (la Regla 110 requería una codificación basada en otro modelo de cómputo, una práctica común, un compilador entre 2 ‘lenguajes de programación’ diferentes).

También tenga en cuenta que uno puede generar programas de computadora o máquinas de Turing al azar al producir sus instrucciones / reglas basadas en un proceso aleatorio (por ejemplo, lanzar una moneda), cada bit es parte de un programa ejecutable, la mayoría de los programas resultarán no válidos pero uno toma solo los válidos y crea una distribución de programas. Este tipo de distribuciones se llama Distribución Universal (significa que la distribución no es asintóticamente confiable en la enumeración TM) como lo define Leonid Levin (el mismo matemático que coautorizó la pregunta de P = NP? Junto con S. Cook) y se basó en concepto de probabilidad algorítmica (R. Solomonoff). Vea, por ejemplo, nuestro trabajo sobre la creación de una distribución de salida a partir de una distribución de programas de computadora para aproximar numéricamente dicha Distribución Universal en el límite: Cálculo de la complejidad de Kolmogorov a partir de las distribuciones de frecuencia de salida de máquinas pequeñas de Turing

Además , en lugar de explorar programas de computadora aleatorios, uno puede hacerlo aún mejor no solo tomando una muestra de TM sino arreglando tamaños de TM y luego tomando un conjunto completo de TM para un tamaño dado y comenzar a aumentar el tamaño y obtener resultados como una función de tamaño TM, que es como se hizo en las dos referencias anteriores anteriores. Entonces, el marco para hacer esta pregunta está bien definido y ahora tiene una respuesta muy interesante, y creemos que es muy fundamental.

Existe evidencia empírica, y puede realizar el experimento usted mismo.
Hacemos este tipo de experimentos todo el tiempo en la Wolfram Science Summer School, donde he sido el director académico.

Lo primero que debe tener en cuenta el principio de equivalencia computacional de Stephen Wolfram. Esto es la mayor parte del capítulo 12 en Stephen Wolfram: un nuevo tipo de ciencia, pero el resultado es que si una máquina de Turing tiene un comportamiento complejo, es probable que sea universal en algún esquema de codificación.

A continuación, necesita una forma de visualizar y enumerar las máquinas de Turing. Desde que trabajo en Wolfram, eso es lo que considero el lenguaje de referencia para autómatas, en Wolfram Language (por ejemplo, usando Mathematica o Wolfram Programming Cloud) TuringMachine [{596440,2,3}, {1, {{}, 0} }, 20] evoluciona la máquina 596440 con 2 estados y 3 colores de una cinta infinita en blanco que comienza en el estado 1. La visualización más simple es de la cinta usando ArrayPlot [history [[All, 2]]] (trabajo en Wolfram).

Según el PCE, si parece complejo, entonces probablemente sea universal. Elija una clase de reglas, tome una muestra. Necesitará una muestra grande para obtener una estimación.

Solo para buscar estas máquinas de Turing, eche un vistazo a Hunting for Turing Machines en la Wolfram Science Summer School

Se sabe que los comportamientos de las reglas de color de 2 estados 2 no pueden ser universales (un viejo teorema finalmente publicado recientemente en Máquinas de Turing con dos letras y dos estados) y puede verificar esto al mirarlas. Ha habido resultados positivos de investigadores de máquinas simples que también son notables.

Basado en PCE, Wolfram predijo que 596440 era universal, y estableció un premio para ese Premio Wolfram 2,3 Turing Machine Research que Alex Smith demostró que era universal. Una cosa para aprender de esto es que estas pruebas pueden ser un poco difíciles. Esta es la máquina Turing universal más pequeña.

No tengo ninguna prueba formal de esto, pero sospecho firmemente que esta probabilidad es muy muy pequeña y, en particular, tiende a 0 ya que el número de estados de la máquina tiende al infinito.

De hecho, es poco probable que una máquina de Turing elegida al azar haga algo útil, y mucho menos que interprete su prefijo de entrada como el código de otra máquina y luego ejecute esa otra máquina en la entrada representada por el sufijo. Esa es una situación muy especializada, incluso si permitimos varias formas de codificar la máquina de Turing como secuencias de bits.

Seguramente depende en gran medida de cómo se codifica la máquina, y particularmente de cómo se codifica la detención.

Si la detención o el bloqueo se codifican de una manera que hace que tenga una probabilidad de 1-1 / n o mayor para detenerse en cada paso, donde n es el número de ramas fuera de un estado, entonces la probabilidad de universalidad debería ser 0. Por ejemplo, con dos símbolos y un bit que determina “¡alto!”, La probabilidad de universalidad va a 0. Esto se debe a que, en el límite, el gráfico de estado será un árbol con alta probabilidad, pero un UTM debe contener bucles.

Si la detención ocurre con una probabilidad menor a 1-1 / n, entonces nuevamente probablemente depende de la codificación de caminar en varias direcciones en la cinta. En particular, [¡Editar!] Si el número esperado de formas de leer un símbolo, no detenerlo y moverlo hacia la derecha es menor que 1, puede ser que la mayoría de los bucles sean inaccesibles porque lees y reescribes repetidamente los primeros símbolos.

Pero si el factor de ramificación es lo suficientemente alto, entonces probablemente la mayor parte del gráfico de estado sea explorable y contenga muchos bucles. En este caso, sospecho que existe una posibilidad razonable de que la máquina sea universal, de modo que a medida que el número de estados y símbolos llegue al infinito, la probabilidad de que exista una codificación wrt de que la máquina es universal debería ir a 1, pero el probabilidad de que sea universal wrt una codificación dada todavía casi seguramente va a 0.

¿Qué es la “máquina de Turing elegida al azar”? Cuando alguien dice ‘elegido al azar’ sin mencionar la distribución, generalmente quiere decir que la distribución es uniforme, pero tenga cuidado, ya que no hay una distribución uniforme en los números naturales (supongo que podemos considerarlos porque los TM son enumerables recursivamente).

En otras palabras, sin especificar la distribución, esta pregunta no tiene sentido (desde el punto de vista de la probabilidad)
Por supuesto, podría proponer algunos modelos de aleatoriedad, por ejemplo, la densidad, que ni siquiera es aditiva (solo es finitamente aditiva), pero la pregunta de cuánto cambia esta ‘probabilidad’ cuando cambia la enumeración parece más difícil que calcular la probabilidad real en modelo

Por ejemplo, hay infinitas TM universales para cada enumeración *, por lo que modificando su enumeración para que la n-ésima máquina sea universal si n es par, ¡voilla, usted obtiene que las TM universales tienen densidad 1/2!

* para ver eso, arregle M que es universal y programe M ‘para que funcione bien n veces antes de que consuma la entrada y luego regrese y comience el cálculo