Cómo demostrar que EQTM = {: L (M1) = L (M2)} es indecidible (suponga que M1 y M2 son codificaciones de TM)

El boceto de prueba en el libro de texto es bastante parecido a una prueba completa, siempre que comprenda la noción de “reducción” [de un problema de decisión a otro].

La idea de esta prueba, aún más a grandes rasgos, es esta:

  1. Decidir si el conjunto de detención de una TM determinada está vacío es difícil. (Aquí “duro” significa “indecidible”; en otros contextos podría significar “NP-completo” o algo más). Este es un teorema conocido.
  2. Es fácil construir una TM que tenga un conjunto de detención vacío.
  3. Supongamos que tenemos un oráculo que decidiría si dos TM tienen el mismo conjunto de detención. Este oráculo podría permitirnos resolver el problema de “está vacío el conjunto de detención” (solo pregunte al oráculo si el conjunto de detención de la TM dada es el mismo que el conjunto de detención de la TM que construimos en el paso 2).
  4. Por lo tanto, si el problema del “mismo conjunto de detención” fuera fácil, también lo sería el problema del “conjunto de detención vacío”. Como sabemos que lo último no es fácil, sabemos que lo primero tampoco puede serlo.

Su profesor probablemente ha demostrado el paso 1 en clase, y si no, probablemente puede ser sobornado para hacerlo. El paso 2 es un ejercicio. Debe asegurarse de poder formalizar el paso 3 en cualquier nivel de rigor que sea apropiado para su entorno. El paso 4 es una lógica general (busque “modus tollens” para ver la forma general de este paso argumentativo).

Lo primero que pienso es que si la equivalencia de TMs fuera decidible en general, también lo sería la equivalencia a una TM divergente. La TM divergente tiene un lenguaje vacío y, por lo tanto, podemos usar el verificador de equivalencia para averiguar si alguna máquina de Turing tiene el idioma vacío (estos son mis primeros pensamientos porque la equivalencia con TM divergentes suena como un problema de detención, lo que recuerdo es indecidible). , los TM dirvergentes tienen el lenguaje vacío, al igual que las máquinas de terminación que siempre rechazan, por lo que no es el problema de detención; pero intuitivamente, va en la dirección correcta).

Entonces, si podemos descubrir que no es posible verificar si alguna máquina de Turing tiene el idioma vacío, también sabemos que la equivalencia no es decidible.

Ahora, ¿por qué no sería posible verificar que cualquier máquina de turing tenga el idioma vacío? Creo que podría tener sentido codificar el problema de detención de alguna manera.

Mi primera idea sería crear una máquina [math] Halt_X [/ math] para cada máquina de turing [math] X [/ math], que acepta iff [math] X [/ math] termina en la entrada [math] \ langle X \ rangle [/ math]. Esto no suena tan difícil; simplemente use la máquina universal de turing [matemática] U [/ matemática] y un prefijo finito de estados que coloca [matemática] \ langle X \ rangle \ # \ langle X \ rangle [/ math] en la cinta utilizada por [math] U [/ math], pero haga de cada estado un estado de aceptación. Esta máquina acepta todo, es decir, si la máquina termina, que es cuando [math] X [/ math] termina en la entrada [math] \ langle X \ rangle [/ math], o no acepta nada, es decir, si la máquina no terminar, que es cuando [math] X [/ math] no termina en la entrada [math] \ langle X \ rangle [/ math].

Como consecuencia, si sabemos si [math] Halt_X [/ math] acepta palabras o no, sabemos si [math] X [/ math] termina en la entrada [math] \ langle X \ rangle [/ math].

Por lo tanto, decidir para todas [matemáticas] X [/ matemáticas] si [matemáticas] Halt_X [/ matemáticas] acepta palabras o no, es lo mismo que decidir para todas las máquinas de Turing [matemáticas] X [/ matemáticas] si termina en la entrada [ matemáticas] \ langle X \ rangle [/ matemáticas] o no, y este es exactamente el problema de detención.

Sabemos que el problema de detención es indecidible, por lo que también es indecidible (para [math] X [/ math] general) si machine [math] Halt_X [/ math] acepta palabras o no; por lo tanto, no podemos tener una máquina que decida en general si una máquina acepta palabras o no; y dado que una máquina que prueba la equivalencia puede usarse para hacer eso, no puede haber una máquina que pruebe la equivalencia.

More Interesting

¿Qué es el retorno 0 en C?

¿Cuál es el beneficio de estudiar lógica y teoría de conjuntos para matemática o informática?

¿Cómo determina esta función si hay una superposición entre dos rangos?

¿Cómo es tomar CS 154 (Introducción a los autómatas y la teoría de la complejidad) en Stanford?

¿Cuáles son algunas de las aplicaciones comunes de Machine Learning?

¿Qué campos crees que están más relacionadas con Matemáticas e Informática o Matemáticas y Física?

¿Por qué la mayoría de la gente trata de resolver problemas profundos en la complejidad computacional como P versus NP por combinatoria y no por lógica?

¿Cuáles son las formas o tipos de problemas en los que XOR es útil?

¿Cómo es tomar CS 226r (Algoritmos Eficientes) en Harvard como estudiante?

¿Puede la ciencia / psicología cognitiva ayudarlo a comprender otras áreas más rápidamente, como las matemáticas, la física y la informática?

¿Cómo se me ocurre una fórmula de suma para iterar sobre una matriz y cambiar el índice inicial con cada iteración?

¿Es el principio de equivalencia computacional de Stephen Wolfram simplemente una extensión de la tesis de Church-Turing y la máquina universal de Turing de Turing?

Sea m una máquina de turing y sea w una corriente de entrada de m. ¿Cómo puedo definir el tiempo de ejecución tm (w) de m en la entrada w?

¿Cómo se traduce o articula la fórmula matemática que define el conjunto de Mandelbrot y otros fractales como datos de píxeles?

¿Cuánto se puede ocultar una imagen antes de que sea irreconocible?