¿Se pueden convertir las máquinas de Turing en un DFA?

Tenía exactamente la misma pregunta cuando tomé Automata Theory. Mis profesores me dijeron que no se podía hacer, pero obstinado mocoso que era, me dispuse a intentarlo.

Lo que finalmente concluí fue que la reducción de Turing a DFA solo se puede realizar en caso de que la cinta sea finita. Esto me permitirá construir un DFA con un número finito de estados. Han pasado algunos años, por lo que mi recuerdo de los cálculos exactos que realicé puede ser defectuoso, pero lo que finalmente llegué a la conclusión es que incluso para el idioma más simple posible: uno que tiene solo 1 letra y una longitud máxima de palabra n (es decir, longitud de cinta n), necesita al menos n estados para representar todas las palabras posibles. Esto aumenta exponencialmente con el número de letras. Las lenguas que se ajustan a algunos criterios específicos no soportan pensar en este contexto.

Esto anula el propósito de la máquina Turing, que tiene la cinta infinita como su característica más poderosa. Aparentemente, esto podría usarse en ciertas situaciones, cuando desee reducir la complejidad de un problema, en caso de que esté absolutamente seguro de los límites de la cinta, pero esa es una situación en gran medida hipotética. Es mejor atenerse a las máquinas genéricas.

No, en general no puedes hacer eso. La máquina Turing es esencialmente una DFA + una cinta potencialmente infinita que permite el acceso de lectura / escritura. No hay forma de empaquetar todo el contenido de la cinta en el número finito y fijo de estados de su nuevo DFA hipotético. Y hay muchos problemas de decisión en los que tener esa cinta realmente ayuda. Por un simple ejemplo, no puede reconocer el lenguaje de todos los palíndromos que usan un DFA.

En general no. Turing Machine captura todas las funciones computables . Los DFA solo capturan las funciones que se pueden calcular en espacio constante.

Esto significa que la cantidad de información que necesita memorizar mientras calcula la función, NO depende del tamaño de la entrada.

Siempre puede ‘convertir’ todas las TM a un DFA en particular.

La pregunta es más bien si esta conversión tendrá propiedades significativas: la obvia es la conversión para M – una máquina de Turing, y C – conversión C (M) decide el mismo lenguaje que M. Pero esto es imposible.

Por ejemplo, al usar el lema de bombeo para las gramáticas regulares, puede mostrar que el idioma [matemáticas] 0 ^ {n} 1 ^ {n} [/ matemáticas] no es regular, por lo que no existe ningún DFA que lo decida. Pero probablemente no debería tener muchos problemas para demostrar que es decidible mediante la construcción de TM adecuada.

Solo si la máquina de Turing es una variante defectuosa se puede convertir a DFA. En otras palabras, si una máquina de Turing en particular solo reconoce la clase de idiomas regulares, entonces se puede convertir a un DFA.

More Interesting

Si [matemática] f (5) = 12 [/ matemática] y [matemática] f (10) = 18 [/ matemática] ¿qué significa [matemática] f (20) =? [/ Matemática] Cuándo (a) [matemática] f [/ math] es una función exponencial y (b) [math] f [/ math] es una función de potencia?

Sea G un simple gráfico plano conectado con menos de 30 aristas. ¿Cómo puedo mostrar que un gráfico G contiene un nodo cuyo grado es máximo 4?

Cómo usar el lema de bombeo para demostrar que [matemáticas] A = \ {www \ mid w \ in \ {a, b \} ^ * \} [/ matemáticas] no es un lenguaje normal

¿Por qué puedo codificar pero no puedo entender las matemáticas discretas?

¿Cuántas matemáticas se necesitan en la codificación?

Si C / C ++ es más rápido, ¿por qué otros lenguajes no se compilan primero en C / C ++ y solo después en el código de máquina?

Estoy interesado en algoritmos. Planeo hacer una maestría en informática teórica en una de las 20 mejores universidades. ¿Cuán significativamente ayudará a hacerme digno de la industria?

Cómo implementar un programa en C para un polinomio como un tipo de datos abstractos (ADT)

Me encanta aprender teoría, pero no siempre disfruto escribiendo código. ¿Cómo me pueden pagar para vivir en el mundo de los pensamientos? ¿Solo estoy siendo vago?

¿Cuáles son algunos ejemplos de pruebas matemáticas que contradicen las expectativas?

¿Qué es la recursividad?

¿Qué tan importante es la teoría de probabilidad clásica para la computación cuántica?

¿Qué es una variable de instancia?

¿Cuál es la probabilidad de que un número generado al sumar diez números aleatorios del 1 al 10 sea divisible por 2 (o 3, o 4, etc.)?

¿Qué es un algoritmo de aproximación?