21
INTRODUCCION considerar las máquinas abstractas que permiten solucionar ciertos tipos de algoritmos, los algoritmos en los que no puede recordarse más que una cantidad fija de información y otros en los que la información desarrollada durante la ejecución del algoritmo puede recuperarse solo en concordancia con la regla “lifo” últimos en entrar primeros en salir, en esta unidad se describe una maquina abstracta, llamada Máquina de Turing , que es aceptada de manera amplia como modelo general de computación, aunque las operaciones básicas de esta máquina son comparables en su sencillez a las de las máquinas estudiadas en las unidades anteriores, las nuevas maquinas pueden realizar una amplia variedad de operaciones de cómputo. Además de aceptar lenguajes les es posible computar funciones y de conformidad con la tesis de Church-Turing, ejecutar casi cualquier procedimiento algorítmico concebible.

Trabajo Colaborativo 3

Embed Size (px)

Citation preview

Page 1: Trabajo Colaborativo 3

INTRODUCCION

considerar las máquinas abstractas que permiten solucionar ciertos tipos de algoritmos, los algoritmos en los que no puede recordarse más que una cantidad fija de información y otros en los que la información desarrollada durante la ejecución del algoritmo puede recuperarse solo en concordancia con la regla “lifo” últimos en entrar primeros en salir, en esta unidad se describe una maquina abstracta, llamada Máquina de Turing , que es aceptada de manera amplia como modelo general de computación, aunque las operaciones básicas de esta máquina son comparables en su sencillez a las de las máquinas estudiadas en las unidades anteriores, las nuevas maquinas pueden realizar una amplia variedad de operaciones de cómputo.

Además de aceptar lenguajes les es posible computar funciones y de conformidad con la tesis de Church-Turing, ejecutar casi cualquier procedimiento algorítmico concebible.

Page 2: Trabajo Colaborativo 3

OBJETIVO GENERAL

Reconocer la importancia y el poder computacional de las Máquinas de Turing en el contexto de la solución de problemas computacionales de reconocimiento de Lenguajes.

OBJETIVOS ESPECÍFICOS:

Estudiar las Máquinas de Turing y sus propiedades básicas

Page 3: Trabajo Colaborativo 3

EJERCICIOS A DESARROLLAR:

1. Dado el alfabeto Σ={x,y} de la siguiente Máquina de Turing, determine:

• El lenguaje que acepta• Recorra la máquina con al menos una cadena válida.• Identifique una cadena que no sea válida y justifíquela porque.• Identifique los componentes de la Máquina de Turing (descríbala).

2. Diseñe una MT que reconozca {0n1n: n ≥ 1 }

• Cambie un 0 por una x (explique qué pasa con la máquina).• Cambie un 1 por una y (explique qué pasa con la máquina).• Identifique en qué momento la máquina de Turing se detiene.

• Calcule la función δ• Grafíquela e identifique sus elementos.• Identifique la función de transición.

