Grupo07IS17
lunes, 28 de abril de 2008,10:17
Generador de L={a^n b^2n a^n, con n>=0}
Hemos utilizado una M.t. modificada multicinta, con 2 cintas, en la primera se encuentra la cinta de entrada, en la segunda se generan las cadenas correspondientes al lenguaje L, el cual queremos conseguir.

En la cadena de entrada sólo recibiremos cadenas de 0´s, recorreremos el primer cabezál hasta encontrar un blanco (B), mientras por cada 0 que leamos escribiremos una (a), en la cinta de salida. Luego volvemos a recorrer la cadena hacia atras escribiendo 2 b´s, por cada 0 que encontramos, para ello utilizamos los estados q1 y q2. Para finalizar, cuando encontremos un blanco (B), volceremos a escribir en la cinta de salida a`s hasta encontrarnos al la derecha de la cadena de entrada una B, (blanco). Por finalizar escribiremos una almoadilla (#), en la cinta de salida para dejarla preparada para generar la siguiente cadena.

Aquí dejamos la tabla de transiciones de esta M.T. generadora:



{0,B}

{B,B}

q0

(q0, {0,R}, {a,R})

(q1, {B,L}, {B,Z})

q1

(q2, {0,Z}, {b,R})

(q3, {B,R}, {B,Z})

q2

(q1, {0,L}, {b,R})


q3

(q3, {0,R}, {a,R})

(q4, {B,R}, {#,R})

q4



 
Posteado por: Natxo Link ~ 1 Opiniones
sábado, 26 de abril de 2008,6:16
MT que comprueba el orden ascendente de los bloques de 0's
Máquina de Turing "clásica"

Dada una cadena de (0+1)*. La máquina indica si los bloque de ceros están ordenados por orden creciente. Por ejemplo, debe aceptar la siguiente entrada:
...B00100100010000001000000000B...

y rechazar la siguiente:
...B000001000000100B...

ya que el segundo bloque tiene 6 ceros y el tercero tiene menos, sólo 2 ceros.



0

1

B

$

X

q0

(q1, B, R)


(q2, 0, L)



q1

(q1, 0, R)

(q1, 1, R)

(q0, $, R)



q2

(q2, 0, L)

(q2, 1, L)

(q3, B, R)

(q2, $, L)


q3

(q4, B, R)

(q5, B, R)


(q12, B, R)


q4

(q4, 0, R)

(q4, 1, R)

(q2, 0, L)

(q4, $, R)


q5

(q6, X, R)

(q9, 1, R)




q6

(q6, 0, R)

(q6, 1, R)

(q7, B, L)

(q6, $, R)


q7

(q8, B, L)



(q10, $, L)


q8

(q8, 0, L)

(q8, 1, L)


(q8, $, L)

(q5, X, R)

q9

(q9, 0, R)

(q9, 1, R)

(q10, B, L)

(q10, $, R)


q10

(q10, 0, L)

(q10, 1, L)


(q10, $, L)

(q11, 0, L)

q11



(q3, B, R)


(q11, 0, L)

q12

(q12, B, R)


(q13, B, L)



q13









Máquina de Turing Multicabezal

MT que hace el mismo trabajo que la MT anterior pero con multicabezal. Se utilizan dos cabezales; el primero de ellos es el encargado de ir recorriendo la cadena que se tiene que comprobar y el segundo irá copiando bloques de 0's para ir comparando con el primer cabezal si el orden es el correcto.


{0, 0}

{0, 1}

{0, B}

{1, B}

{B, B}

q0

(q0,

{0, Z},
{0, R})

(q0,
{0, Z},

{1, R})

(q1,
{0, Z},

{B, R})



q1



(q1,

{B, R}, {0, R})

(q2,

{1, R},
{B, L})

(q4,

{B, Z}, {B, Z})

q2

(q2,
{0, R},

{B, L})


(q3,

{0, L},
{B, R})

(q3,

{1, L},
{B, R})


q3



(q3,
{0, L},
{B, Z})

(q1,
{B, R}, {B, Z})


q4








 
Posteado por: Jon o Jon Ander (según persona) Link ~ 1 Opiniones
,5:35
MT que calcula los bloques de 0's
Máquina de Turing "clásica"

Dada una cadena de (0+1)*. La máquina debe indicar cuántos bloques de 0's hay. Por ejemplo, ante la siguiente entrada:

...B0001001001000100B...

debe obtener como salida
...B00000B...

ya que se le han pasado 5 argumentos en la cadena de entrada.


0

1

B

X

q0

(q0, 0, R)

(q1, X, R)

(q4, B, L)


q1

(q1, 0, R)

(q1, 1, R)

(q2, B, R)


q2

(q2, 0, R)


(q3, 0, L)


q3

(q2, 0, L)

(q2, 1, L)


(q0, X, L)

q4

(q4, B, L)

(q4, B, L)

q5


q5







Máquina de Turing Multicinta

MT que calcula al igual que la anterior los bloques de 0's pero con una MT multicinta. Se utiliza una cinta de lectura que leerá la cadena que se le pasa y una cinta de salida para escribir el resultado del calculo.


{0, B}

{1, B}

{B, B}

q0

(q1, {B, R}, {0, R})


(q3, {B, R}, {B, R})

q1

(q1, {B, R}, {B, Z})

(q0, {B, R}, {B, Z})

(q3, {B, R}, {B, R})

q2







 
Posteado por: Jon o Jon Ander (según persona) Link ~ 1 Opiniones
jueves, 17 de abril de 2008,11:31
Lo que estamos haciendo esta semana
Vamos a ser buenos alumnos y a decir que estamos en paro, otras asignaturas nos han bombardeado a trabajos y ejercicios.

Lo único que hemos visto después de una reflexionada, meditada y saludable reflexión (después de tomarse una cerveza) fue mirarnos la explicación que nuestro compañero '...' dió de la máquina de Turing multicinta, pues creemos que no ha quedado demasiado claro.

Esto fue lo que miramos. Si es que... Si la profe talf hasta lo tenia publicado, tanto costaba en explicar esto.

Etiquetas:

 
Posteado por: Natxo Link ~ 0 Opiniones
domingo, 13 de abril de 2008,5:12
Resumen Semanal
Esta semana la hemos dedicado a hacer el ejercicio de los divisores de N.
El trabajo lo hemos dividido en varios días.
  • El primer día lo dedicamos a debatir el diseño de la máquina de turing, es decir, como podíamos diseñar la MT para obtener los divisores de un número dado N, los movimientos que debía seguir el cabezal, como era la cinta de entrada y como debía acabar la cinta, etc.

  • El segundo día (el que más curro nos pegamos) lo dedicamos a realizar la tabla de estados de la MT con un solo cabezal y con una sola cinta. La verdad nos resulto más complicado de lo que nosotros pensábamos en un principio y más costoso en horas de trabajo, como que acabamos con la cabeza como un bombo.

  • El tercer y último día, lo dedicamos a hacer la tabla de estados para la MT multicabezal. Tomamos la decisión de diseñarla con tres cabezales de lectura/escritua. En un principio nos costo un poco acabar de entender como funcionaba y como teniamos que hacer la tabla, lo cual contribuyó a unos dolores de cabeza bastante agudos. Una vez le cogimos el punto a los cabezales completamos la tabla sin demasiados problemas y en menos tiempo de lo esperado.
Como conclusión, decir que el diseño de la MT con multicabezal se realiza en mucho menos tiempo que la MT normal y resulta mas eficiente.

SalU2.

 
Posteado por: Jon o Jon Ander (según persona) Link ~ 1 Opiniones
sábado, 12 de abril de 2008,5:19
MT que obtiene los DIVISORES de N
MT normal

Esta es la Máquina de Turing que calcula los divisores de un número dado N con un solo cabezal y una sola cinta.


0

1

B

$

X

Y

q0

(q1, 0, L)






q1



(q2, $, R)




q2

(q2, 0, R)


(q3, $, L)




q3

(q4, X, L)



(q5, $, L)



q4

(q5, X, L)



(q5, $, L)



q5

(q5, 0, L)


(q10, B, R)

(q6, $, L)



q6

(q6, 0, L)


(q7, 0, R)




q7

(q7, 0, R)



(q7, $, R)

(q3, X, L)


q8

(q8, 0, L)


(q9, B, R)




q9

(q10, B, R)






q10

(q11, Y, R)



(q15, $, L)



q11

(q11, 0, R)



(q12, $, R)



q12

(q13, 0, L)



(q13, $, L)

(q12, X, R)


q13




(q16, $, R)

(q14, 0, L)


q14

(q14, 0, L)



(q14, $, L)

(q14, X, L)

(q10, 0, R)

q15

(q15, 0, L)


(q10, B, R)




q16

(q16, 0, R)

(q16, 1, R)

(q17, 0, L)

(q16, $, R)



q17

(q17, 0, L)

(q17, 1, L)

(q21, B, R)

(q17, $, L)

(q17, X, L)

(q18, 0, R)

q18

(q16, Y, R)



(q19, $, R)



q19

(q19, X, R)



(q20, $, R)



q20

(q20, 0, R)


(q17, 1, L)




q21

(q22, 0, R)






q22




(q23, B, R)



q23




(q24, 1, R)

(q23, 0, R)


q24










MT multicabezal

Esta es la Máquina de Turing que calcula los divisores de un número dado N utilizando 3 cabezales de lectura/ escritura. El uso de cada cabezal es el siguiente: el primero de ellos será el encargado de probar los divisores de N, empezando desde N/2 hasta 1. El segundo de ellos será el que vaya recorriendo N para comprobar si es divisor el número que se está probando. El tercer y último cabezal será el que escriba el divisor si corresponde.


0

1

B

$

q0

(q0, {0, L}, {0, Z}, {0, R})


(q1, {$, L}, {B, Z}, {$, R})


q1

(q2, {0, Z}, {0, R}, {0, Z})



(q3, {$, Z}, {$, L}, {$, Z})

q2

(q1, {0, Z}, {0, R}, {0, Z})


(q1, {0, L}, {B, Z}, {B, Z})

(q3, {$, Z}, {$, L}, {$, Z})

q3

(q3, {0, R}, {0, L}, {0, Z})


(q3, {B, R}, {B, Z}, {B, Z})

(q4, {$, L}, {$, Z}, {$, Z})

q4

(q4, {0, L}, {0, L}, {0, Z})


(q3, {B, R}, {B, Z}, {B, Z})

(q5, {$, Z}, {$, R}, {$, Z})

q5

(q5, {0, R}, {0, Z}, {0, Z})


(q5, {B, R}, {B, Z}, {0, R})

(q6, {$, L}, {$, Z}, {1, R})

q6

(q6, {0, L}, {0, Z}, {0, Z})


(q7, {B, R}, {B, Z}, {B, Z})


q7

(q8, {B, R}, {0, Z}, {0, Z})


(q7, {B, Z}, {B, Z}, {B, Z})

q9

q8

(q8, {0, Z}, {0, R}, {0, Z})



(q3, {$, Z}, {$, L}, {$, Z})

q9






En conclusión, un curro de la leche! xD
 
Posteado por: Jon o Jon Ander (según persona) Link ~ 0 Opiniones