- Utilizar una máquina multicabezal con 2 cabezales, uno para recorrer la cadena y otro para guardar el resustado.
- En caso de la multicinta, usariamos 2 cintas. Hemos observado que con la primera cinta recorremos la cadena de entrada y con la otra cinta se escribe el resultado.
Finalmente hemos escogido la multicabezal porque es ligeramente más eficiente (para nosotros :P ) a la hora de escribir las transiciones.
Poscionamiento inicial de los cabezales
...B00001001001000100BB...
Rojo= Posicion inical del cabezal 1
Azul= Posición inicial del cabezal 2
Rojo= Posicion inical del cabezal 1
Azul= Posición inicial del cabezal 2
Procedimiento: Utilizaremos el estado q0 para desplazar el cabezal 2 a la derecha hasta que encuentre un blanco, momento que mueve a la derecha el cabezal 2 situandose en el segundo blanco de la derecha y cambia al estado q1. En estado q1, cada vez que leamos en los cabezales (0,B) marcamos en el primer cabezal un blanco y los desplazamos a la derecha y no modificamos el cabezal 2 ni lo desplazamos. En el estado q1, cuando encontramos (1,B) marcamos con el cabezal 1 un blanco y desplazamos a la derecha y con el cabezal 2 escribimos un 0 y lo desplazamos a la derecha. Seguiremos en el estado q1 hasta que encontremos (B,B) no haremos nada con el cabezal 1 y en cabezal marcamos un 0 y terminamos en el estado final q2.
ENTRADA: ...B0001001001000100B...
SALIDA: ...B00000B...
Las transiciones del MT multicabezal son:
f(q0,0,0) = (q0,{0,Z},{0,R})
f(q0,0,1) = (q0,{0,Z},{1,R})
f(q0,0,B) = (q1,{0,Z},{B,R})
f(q1,0,B) = (q1,{B,R},{B,Z})
f(q1,1,B) = (q1,{B,R},{0,R})
f(q1,B,B) = (q2,{B,Z},{0,R})
f(q2,B,B) = ESTADO FINAL
ENTRADA: ...B0001001001000100B...
SALIDA: ...B00000B...
Las transiciones del MT multicabezal son:
f(q0,0,0) = (q0,{0,Z},{0,R})
f(q0,0,1) = (q0,{0,Z},{1,R})
f(q0,0,B) = (q1,{0,Z},{B,R})
f(q1,0,B) = (q1,{B,R},{B,Z})
f(q1,1,B) = (q1,{B,R},{0,R})
f(q1,B,B) = (q2,{B,Z},{0,R})
f(q2,B,B) = ESTADO FINAL
1 comentario:
Hecha unas Descripciones Instantaneas a esta MT MultiCabezal para contar bloques de 0's, también cumple el objetivo.
La MT MulticaBezal es correcta.
Publicar un comentario