¿Qué tipo de autómata es el Turing Doodle de Google?


10

Para celebrar el cumpleaños de Alan Turing, Google publicó un garabato que muestra una máquina. ¿Qué tipo de máquina es el garabato? ¿Puede expresar un lenguaje completo de Turing?

Hay diferencias obvias en la máquina clásica de turing: una cinta finita, restricciones en cómo se puede conectar el estado, ...

El doodle aún estará disponible aquí. Captura de pantalla del garabato

(La pantalla en la parte superior derecha muestra la salida esperada).

La cinta en el medio se divide en cuadrados que pueden contener un espacio en blanco, un cero o uno. La cabeza se coloca sobre uno de los cuadrados y se usa para leer y escribir.

Debajo de la cinta puede ver una flecha verde en la que puede hacer clic para iniciar la máquina. Hay dos líneas de círculos al lado, algunas de las cuales están conectadas. Los llamaré "estados".

Después de que la máquina arranca, se enciende el primer estado a la derecha del botón verde, luego el siguiente a la derecha, y así sucesivamente ... Cada estado contiene uno de los siguientes comandos:

  • en blanco = no hacer nada (solo pasar al siguiente estado)
  • 1 = escribir uno en la cinta en la posición actual de la cabeza
  • 0 = escribir un cero en la cinta en la posición actual del cabezal
  • flecha hacia la izquierda = mover la cabeza un paso hacia la izquierda
  • flecha hacia la derecha = mover la cabeza un paso hacia la derecha
  • condición: si el valor debajo de la cabeza es igual al valor que se muestra en el cuadrado, vaya a la segunda línea de estados. si no, pase al siguiente estado a la derecha
  • salto a la izquierda: regrese a un estado anterior (fijo) pero solo en la fila superior [¡Originalmente olvidé esa, gracias @Marzio!]

No hay forma de "superponer" dos saltos (uno sobre otro). La máquina se detiene cuando deja un estado y no hay un estado siguiente a la derecha.

(Después de que la máquina se detiene, el contenido de la cinta se compara con el contenido de la pantalla, pero no considero que sea parte de la funcionalidad prevista de la máquina).


99
¡Una máquina de Turing, por supuesto! en.wikipedia.org/wiki/Turing_machine Tal vez estabas confundido porque el sistema de transición es funky.
Huck Bennett

También hay un "operador de salto izquierdo" en el motor de control que permite volver a una posición anterior pero solo en la fila superior; Además, no hay forma de "superponer" dos saltos (uno sobre otro). Sin el operador de salto, la máquina es equivalente a un DFA (las acciones en el motor de control se "ejecutan" de izquierda a derecha), pero también con el operador de salto izquierdo limitado , la máquina no parece lo suficientemente potente como para simular un LBA (pero no lo hice) No lo pienses demasiado). En todos los casos, no se puede completar Turing porque la cinta es finita.
Marzio De Biasi

1
@Marzio De Biasi: Tienes razón en que este rompecabezas contiene instrucciones de salto, y sin ellas, el modelo es obviamente muy débil porque una máquina solo puede funcionar durante un tiempo constante. (No estoy seguro de lo que quiere decir con "equivalente a un DFA"). Qué restricción aplica a las instrucciones de salto podría cambiar la respuesta. "La cinta es finita" es probablemente una suposición incorrecta.
Tsuyoshi Ito

Google mantiene sus garabatos disponibles (aunque aparentemente no siempre son las versiones interactivas).
Raphael

@TsuyoshiIto: Quiero decir (pero tal vez me equivoque) que, dada una máquina sin bucles, puede crear un DFA que lo simule. Si permite saltos arbitrarios en ambas direcciones y eso puede superponerse, entonces la máquina se "completa" de inmediato (suponiendo una cinta infinita) incluso con solo dos filas (los estados se pueden "aplanar" horizontalmente). No sé qué sucede si permite saltos izquierdos que pueden superponerse (pero solo en la primera fila) y un número arbitrario de filas (pero el control en las filas inferiores solo puede subir o bajar). Quizás sea una buena pregunta para cs.stackexchange.com
Marzio De Biasi

Respuestas:


10

Asumiendo que:

  • podemos agregar un número arbitrariamente grande de filas ("líneas de estado")
  • las filas pueden ser arbitrariamente largas
  • la cinta es infinita

M4

atdoodle

... por lo tanto, incluso si el Doodle de AT quizás no esté Turing completo (debido al operador de salto solo a la izquierda no superpuesto disponible solo en la primera fila), es lo suficientemente poderoso como para caminar por la delgada línea de (des) capacidad de decisión: - re

EDITAR: GIRAR DOODLE ESTÁ GIRANDO COMPLETO

(Dejo la respuesta anterior arriba, porque no estoy seguro de que esta parte sea correcta :-)

¡Creo que incluso con un solo salto izquierdo no superpuesto, el Doodle de Turing está completo! . La idea (simple) es usar la propia cinta para almacenar el estado actual y usar varias celdas para representar un alfabeto más grande.

Por ejemplo, un TM de 2 estados y 8 símbolos se puede simular usando la siguiente representación de cinta:

    HEAD POSITION
    v
...[s][b2 b1 b0] [_][b2 b1 b0] [_][b2 b1 b0] ....
   ^^^^^^^^^^^^^
    "macro cell"

El doodle de Turing puede:

  1. s
  2. b2,b1,b0
  3. escriba el siguiente símbolo, mueva la cabeza a la "macro celda" a la izquierda o derecha, y almacene en él el siguiente estado; en la figura debajo de estas operaciones (que se pueden hacer en una secuencia de celdas usando las acciones mover hacia la izquierda / derecha y escribir) se llaman "MW";
  4. finalmente transfiera el control a la fila superior que con un solo salto a la izquierda traerá el control nuevamente al paso 1.

La imagen completa está disponible aquí .

TdoodleTC

TMDM


nooo! me ganaste! Estaba escribiendo cómo hacer una TM arbitraria en el espacio de estado en lugar de cinta. Sin embargo, su enfoque es mejor ya que solo usa un salto. ¡Bien hecho! Espera, ¿cómo recibe tu máquina la entrada?
Artem Kaznatcheev

@ marzio-de-biasi ¡Buen trabajo!
pepper_chico

1
@ArtemKaznatcheev: recibe información en la cinta; obviamente, debe codificarlo de acuerdo con los símbolos del alfabeto original de la TM que está emulando y dejar espacios en blanco para la representación del estado.
Marzio De Biasi

La marca de junior alen turing. Disfruté leyendo esto
iDroid

no completamente convencido de la integridad de TM. no piense que manejó el caso en el que la TM escribe en nuevos cuadrados en blanco no definidos previamente en la cinta de entrada. eso es necesario para completar TM, de lo contrario es solo un cálculo finito.
vzn

5

La máquina se suministra con una "cinta" (el análogo del papel) que la atraviesa y se divide en secciones (llamadas "cuadrados"), cada una de ellas capaz de llevar un "símbolo". En cualquier momento solo hay un cuadrado, digamos la r-ésima, con el símbolo S (r) que está "en la máquina". Podemos llamar a este cuadrado el "cuadrado escaneado". El símbolo en el cuadrado escaneado se puede llamar el "símbolo escaneado". El "símbolo escaneado" es el único de los cuales la máquina es, por así decirlo, "directamente consciente". Sin embargo, al alterar su configuración m, la máquina puede recordar efectivamente algunos de los símbolos que ha "visto" (escaneado) anteriormente. El posible comportamiento de la máquina en cualquier momento está determinado por la configuración m qn y el símbolo escaneado S (r). Este par qn, S (r) se llamará "configuración": así, la configuración determina el posible comportamiento de la máquina. En algunas de las configuraciones en las que el cuadrado escaneado está en blanco (es decir, no lleva ningún símbolo), la máquina escribe un nuevo símbolo en el cuadrado escaneado: en otras configuraciones borra el símbolo escaneado. La máquina también puede cambiar el cuadrado que se está escaneando, pero solo moviéndolo un lugar hacia la derecha o hacia la izquierda. Además de cualquiera de estas operaciones, se puede cambiar la configuración m. Algunos de los símbolos escritos {232} formarán la secuencia de figuras que es el decimal del número real que se está calculando. Los otros son solo notas aproximadas para "ayudar a la memoria". Solo estas notas aproximadas serán susceptibles de borrarse. no lleva ningún símbolo) la máquina escribe un nuevo símbolo en el cuadrado escaneado: en otras configuraciones borra el símbolo escaneado. La máquina también puede cambiar el cuadrado que se está escaneando, pero solo moviéndolo un lugar hacia la derecha o hacia la izquierda. Además de cualquiera de estas operaciones, se puede cambiar la configuración m. Algunos de los símbolos escritos {232} formarán la secuencia de figuras que es el decimal del número real que se está calculando. Los otros son solo notas aproximadas para "ayudar a la memoria". Solo estas notas aproximadas serán susceptibles de borrarse. no lleva ningún símbolo) la máquina escribe un nuevo símbolo en el cuadrado escaneado: en otras configuraciones borra el símbolo escaneado. La máquina también puede cambiar el cuadrado que se está escaneando, pero solo moviéndolo un lugar hacia la derecha o hacia la izquierda. Además de cualquiera de estas operaciones, se puede cambiar la configuración m. Algunos de los símbolos escritos {232} formarán la secuencia de figuras que es el decimal del número real que se está calculando. Los otros son solo notas aproximadas para "ayudar a la memoria". Solo estas notas aproximadas serán susceptibles de borrarse. Algunos de los símbolos escritos {232} formarán la secuencia de figuras que es el decimal del número real que se está calculando. Los otros son solo notas aproximadas para "ayudar a la memoria". Solo estas notas aproximadas serán susceptibles de borrarse. Algunos de los símbolos escritos {232} formarán la secuencia de figuras que es el decimal del número real que se está calculando. Los otros son solo notas aproximadas para "ayudar a la memoria". Solo estas notas aproximadas serán susceptibles de borrarse.

