En el problema de detención, nos interesa saber si hay una máquina Turing que pueda decir si una máquina Turing detiene o no en una entrada dada . Por lo general, la prueba comienza asumiendo que tal existe. Luego, consideramos un caso en el que restringimos a , y luego derivamos una contradicción al usar una instancia de un argumento diagonal. Estoy interesado en cómo sería la prueba si se nos promete que ? ¿Qué pasa con la promesa , donde es funcionalmente equivalente a ?M i T i M i ≠ M i ≠ M ′ M
computability
undecidability
halting-problem
Bellpeace
fuente
fuente
Respuestas:
Supongamos que HALTS es una TM que lee su entrada como un par y , donde es una codificación TM y es cualquier entrada a esa TM.x M xM x M x
Su pregunta es si ¿qué pasaría si asumimos HALTS resolvió el problema de la parada para todas las entradas tal que no es una codificación de un TM que es funcionalmente equivalente a .x M⟨M,x⟩ x M
Afirmo que esto implica una contradicción. Se me ocurrió esto en el acto, así que agradezco cualquier crítica de mi prueba. La idea de la prueba es que, en lugar de diagonalizar algo en sí mismo, hacemos dos TM mutuamente recursivas que se comportan de manera diferente en alguna entrada (por lo tanto, no son funcionalmente equivalentes), pero de lo contrario causan contradicciones.
Supongamos que y son dos TM mutuamente recursivas (es decir, podemos simular, imprimir, etc., la descripción de dentro del programa de y viceversa). Tenga en cuenta que podemos hacer TM recursivas mutuamente a partir del teorema de recursividad.D 2 D 2 D 1D1 D2 D2 D1
Defina y siguiente manera: en la entrada , si (10 elegidos arbitrariamente), luego acepta y bucles. (Por lo tanto, no son funcionalmente equivalentes).D 2 x | x | < 10 D 1 D 2D1 D2 x |x|<10 D1 D2
Entrada dada con , defina para simular HALTS en y si detiene o si bucle.| x | ≥ 10 D 1 ⟨ D 2 , x ⟩ D 2 D 2x |x|≥10 D1 ⟨D2,x⟩ D2 D2
Entrada dada con , defina para simular HALTS en y bucle si detiene o se detiene si se .| x | ≥ 10 D 2 ⟨ D 1 , x ⟩ D 1 D 1x |x|≥10 D2 ⟨D1,x⟩ D1 D1
Luego tenga en cuenta que para cualquier con , (x) se detiene o se repite. Si detiene en la entrada x, entonces sabemos que HALTS ( , x) determinó que detiene en la entrada x. Sin embargo, la detención de en la entrada x implica que HALTS ( , x) se .x |x|≥10 D1 D1 D2 D2 D2 D1
Si en la entrada bucles, la contradicción sigue de manera similar.D1 x
Esto es una contradicción a menos que sea una codificación para una máquina de turing funcionalmente equivalente a o , en cuyo caso HALTS tiene un comportamiento indefinido. Sin embargo, se eligió de forma arbitraria entre todas las cadenas de tamaño superior a . Por lo tanto, queda por demostrar que existe una máquina de Turing con una codificación de tamaño superior a 10 que se comporta de manera diferente a y . Podemos construir tal máquina de manera trivial. QEDx D1 D2 x 10 D1 D2
Pensamientos?
fuente
Aún no estás fuera del bosque. Te encuentras con el mismo problema, solo que ahora le das una TM diferente, como entrada, donde has elegido para que sea funcionalmente equivalente a (digamos que agregas una nueva regla a para que movimientos de apertura de son un paso a la derecha, un paso a la izquierda y de lo contrario no realiza cambios). Aún te encontrarás con una contradicción. Puede intentar eliminar todas las TM que son equivalentes a , pero ese es un conjunto indecidible.M′ M′ M M M′ M
Actualización . Arregle un esquema de codificación donde denota la descripción bajo ese esquema de una TM y suponga que tenía una TM, donde⟨M⟩ M H
Ahora la construcción de diagonalización habitual todavía resulta en una contradicción. Definir una TM porQ
Claramente, y son funcionalmente no equivalentes, por lo que podemos dejar que y encontrar que detiene si y solo si no se detiene, entonces no puede haber tal TM .H x = ⟨Q H Q ( ⟨x=⟨Q⟩ HQ(⟨Q⟩) H
fuente