Complejidad temporal de las simulaciones de máquinas de Turing universales y el teorema de la jerarquía temporal

8

Tengo un pequeño problema para entender la prueba del Teorema de la Jerarquía del Tiempo (Hennie y Stearns, 1966) que asegura la existencia de un lenguaje aceptable en pero no aceptable en para cualquier función , de modo que sea ​​construible en el tiempo yU(norte)T(norte)T(norte),U(norte)U(norte)

norteT(norte)=o(U(norte)Iniciar sesiónT(norte)).

Esta prueba se basa en la existencia de la máquina Universal de Turing que simula cualquier máquina de Turing con complejidad de tiempo en el tiempo .T(norte)T(norte)Iniciar sesiónT(norte)

Entiendo (y creo) la prueba de que cada máquina de Turing tape puede ser simulada por una máquina de Turing de dos cintas con una sobrecarga logarítmica. Sin embargo, entiendo esta construcción solo si la máquina de Turing simulada es fija, no en el caso de la simulación Universal TM.k

Veo un "problema" en el razonamiento dado en el artículo citado (y también en varios libros estándar sobre complejidad computacional) relacionado con la construcción de la máquina Universal. Este "problema" es que en la simulación de máquina Universal, se supone que la máquina Universal ejecuta un paso computacional de una máquina simulada en tiempo constante. En otras palabras, se supone que la longitud de la descripción de la máquina simulada es constante.

Pero esta bien? Como en la prueba del Teorema de la Jerarquía del Tiempo, la entrada dada a la máquina de Turing simulada es exactamente esta descripción, y por lo tanto, la descripción depende de alguna maneranorte. Soy consciente de que la descripción puede alargarse mediante una secuencia de bits iniciales, pero esto no parece resolver este problema.

Es decir, no puedo entender por qué la máquina universal puede ejecutar el paso de cálculo de una máquina simulada en un tiempo constante. El documento de Hennie and Stearns no presta mucha atención a esto, simplemente afirma que esta vez es algo que se supone implícitamente como una constante. Del mismo modo en los libros de texto que he leído sobre el tema.

Simplemente no puedo entender por qué la complejidad temporal de la simulación es T(norte)Iniciar sesiónT(norte), y no norteT(norte)Iniciar sesiónT(norte).

Estoy casi seguro de que me falta algo. Sin embargo, estoy tratando de entender esto por un tiempo relativamente largo y de alguna manera no puedo resolver esto.

042
fuente

Respuestas:

7

Me refiero aquí a la prueba del teorema de la jerarquía, ya que estoy familiarizado con él, en el que no veo el problema que mencionas.

Definimos el idioma L={(METRO,w):METRO no acepta (METRO,w) dentro t(norte)El |METROEl |3+El |METROEl |Iniciar sesiónt(norte),norte=El |(METRO,w)El |} (dónde t es la función de tiempo en la que estamos trabajando).

Mostramos que L es decidible en O(t(norte)) usando la máquina universal, y en la máquina universal cada paso depende del tamaño de la máquina, por lo que tenemos El |METROEl |3 en el denominador (el 3 es solo un límite superior en los cálculos necesarios para simular un paso).

Para completar la respuesta: cuando intentamos llegar a una contradicción, asumimos que existe una máquina T eso decide L. Después de esta suposición, la codificación deT es fijo, y luego una simulación de un solo paso realmente toma tiempo constante, y podemos llegar a una contradicción si tomamos el tiempo suficiente w para aumentar la longitud de la entrada sin cambiar T.

Shaull
fuente
1
Creo que entiendo, finalmente ... Esto es genial. ;) ¡Muchas gracias!
042
1
Por cierto, esta no es una pregunta tonta. ¡Este es un teorema difícil incluso sin todos esos pequeños detalles!
Shaull