3. Construya una MT que acepte el Lenguaje (represéntela

L = {aibici: i ≥ 0} sobre Σ = {a,b,c}

• Se cambia la a por una x moviéndose a la derecha. (explique qué pasa con la máquina). Represente los movimientos en la tabla de transiciones para MT.

• Luego se mueve a la izquierda pasando por encima de las bs (bes) (explique qué pasa con la máquina). Represente los movimientos en la tabla de transiciones para MT.

• Identifique en qué momento la máquina de Turing se detiene.

• Calcule la función δ• Grafíquela e identifique sus elementos.

Page 4: Trabajo Colaborativo 3

4. Construir una MT que reconozca L = 01*+ = 10*

Para la Máquina M = (Q, Σ, ┌ , q0, T , B , δ)Q = { q0, q1} x {0,1,B} Estado inicial [q0, B]Estado final [q 1, B]

La función de transición δ está dada por:

δ ([q0, B] , 0 ) = ([q1, 0], 0 , D)

δ ([q0, 0] , 1 ) = ([q1, 0], 1 , D) δ ([q0, 0] , B ) = ([q1, B], B , D) δ ([q0, B] , 1 ) = ([q1, 1], 1 , D) δ ([q1, 1] , 0 ) = ([q1, 1], 0 , D) δ ([q1, 1] , B ) = ([q1, B], B , D)

• Identifique una cadena válida.

5. Para la siguiente Máquina de Turing (MT):

Identifique que pasa cuando inicia con la cadena yy xyxx (demuéstrelo con el

recorrido de la misma)

Plásmela en el simulador (debe entregar el archivo generado por el simulador), Las imágenes capturadas van inmersas en el desarrollo del trabajo.

Page 5: Trabajo Colaborativo 3

Con base en esa MT, proponga una nueva máquina que se comporte diferente

cuando inicia con la cadena yy xyxx

6. Considere la máquina de Turing de la figura con el alfabeto {x,y,z} e indique que tipo de cadenas decide el lenguaje que acepta.

Dentro del RunTest y el recorrido de la cinta, Ubique en su cinta la secuencia

xy y que sea sustituida por zz. Identifique cuando se detiene la máquina cuando hace esta operación

Plásmela en el simulador. Las imágenes capturadas van inmersas en el desarrollo del trabajo.

Ejecute el RunTest a la cadena aceptada (muéstrela en la captura de imagen para el trabajo

DESARROLLO

2. Diseñe una MT que reconozca {0n1n: n ≥ 1 }

• Cambie un 0 por una x (explique qué pasa con la máquina).

Se mueve hacia la derecha, pasando por encima de los ceros e Y, hasta llegar al primer 1

• Cambie un 1 por una y (explique qué pasa con la máquina).

Se mueve hacia la izquierda por encima de todos Y y de todos los ceros hasta llegar a una X y se repite el proceso hasta que sólo queden Xs y Ys.

• Identifique en qué momento la máquina de Turing se detiene.

Se detiene en el estado de aceptación q4 después de hacer paso por el símbolo “B”en blanco.

• Calcule la función δ

Page 6: Trabajo Colaborativo 3

δ q0 , 0 = (q1 , X, D)δ q1 , 0 = (q1 , 0, D)δ q1 , X= (q1 , X, D)δ q1 , 1= (q2 , Y, I)δ q2 , Y= (q2 , Y, I)δ q2 , 0= (q2 , 0, I)δ q2 , X= (q0 , X, D)δ q0 , Y = (q3 , Y, D)δ q3 , Y = (q3 , Y, D)δ q3 , B = (q4 , B, D)• Grafíquela e identifique sus elementos.

Page 7: Trabajo Colaborativo 3
Page 8: Trabajo Colaborativo 3

Sea Q= {q0, q1, q2, q3, q4}, ∑= {0, 1},r= {0, 1, X, Y, B}, F = {q4}

Inicialmente, la cinta de entrada de M contendrá 0n1n seguido de un número infinito de blancos. Repetidamente, M reemplaza el 0 más a la izquierda por X, mueve hacia la derecha la cabeza de la cinta hasta encontrar el 1 que esté más a la izquierda, reemplazándolo por Y , luego se mueve a la izquierda para encontrar la X más a la derecha, entonces mueve la cabeza una celda hacia la derecha y si encuentra un 0 entonces repite el ciclo. Sin embargo, si cuando se busca un 1, M encuentra un blanco en su lugar, entonces M se para sin aceptar su entrada . Si, después de cambiar un 1 por una Y , M no encuentra más 0’s, entonces M examina que no haya más 1, si no los hay entonces acepta su entrada.

Cada estado representa una declaración o un grupo de declaraciones en un programa. Al estado q0 se ingresa inicialmente y es el estado previo a cada reemplazo del 0 más a la izquierda por una X. El estado q1 se usa para buscar a la derecha, saltando sobre los 0’s y las Y ’s, hasta encontrar el 1 más a la izquierda. Si M encuentra 1, lo cambia por Y , y entra al estado q2. El estado q2

busca a la izquierda una X y entra en el estado q0 cuando lo encuentra, luego se mueve hacia la derecha hasta el 0 ubicado más a la izquierda. Conforme M busca hacia la derecha en el estado q1, si B o X aparecen antes de encontrar un 1, entonces la entrada es rechazada; puede que haya demasiados 0’s o la entrada no está en 0*1*.

El estado q0 tiene otro papel. Si, después del estado q2 se encuentra la X más a la derecha, existe una Y inmediatamente a su derecha, entonces los 0’s están agotados.

Desde q0, se explora Y , entra el estado q3 para explorar sobre las Y ’s y examina que no haya 1’s restantes. Si las Y ’s están seguidas por B, se entra al estado q4

y la aceptación ocurre; en otro caso, la cadena es rechazada. La función δ es:

• Identifique la función de transición.

M = ({q0, q1, q2, q3, q4}, {0, 1}, {0, 1, X, Y, B}, δ , q0, B, {q4})

ESTADO 0 1 X Y Bq0 q1 , X, R ---- ---- q3 , Y, R ----q1 q1 , 0, R q2 , Y, L ---- q1 , Y, R ----q2 q2 , 0, L ---- q0 , X, R q2 , Y, L ----q3 ---- ---- ---- q3 , Y, R q4 , B, Rq4 ---- ---- ---- ---- ----

Page 9: Trabajo Colaborativo 3

3. Construya una MT que acepte el Lenguaje (represéntela

L = {aibici: i ≥ 0} sobre Σ = {a,b,c}

• Se cambia la a por una x moviéndose a la derecha. (explique qué pasa con la máquina). Represente los movimientos en la tabla de transiciones para MT.

Al cambiar la a por una X se mueve a la derecha por encima de todas las a’s e Y’s, hasta llegar a la primera b, cambia la primera b por una Y, se mueve a la derecha pasando por encima de las bs y Zs y luego encuentra la primera c y la cambia por Z y se mueve a la izquierda.

• Luego se mueve a la izquierda pasando por encima de las bs (bes) (explique qué pasa con la máquina). Represente los movimientos en la tabla de transiciones para MT.

Al mover a la izquierda pasando por encima de bs, Ys, as, hasta encontrar la X la reemplaza por una X y repite el proceso anterior, cuando la maquina reemplaza la cadena X,Y y Zs reconoce la cadena vacía y busca el estado de aceptación.

• Identifique en qué momento la máquina de Turing se detiene.

• Calcule la función δ

La función de transición es la siguiente, sea T = {q3}

ESTADO a b c X Y Zq0 q1 , X, R q5 , b, R q4 , Y, Rq1 q1 , a, R q1 , Y, Rq2 q2 , b, L q2 , Z, L q2 , Z, Rq3 q3 , a, L q3 , b, L q0 , X, R q3 , Y, L q3 , Z, Lq4 ---- ---- q1 , Y, R q1 , Z, Rq5Se han utilizado cinco estados, siendo q5 el único estado de aceptación.

• Grafíquela e identifique sus elementos.

L = {aibici: i ≥ 0} sobre Σ = {a,b,c}, L no es un LIC, no puede ser aceptado porningún autómata de pila.

Sea M = ({q0, q1, q2, q3, q4, q5}, {a,b,c}, a, b, c,X, Y,Z, B), δ, q0 ,B, F= {q5})

Page 10: Trabajo Colaborativo 3

La idea utilizada para el diseño de esta MT se puede describir así: la unidad de control cambia la primera a por X y se mueve a la derecha hasta encontrar la primera b, la cual se sobre-escribe por una Y . Luego se mueve hacia la derecha hasta encontrar la primera c, la cual se cambia por Z. El control retrocede entonces hacia la izquierda en busca de la primera X que encuentre en su camino; este retorno se hace en el estado q3. La maquina avanza luego hacia la derecha, hasta la primera a que quede en la cinta, y todo el proceso anterior se repite. Si la cadena de entrada tiene la forma requerida, todas las aes serán reemplazadas por Xs, las bes por Y s y las ces por Zs. Una vez terminada la transformación, el control se mueve hacia la derecha, en el estado q4, hasta encontrar la primera celda marcada con el símbolo blanco ¯b. La MT está diseñada de tal forma que si la cadena de entrada no tiene la forma requerida, el procesamiento terminara en un estado diferente del estado de aceptación q5. A continuación procesamos la cadena de entrada w = aabbcc Є L.

q0aabbcc ├ Xq1abbcc ├ Xaq1bbcc ├ XaY q2bcc ├ XaY bq2cc ├ XaY bq3bZc├* q3XaY bZc ├ Xq0aY bZc ├ XXq1Y bZc ├ XXY q1bZc├ XXY Y q2Zc ├ XXY Zq2c ├ XXY q3ZZ ├* Xq3XY ZZ├ XXq0Y Y ZZ ├ XXY q4Y ZZ ├* XXY Y ZZq4¯b├ XXY Y ZZ¯bq5¯b.

El lenguaje L = {Є, abc, aabbcc, aaabbbccc, ...} para el reconocimiento de la cadena Є se definió la transición δ(qo,B) = (q5,B,D).

Page 11: Trabajo Colaborativo 3

Comprobación de la aceptación de la cadena w = aabbcc:

4. Construir una MT que reconozca L = 01*+ = 10*

Para la Máquina M = (Q, Σ, ┌ , q0, T , B , δ)Q = { q0, q1} x {0,1,B} Estado inicial [q0, B] Estado final [q 1, B]

Page 12: Trabajo Colaborativo 3

La función de transición δ está dada por:

δ ([q0, B] , 0 ) = ([q1, 0], 0 , D)

δ ([q0, 0] , 1 ) = ([q1, 0], 1 , D) δ ([q0, 0] , B ) = ([q1, B], B , D) δ ([q0, B] , 1 ) = ([q1, 1], 1 , D) δ ([q1, 1] , 0 ) = ([q1, 1], 0 , D) δ ([q1, 1] , B ) = ([q1, B], B , D)

• Identifique una cadena válida.

p = [q0, B] q = [q1, 0] r = [q1, 1] s = [q1, B]

Page 13: Trabajo Colaborativo 3

5. Para la siguiente Máquina de Turing (MT):

Identifique que pasa cuando inicia con la cadena yy xyxx (demuéstrelo con el

recorrido de la misma)

Siempre llegara al estado de parada

Plásmela en el simulador (debe entregar el archivo generado por el simulador), Las imágenes capturadas van inmersas en el desarrollo del trabajo.

Con base en esa MT, proponga una nueva máquina que se comporte diferente

cuando inicia con la cadena yy xyxx

Page 14: Trabajo Colaborativo 3

6. Considere la máquina de Turing de la figura con el alfabeto {x,y,z} e indique que tipo de cadenas decide el lenguaje que acepta.

Dentro del RunTest y el recorrido de la cinta, Ubique en su cinta la secuencia

xy y que sea sustituida por zz. Identifique cuando se detiene la máquina cuando hace esta operación

La máquina se encuentra en el segundo estado si y sólo si el último símbolo leído es x. En el primer estado se encuentra cuando todavía no ha aparecido una x, o cuando después de una x apareció otro carácter distinto de y.

Plásmela en el simulador. Las imágenes capturadas van inmersas en el desarrollo del trabajo.

Ejecute el RunTest a la cadena aceptada (muéstrela en la captura de imagen para el trabajo

La máquina nunca puede terminar anormalmente. Porque la cabeza de lectura realiza, como máximo, un retroceso, y este retroceso ocurre solamente cuando se han leído previamente al menos dos símbolos (la secuencia xy). Sea cual sea la configuración inicial de la cinta, existe un único camino posible hacia el estado de parada, ya que la máquina es determinista.