Ejemplo

 

Diseñar una máquina de Turing que acepta el lenguaje L={0n1n :n>0}

Lo primero que haremos es limitar el alfabeto a

Σ={0,1}Σ={0,1}

así nos aseguramos de que sólo puede aceptar palabras con de entrada con símbolos 1 y 0.

Los símbolos de cinta serán

T={0,1,B,X,Y}T={0,1,B,X,Y}

siendo B el símbolo en blanco.

La MT consta de cinco estados:

q0,q1,q2,q3,q4q0,q1,q2,q3,q4

Los estados q0 y q4 son el inicial y el final, respectivamente.

Inicialmente, la cabeza señala el primer 0. Lo cambia por X y se desplaza a la derecha en busca del primer 1 para cambiarlo por Y:

δ(q0,0)=(q1,X,R)δ(q0,0)=(q1,X,R)

δ(q1,0)=(q1,0,R)δ(q1,0)=(q1,0,R)

Es decir, mientras haya 0's, se mantiene en el estado q1 .

δ(q1,1)=(q2,Y,L)δ(q1,1)=(q2,Y,L)

Ha encontrado el primer 1. Lo cambia por Y y pasa al estado q2 moviéndose a la izquierda. En este estado, la MT se mueve hacia la izquierda en busca de X saltando las casillas con 0's:

δ(q2,0)=(q2,0,L)δ(q2,0)=(q2,0,L)

Cuando encuentra la X, se mueve hacia la derecha esperando encontrar un 0 para cambiarlo por X, por lo que pasa al estado q:

δ(q2,X)=(q0,X,R)δ(q2,X)=(q0,X,R)

Una vez cambiado dicho 0 por X, está en el estado q. Ahora tiene que buscar el siguiente 1 y cambiarlo por Y, pero se encuentra con Y antes de llegar, por lo que tiene que saltar esta casilla:

δ(q1,Y)=(q3,Y,R)δ(q1,Y)=(q3,Y,R)

En el estado q3 sigue saltando las casillas con Y hasta llegar al 1:

δ(q3,Y)=(q3,Y,R)δ(q3,Y)=(q3,Y,R)

δ(q3,1)=(q2,Y,L)δ(q3,1)=(q2,Y,L)

Pasa al estado q2 una vez ha cambiado el 1 por la Y. En este estado, la MT se mueve a la izquierda hasta encontrar una X. Una vez la encuentra, se mueve una casilla a la derecha. Si hay un 0, tendrá que empezar el proceso anterior (buscar 1, cambiarlo por Y y volver a buscar la X, con lo que estaremos de nuevo en este punto). Si ya no quedan 0's, habrá una Y y, por tanto, se han cambiado n 0's por n 's y n 1's por n 's. Entonces se mueve a la izquierda:

δ(q2,Y)=(q2,Y,L)δ(q2,Y)=(q2,Y,L)

Se encuentra con una X y pasa al estado q0. En este estado se busca un 0 para cambiarlo por X, pero suponemos que ya no quedan. Entonces la cabeza debe moverse a la derecha para comprobar que tampoco quedan más 1's:

δ(q0,Y)=(q0,Y,R)δ(q0,Y)=(q0,Y,R)

Cuando encuentra el primer símbolo en blanco, la MT finaliza:

δ(q0,B)=(q4,B,R)δ(q0,B)=(q4,B,R)

En el caso de que haya más 0's que 1's, llegará un momento en el que ya no queden 1's (los habrá cambiado por ). La MT se quedará permanentemente en el estado q1 .

El diagrama de la MT es:



Vamos a simular la MT para una sola entrada que todas tienen la misma forma. Mostraremos el estado final de la cinta y la posición de la cabeza (sombreado en color rosa).

Entrada: 000111; Resultado esperado: XXXYYY.


Comentarios

Entradas populares