Si una máquina abstracta puede simularse, ¿eso hace que Turing se complete?


20

Por ejemplo, en los lenguajes de programación es común escribir un compilador / intérprete X-in-X, pero en un nivel más general, muchos sistemas completos de Turing conocidos pueden simularse de formas impresionantes (por ejemplo, simulando el Juego de la vida de Conway en el Juego de la vida de Conway). )

Entonces, mi pregunta es: ¿es un sistema capaz de simularse lo suficiente como para demostrar que está Turing completo? Ciertamente es una condición necesaria.


3
Antes de intentar responder, ¿puedes ser un poco más específico de lo que quieres decir con "un sistema lógico puede simularse a sí mismo"? ¿Te refieres a algo como "puede codificar su propia sintaxis y demostrabilidad"?
Andrej Bauer el

44
Precisamente, ¿qué quieres decir con "simulación"? En particular, ¿cómo define la simulación para que siga teniendo sentido, por ejemplo, en el contexto de Game of Life, pero no haga que la pregunta sea completamente trivial (por ejemplo, una máquina que no hace nada simula una máquina que no hace nada)?
Jukka Suomela


1
Bean, la publicación cruzada simultánea no se recomienda en teoría, por favor vea la política . pd: no estoy seguro de si esta pregunta es sobre el tema de cstheory, consulte también las preguntas frecuentes para comprender el alcance de cstheory.
Kaveh

55
La máquina "no hacer nada" puede simularse a sí misma.
Max

Respuestas:


24

No necesariamente. Por ejemplo, el autómata celular de bloque bidimensional con dos estados, en el que una célula se activa solo cuando sus cuatro predecesores tienen exactamente dos células vivas adyacentes, puede simularse con un factor de dos desaceleración y un factor de explosión de dos tamaños, pero No se sabe que Turing esté completo. Para más información sobre este autómata de bloque y sobre la regla B36 / S125 para el vecindario de Moore, que también es capaz de simular este autómata de bloque, consulte el Autómata celular realista similar a B36 / S125 "2x2" de Nathaniel Johnston.


¿Qué pasa si la máquina tiene alguna medida de complejidad? Supongo que eso no estaría relacionado con la integridad de Turing ...
Jeremy Kun

44
Pero, de nuevo, el autómata de bloque que mencionaste aún podría estar completo. Solo estás diciendo que no se sabe que la implicación sea cierta. No es que esto represente un contraejemplo.
Jeremy Kun

99
Si uno considera solo estados de autómata de bloque con un número finito de células vivas, entonces con esta restricción todavía es posible simularlo de la misma manera. Pero el autómata restringido ciertamente no está completo, ya que ningún patrón puede escapar de su diamante delimitador, por lo que el destino de cada patrón se puede determinar en un tiempo exponencial.
David Eppstein el

25

No, no es. Conozco dos clases principales de técnicas para evitar inconsistencias / integridad de Turing.

  1. La primera línea de ataque es configurar el sistema para que la sintaxis se pueda aritmetizar, pero el teorema del punto fijo de Godel no se cumple. Dan Willard ha trabajado mucho en esto y ha dado sistemas lógicos de autoverificación consistentes. El truco consiste en eliminar los símbolos de la función de multiplicación y suma, y ​​reemplazarlos con divisibilidad y resta. Esto le da suficiente potencia para representar la sintaxis aritméticamente, pero el teorema del punto fijo no se cumple, ya que la multiplicación no es demostrablemente total.

    Ver Dan Willard. Sistemas de autoverificación de axiomas, el teorema de incompletitud y principios de reflexión relacionados . Journal of Symbolic Logic 66 (2001) págs. 536-596.

  2. La segunda línea de ataque permite un mayor uso de puntos fijos, pero para configurar las cosas para que la sintaxis no aritmetice. Los sistemas más bonitos para esto son (IMO) basados ​​en variantes de lógica lineal. Por ejemplo, en la teoría de conjuntos afines a la luz de Kazushige Terui, incluso el principio de comprensión de conjuntos sin restricciones es sólido, pero dado que la lógica ambiental de la teoría de conjuntos es lineal (y, por lo tanto, no se permite la contracción), la paradoja de Russell no es derivable.

    La razón intuitiva por la que falla la aritmetización es que el espacio de función lineal de luz está configurado de modo que todos sus habitantes sean tiempo polinomial. Como resultado, la versión lineal ligera de los axiomas de Peano no puede probar la exponenciación total (ya que la exponenciación de números unarios toma tiempo exponencial), por lo que ya no hay un isomorfismo entre los números naturales y las cadenas de bits.UNsi

    Kazushige Terui. Teoría de conjuntos afín ligera: una teoría de conjuntos ingenua del tiempo polinomial. Studia Logica, vol. 77, núm. 1, págs. 9-40, 2004.

    Creo que este documento es más accesible después de leer el siguiente documento de Yves Lafont:

    Y. Lafont, Soft Linear Logic and Polynomial Time , Theoretical Computer Science 318 (número especial sobre Complejidad computacional implícita) p. 163-180, Elsevier (2004)

    La teoría de conjuntos de Terui es muy expresiva, pero es difícil de comparar con las teorías de conjuntos tradicionales, ya que los ordinales teóricos de prueba no son una buena herramienta para comparar sistemas muy débiles. Por ejemplo, la teoría de conjuntos de Terui obviamente no puede probar la exponenciación total y, por lo tanto, su fuerza teórica de prueba ni siquiera puede alcanzar hasta . Las clases de complejidad son probablemente mejores: está completa para polytime (puede probar el total de todas las funciones de polytime, pero no más).ω

    Tiendo a pensar en este tipo de sistemas como pruebas de concepto de la idea de que la teoría de la complejidad puede servir como base para ciertos tipos de ultrafinitismo.


1
Encuentro su respuesta fascinante, @Neel. ¿Podría sugerirme un buen punto de partida para que lea sobre (1) o (2)? Estoy un poco más interesado en aprender sobre (1), si eso importa.
Aaron Sterling el

Estoy más interesado en (2): ¿qué tan poderosa es esta teoría de conjuntos? ¿Está relacionado con las "nuevas fundaciones" quinianas?
cody

@Neel: respuesta interesante. También me gustaría lo mismo que Aaron: ¿podría sugerir algún buen punto de partida para (1)? Gracias
Akash Kumar

9

Considere el siguiente modelo de máquina. La máquina con el código , en la entrada x , emite 0 siempreyoX0 0

Tenga en cuenta que cualquier máquina en este modelo es universal, como M ( M ', x ) = M ' ( x ) = 0 para todos los M ' , x .METROMETRO(METRO,X)=METRO(X)=0 0METRO,X

Claramente, esto no es completo para Turing, pero también tiene máquinas universales.


0 0

Me dio una respuesta similar a la profundidad de Math.SE que no recibió up-votos. :)
Kaveh

@Kaveh: Irónicamente, parece que calculé mal esta respuesta como anterior a la tuya, por lo que he votado, editado y comentado solo aquí. Los postes cruzados pueden ser un dolor.
Res

@res, creo que el nivel de los sitios crea diferentes patrones de votación. En math.se, incluso una muy buena respuesta de otro usuario de alta reputación aquí no recibe tanto voto, por lo que me parece normal. :) (También mi respuesta no es tan clara y comprensible como la respuesta de David aquí.)
Kaveh
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.