Creo que estas operaciones incluyen todas aquellas que se usan en el cálculo de un número. La defensa de esta afirmación será más fácil cuando la teoría de las máquinas sea familiar para el lector. Por lo tanto, en la siguiente sección procedo con el desarrollo de la teoría y supongo que se entiende lo que se entiende por "máquina", "cinta", "escaneada", etc.

Este es un extracto del documento original de Turing "Sobre números computables, con una aplicación al problema de Entscheidungs".

Un buen compañero moderno para el artículo que recomiendo es The Annotated Turing de Charles Petzold.

Como puede ver, Google solo intentó parecerse a una máquina que es muy similar a la descripción de Turing.

EDITAR: Suponiendo que el alfabeto completo de Google TM es el que se muestra al final del juego después de hacer clic en el icono del conejito , y tomando en cuenta el hecho de que está produciendo una secuencia infinita , obtuvo más filas y columnas (por lo que podemos suponer que podemos agregar cualquier ), ha dejado saltos (y también solapamiento saltos izquierda) en cualquier fila , tiene salto condicional e incondicional entre filas adyacentes, creo que es Turing completo .


pero ¿implementaron de manera aguda una máquina de turing? Este tiene una cinta finita, por lo que es una diferencia fácilmente discernible. ¿Es una diferencia que hace la diferencia? ¿implementaron de hecho una máquina más débil?
bjelli

2
@bjelli Bueno, no puedo asegurar eso porque, dado que no lo he diseñado, no conozco todas las reglas sobre su máquina. Pero, si llegas al final del juego, puedes hacer clic en el ícono Conejito que te lleva a una cinta más larga, mira el análisis aquí: sbf5.com/~cduan/technical/turing . Por lo tanto, puede que no haya restricciones en el número de líneas que puede obtener la máquina, lo que lo llevaría a una cinta de cualquier tamaño.
pepper_chico

vzn

4

En los rompecabezas, se permiten saltos en ambas líneas, pero no pueden superponerse. En el último garabato de secuencia de conejo al final del juego, permiten saltos en cada línea y se pueden anidar entre corchetes para que [()] esté permitido, pero ([)] parece no estar permitido.

Usaré los siguientes supuestos:

  1. 01ϵ (espacios en blanco)
  2. La máquina puede usar cualquier número fijo de líneas.
  3. Los saltos a la izquierda están permitidos en cualquier línea (usaré un salto a la izquierda por línea)
  4. ϵ01

Con estos supuestos, la máquina de Doodle de Google se está completando .

01ϵ01n

3(n1)+15n+1

Google Doodle Machine

Para cada estado TM (excepto el que se detiene) utilizamos 3 líneas de GDM. Cada línea corresponde a un posible símbolo de entrada , 0ϵ01ϵ0101

El GDM simula el TM de la siguiente manera:

  1. 1
  2. j
  3. ϵ01
  4. ϵ
  5. 01
  6. 01

Elija su TM universal favorito e impleméntelo en el procedimiento anterior para obtener un GDM universal.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.