ENTRADA: ....B0001010010000B.......
Como hay 4 grupos de 0's la salida deberá ser:
SALIDA: .....B0000B........
El cabezal se situa inicialmente a la izquierda del primer 0 de la cadena, es decir:
Como hay 4 grupos de 0's la salida deberá ser:
SALIDA: .....B0000B........
El cabezal se situa inicialmente a la izquierda del primer 0 de la cadena, es decir:
...Bqo0001010010000B...

Condiciones: La MT solo aceptará como validas, cadenas que tengan grupos de 0's separados por un solo 1 o una cadena de 0's. Es decir, acepta cadenas del estilo 001000100 y 0000, pero no acepta la cadena vacía, ni cadenas del tipo 100100 o 01100001000111000 etc.
Funcionamiento: En el estado q0 se mira si el primer símbolo es un 0, y solo continua si realmente es así, para rechazar la cadena vacía o cadenas que empiecen por 1.
En el estado q1 vamos borrando un grupo de 0's y su 1 separador.
En q2 miramos que el siguiente símbolo a un 1 sea un 0, para evitar que haya mas de un 1 seguido como separador.
En q3 recorremos el resto de la cadena hasta el final, y para el primer grupo, colocamos un $ al final tras el que se almacenará el resultado.
En q4 se coloca un 0 tras el $ para indicar que hemos leído uno de los grupos de 0's.
En q5 volvemos al principio de la "nueva" cadena, es decir, de la cadena que queda sin borrar, para posteriormente, ir a por el siguiente grupo.
Cuando llegamos al último grupo de 0's, este no tiene al final un 1, sino el $ por lo que borramos el grupo y el $ y metemos un 0 al final de la cadena. Con esto llegamos al estado final q7.
No hay comentarios:
Publicar un comentario