PREGUNTA: Dada la siguiente máquina de Turing:M = ( {qo, q1, q2, q3, q4}, {0,1}, {0, 1, X, Y, B}, σ, q0, B, {q4})
donde σ se define mediante la siguiente tabla de transiciones:Nota: dado que no se ve del todo bien, aclarar que la anotación más a la derecha y más abajo es (q4, B, R)
Indicar cuál de las siguientes afirmaciones es verdadera:
a) El lenguaje que reconoce es {0
n1
n: n >= 0}
b) El lenguaje que reconoce es {0
n1
n: n >= 1}
c) El lenguaje que reconoce es {0
m1
n: m, n >= 0}
d) Ninguna de las anteriores afirmaciones es verdadera
RESPUESTA: la opción correcta es la b).
Lo primero que hemos de preguntarnos es cuál es el estado de aceptación de la máquina. Esto nos lo indica la definición M = … donde el último término son los estados de aceptación, en este caso es estado de aceptación q4.
Nos podemos preguntar: ¿Por qué aparecen los símbolos X, Y, B en la tabla de transiciones si el alfabeto del lenguaje está formado por 0, 1? La respuesta es que en las máquinas de Turing los símbolos que generan transiciones son los símbolos de cinta, que son los que determinan las transiciones. La cadena inicial únicamente interviene para inicializar la cinta (por tanto después de algunos movimientos podemos encontrarnos que estamos leyendo cualquier símbolo de cinta, no sólo símbolos del alfabeto del lenguaje).
Nos preguntamos: ¿admite la máquina la cadena vacía? No, para salir de q0 necesitamos que la cadena a reconocer empiece por cero. Por tanto la opción c donde n >= 0 con n=0 sería falsa (no admite la cadena vacía). Descartamos la opción c).
Por el mismo motivo la opción a) {0
n1
n: n >= 0} es falsa (al no admitirse la cadena vacía). Descartamos la opción a).
Nos preguntamos si la opción b) es cierta.
¿admite la máquina la cadena 01? Las transiciones serían:
q
001 ├ Xq
11 ├ q
2XY ├ Xq
0Y ├ XYq
3B├ XYBq
4 B … con lo que llegamos a aceptación, lo que apunta a que la opción b) puede ser correcta.
¿admite la máquina la cadena 0101? Las transiciones serían:
q
00101 ├ Xq
1101 ├ q
2XY01 ├ Xq
0Y01 ├ XYq
301 ├ … en q
3 no hay transición definida para un cero, por lo tanto la máquina se para y la cadena no es admitida, esto apunta a que la opción b) puede ser correcta.
¿admite la máquina la cadena 0011? Las transiciones serían:
q
00011 ├ Xq
1011 ├ X0 q
111 ├ Xq
20 Y1 ├ q
2X0 Y1 ├ X q
00Y1 ├ XX q
1Y1 ├ XX q
1Y1 ├ XX Y q
11 ├ XXq
2YY ├ X q
2XYY ├ XXq
0YY ├ XXY q
3Y ├ XXYY q
3B ├ XXYYBq
4 B … con lo que llegamos a aceptación, lo que apunta a que la opción b) puede ser correcta.
Respondemos por tanto la opción b).
Quizás sea más fácil en algunos casos verlo haciendo la representación de la máquina de Turing de forma gráfica, que hubiera sido otra forma de enfocar el problema o de tratar de verificarlo. Esta representación sería la siguiente: