miércoles, 23 de abril de 2008

MT "multicinta" como CONTADOR de GRUPOS de 0's separados por 1's

ENTRADA: .....B01001000000100010100B.......
SALIDA: .........B000000B..........



Situacion inicial de la maquina: La MT consta de 2 cintas. La primera contiene la cadena de entrada, y la segunda almacenará el resultado. Los cabezales se encuentran en la siguiente posicion. En la cinta 1: al principio de la cadena, es decir, sobre el primer 0. En la cinta 2: Encima de un blanco cualquiera.

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 avanzando en la cinta 1 pasando por encima de 0's hasta encontrar un 1 o hasta llegar al final de la cadena. Si encontramos un 1, pasamos a q2 para comprobar que el próximo símbolo sea un 0, así evitamos que hayan mas de un 1 seguido como separador. Si llegamos al final de la cadena, colocamos un 0 en la cinta de abajo, movemos su cabezal a la derecha y finalizamos.

En q2 leemos el primer 0 del siguiente grupo de 0's y en la cinta 2 escribimos un 0 y avanzamos a la derecha, indicando así que hemos leído un grupo de 0's.

Este proceso se repite hasta que solo queden 0's, es decir, al llegar al último grupo de 0's, que empezará leyendo 0's hasta encontrar el B, por lo que escribirá en la cinta de salida otro 0 indicando que se ha leído el último grupo y finalizará.


No hay comentarios: