Anda di halaman 1dari 25

TRABAJO COLABORATIVO 3

CURSO: AUTOMATAS Y LENGUAJES FORMALES

REALIZADO POR:

FERNEY RODRIGUEZ BARRAGAN COD 79893789 JAIME ADOLFO VALDERRAMA ALVAREZ COD 79793135 JAIVER MONTEJO

TUTOR: JAIME JOSE VALDES GRUPO: 301405_37

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD CEAD JOSE ACEVEDO Y GOMEZ INGENIERIA DE SISTEMAS BOGOT D.C. 2012

INTRODUCCIN En contra de lo que pudiera parecer, la ciencia de la computacin y las teoras sobre computabilidad no pertenecen a la disciplina que hoy conocemos como "Informtica", sino a las matemticas, que son, con mucho, anteriores a aquella. A principios del siglo XX, el campo de la matemtica terica estaba en plena efervescencia, gracias sobre todo a los trabajos de Hilbert y Gdel. En particular Hilbert haba planteado ciertas cuestiones que derivaron en las teoras de la computacin y la computabilidad, en concreto cual sera el significado de la computabilidad de un procedimiento. Para dar una definicin matemticamente precisa de lo que es un algoritmo, Turing ide un dispositivo imaginario al que denomin Mquina de computacin lgica LCM ("Logical Computing Machine"), pero que ha recibido en su honor el nombre de mquina de Turing. Aunque su propuesta es anterior a la aparicin de los computadores digitales, actualmente es el objeto central de estudio de los tericos de la computacin. Precisamente la definicin moderna de lo que es "Computable" se basa en este concepto, y del mismo modo que cuando se habla de inteligencia artificial es inevitable referirse al Test de Turing, cuando se habla de algoritmos y computacin es casi inevitable encontrar alguna referencia a la mquina de Turing. Por si esto fuera poco, los conceptos subyacentes en la idea han jugado un papel importante en las recientes teoras filosficas sobre la mente Mediante la elaboracin del presente informe, se pretende establecer un material de apoyo por el cual se logre asimilar los conceptos y fundamentos de la tercera unidad del mdulo del curso Autmatas y Lenguajes Formales, referente a la mquina de Turing y las Funciones Recursivas.

OBJETIVO GENERAL

Conocer la importancia y el poder computacional de la Maquina Turing en el contexto de la solucin de problemas computacionales de reconocimientos de Lenguajes.

OBJETIVOS ESPECIFICOS Introducir el modelo de computacin denominado Maquina Turing. Estudiar las Maquinas de Turing y sus propiedades bsicas. Conocer la importancia de la mquina de Turing como modelo de algoritmo de decisin. Disear mquinas de Turing para reconocer lenguajes de diversa complejidad y comprender que no todos los lenguajes son reconocibles por una mquina de Turing. Conocer las tcnicas de construccin de Autmatas finitos, autmatas de pila y Maquinas de Turing para resolver cuando una secuencia de smbolos forma parte de un lenguaje regular, libre del contexto o recursivamente enumerables respectivamente. Conocer cmo funcionan los lenguajes. Especificar lenguajes regulares y autmatas finitos para reconocimiento. Escribir programas de reconocimiento lxico. Especificar lenguajes independientes de contexto y autmatas de pila para reconocimiento. Construir mquinas de turng para reconocer lenguajes. Escribir gramticas de contexto libre. Escribir programas de anlisis sintctico

DESARROLLO DE LAS ACTIVIDADES EJERCICIOS A DESARROLLAR: 1. Dado el alfabeto ={x,y} de la siguiente Mquina de Tutring, determine:

El lenguaje que acepta

Recorra la mquina con al menos una cadena vlida.

Identifique una cadena que no sea vlida y justifquela porque.

Esta cadena no puede ser leda porque la maquina siempre va a la derecha y cuando llega al sexto punto no hay a la derecha un estado para llegar con z.

Identifique los componentes de la Mquina de Turing (descrbala). Q = {q0, q1, q2} = {x,y} T = {0, 1, X, Y} F = {q2} 2. Disee una MT que reconozca {0 n1n : n 1 }

Cambie un 0 por una x (explique qu pasa con la mquina). Cuando se cambia un 0 por una X la cabeza se cambia de posicin rumbo a la derecha, pasando por encima de los ceros y tambin de Y, hasta llegar al primer 1 Cambie un 1 por una y (explique qu pasa con la mquina).

Cuando se cambia un 1 por una Y la cabeza se cambia de posicin rumbo a la hacia la izquierda por encima de todos los Y y de todos los ceros hasta llegar a una X, se repite el proceso hasta que solo queden Xs y Ys Identifique en qu momento la mquina de Turing se detiene. La MT se detiene cuando la maquina cambio y paso por encima de todos las entradas Y, y ya todos los 1 se hayan cambiado y solo quedan Ys y Xs en la cinta porque quedo en un estado de aceptacin y la cadena es reconocida.

Calcule la funcin (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)

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

Donde esta representada mediante la siguiente tabla:

Grafquela e identifique sus elementos. Sea T = {q4} sea w = 1100 q00011 Xq111 q2X0Y 1 XXY q11 XXqoY Y XXY Y q3B X0q111 Xqo0Y 1 XXq2Y Y XXY q3Y XXY Y Bq4B Xq20Y 1 XXq1Y 1 Xq2XY Y

Identifique la funcin de transicin. M = ({q0; q1; q2; q3; q4} ; {0; 1} ; {0; 1; X; Y; B}; ; q0; B; {q4}) Funcin de transicin:
Estado q0 q1 q2 q3 q4 0 (q1,X,R) (q1,0,R) (q2,0,L) 1 (q2,Y,L) X (q0,X,R) Y (q3,Y,R) (q1,Y,R) (q2,Y,L) (q3,Y,R) (q4,B,R) B

Grafquela e identifique sus elementos. Q ={q0, q1, q2, q3, q4} = {0,1}

T = {0, 1, X, Y, B} F = {q4} Cada estado representa una declaracin o un grupo de declaraciones en un programa. Al estado q0 se ingresa inicialmente y es el estado previo a cada reemplazo del 0 ms a la izquierda por una X. el estado q1 se usa para buscar a la derecha saltando sobre los 0 y las Y hasta encontrar el 1 ms a la izquierda. Si M encuentra un 1 lo cambia por Y, y entra al estado q2 este estado busca a la izquierda una X y luego entra en el estado q0 cuando lo encuentra, luego se mueve hacia la derecha hasta el 0 ubicado ms hacia 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 hayan demasiados 0 o la entrada no est en 0 y 1. El estado q que tiene otro papel si despus del estado q2 se encuentra la X ms a la derecha, existe una Y inmediatamente a su derecha, entonces los 0 estn agotados. Desde q0 se explora Y, entra el estado q3 para explorar sobre las Y, y examinan que no hayan 1 restantes, si las Y estn seguidas de por B, se entra al estado q4 y la aceptacin ocurre en otro caso la cadena es rechazada Identifique la funcin de transicin. Mientras M realiza los pasos anteriores, la porcin de la cinta que ya ha sido recorrida por la cabeza de la cinta corresponder siempre a una secuencia de smbolos descrita mediante la expresin regular X*0*Y*1*. Es decir, habr algunos ceros que ya han sido sustituidos por X, seguidos de algunos ceros que todava no han sido sustituidos. Luego, se encontraran algunos unos ya remplazados por Y, seguidos de unos que aun no han sido remplazados. A continuacin, puede que haya algunos ceros o unos. El estado q0 es el estado inicial, y M entra de nuevo en q0 cada vez que vuelve a sealar al 0 que quede ms a la izquierda. Si M se encuentra en el estado q0 y la cabeza seala a un 0, la regla del extremo superior izquierdo de la figura anterior indica que M debe pasar por el estado q1, remplazar

el 0 por una X, y moverse hacia la derecha. Una vez en el estado q1, M sigue movindose hacia la derecha, pasando por encima de todos los ceros y todas las Y que encuentre, mientras permanece en el estado q1. Si M encuentra una X o una B, deja de operar. Sin embargo, si M encuentra un 1 cuando esta en el estado q1, sustituye dicho 1 por una Y , pasa al estado q2, y comienza a moverse hacia la izquierda. En el estado q2, M se mueve hacia la izquierda, pasando por encima de los ceros y las Y que encuentre, mientras permanece en el estado q2. Cuando M alcanza la X que se encuentra ms a la derecha, que determina cual es el extremo derecho del bloque de ceros que ya han sido sustituidos por X, M vuelve al estado q0 y se mueve hacia la derecha. Hay dos casos posibles: 1. Si M encuentra ahora un 0, repite el ciclo de sustituciones que acabamos de escribir. 2. Si M encuentra una Y, significa que ya ha cambiado todos los ceros por X. Si haba cambiado todos los unos por Y, entonces la entrada era de la forma 0n1n, y M aceptara. Por tanto, M pasa al estado q3 y comienza a moverse hacia la derecha, pasando por encima de las Y. Si el primer smbolo distinto de una Y que encuentra M es un espacio en blanco, entonces efectivamente haba en la entrada el mismo nmero de ceros que de unos, de forma que M pasa al estado q4 y acepta. Por otra parte, si M encontrara un 1, significara que hay demasiados unos, as que M dejara de operar sin aceptar. Si encontrara un 0, significara que la entrada era incorrecta, y M tambin se detendra. A continuacin emplearemos la maquina M anterior para comprobar si la cadena 0011 es aceptada por la mquina de Turing. Comenzamos con M en el estado q0, y sealando al primer 0, con lo cual la configuracin inicial es q0 0011, a continuacin se presenta la secuencia completa de movimientos de M.

Aqu se presenta otro ejemplo, en el que se examina que hace M con la entrada 0010, la cual es una cadena que no pertenece al lenguaje aceptado por la maquina:

El comportamiento de M con 0010 recuerda su comportamiento con 0011, hasta que alcanza la configuracin XXY 0q1B. Sin embargo, en el estado q1, M no puede realizar ningn movimiento si el smbolo de la entrada al que seala es B. Por tanto, M deja de operar sin aceptar esta entrada. La simbologa que se usa normalmente en las maquinas de Turing es similar a la utilizada en otros tipos de autmatas. Las letras minsculas iniciales del alfabeto se utilizan para los smbolos de entrada. Las letras maysculas, normalmente las de la zona final del alfabeto, se utiliza como smbolos de la cinta que pueden o no formar parte del conjunto de smbolos de entrada. Sin embargo, generalmente se usa B para representar el smbolo correspondiente al espacio en blanco. Las letras minsculas del final del alfabeto se utilizan para designar cadenas formadas por smbolos de entrada. Las letras griegas representan cadenas de smbolos de cinta. Letras como q, p, u otras prximas, representan estados.

3. Construya una MT que acepte el Lenguaje (represntela L = {aibici : i 0} sobre = {a,b,c}

Se cambia la a por una x movindose a la derecha. (Explique qu pasa con la mquina). Represente los movimientos en la tabla de transiciones para MT. Se cambia la a por una X y se mueve hacia la derecha pasando por encima de todas las a0s 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 mquina). Represente los movimientos en la tabla de transiciones para MT. Luego se mueve a la izquierda pasando por encima de bs, Y s, as, hasta encontrar la X la reemplaza por una X y repite el proceso anterior, cuando la maquina reemplaza la aceptacin. cadena X, Y y Zs reconoce la cadena vaca y busca El estado de

Identifique en qu momento la mquina de Turing se detiene. Formalmente una MT M = (Q,,,q0,T,B, ) calcula una funcin f : * * (parcial o total) Si para una entrada w se tiene:

El modelo de MT no utiliza estado de aceptacin, el estado qf es llamado estado final se usa para terminar el proceso de la entrada y producir la salida. Calcule la funcin Sea T = {q3} (q0,(a,B)) = (q0,(a,X),(D,D)) (q0,(b,B)) = (q1,(b,B),(N,D)) (q1,(b,X)) = (q1,(b,X),(D,I )) (q1,(c,B)) = (q2,(c,B),(N,D)) (q2,(c,X)) = (q2,(c,X),(D,D)) (q2,(B,B)) = (q3,(B,B),(D,D)) A continuacin procesamos la cadena de entrada w = aabbcc L.

La cadena de entrada w = aaabbcc, que no est en L, se procesa as:

Por otro lado, la cadena abbbcc, que tampoco est en L, se procesara as:

Grafquela e identifique sus elementos. Respuesta. Se mueve a la izquierda pasando por encima de b, Y, a, hasta encontrar la X, la reemplaza por una X y repite el proceso anterior, cuando la mquina reemplaza la cadena X, Y y Z reconoce la cadena vaca y busca el estado de aceptacin.

Par M= (Q, ,, q0, q3, B, )donde la funcin se define as: (q0, a) = (q0, a, D) (q0, b) = (q1, a, D) (q1, a) = (q1, a, D) (q1, B) = (q2, B, I) (q2, a) = (q3, B, D)

4. Construir una MT que reconozca L = 01* + = 10* Para la Mquina M = (Q, , , q0 , T , B , ) Q = { q0, q1} x {0,1,B} Estado inicial [q0 , B] Estado final [q1, B] La funcin de transicin 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 vlida. Una cadena aceptada seria 0111B

5. Para la siguiente Mquina de Turing (MT):

Identifique que pasa cuando inicia con la cadena yy xyxx (demustrelo con el recorrido de la misma) La mquina se para y no acepta la cadena.

Plsmela en el simulador (debe entregar el archivo generado por el simulador), Las imgenes capturadas van inmersas en el desarrollo del trabajo

.Con base en esa MT, preponga una nueva mquina que se comporte diferente cuando inicia con la cadena yyxyxx Los cambios a la M seria de una x por una y en el segundo punto a la derecha y colocar una x despus tambin a la derecha.

6. Considere la mquina 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 mquina cuando hace esta operacin La M se detiene cuando llega al segundo punto.

Plsmela en el simulador. Las imgenes capturadas van inmersas en el desarrollo del trabajo.

Ejecute el RunTest a la cadena aceptada (mustrela en la captura de imagen para el trabajo) En la mquina de turing no hay ninguna cadena aceptada por que van en un solo sentido pero al llegar 2 puntos antes la maquina se devuelve a la izquierda y para sin llegar al final.

CONCLUSIONES Una mquina de Turing es un modelo computacional que realiza una lectura/escritura de manera automtica sobre una entrada llamada cinta, generando una salida en esta misma. Mediante este modelo terico y el anlisis de la complejidad de los algoritmos, fue posible la categorizacin de problemas computacionales de acuerdo a su comportamiento. Las mquinas de Turing son el principio bsico de la computacin y sistemas actuales y sirven para realizar un proceso en un nmero finito de pasos representados por estados.

BIBLIOGRAFIA - Quiroga, E., Amaya, C. (2011). Modulo Autmatas y Lenguajes Formales. Bogot: Universidad Nacional Abierta y a Distancia UNAD. - Recuperado de http://lenguajesformalesyautomatas -tavata.blogspot.com/ - Recuperado de http://pisuerga.inf.ubu.es/cgosorio/THOTH/variantes.htm - Recuperado de http:\\www.laspaginasdelsaber.com\teoriadelacomputationaly\ - http://acme.math.cinvestav.mx/~basico/beamer/siete.pdf - http://dac.escet.urjc.es/~lrincon/uned/ta1/ta1-tema3.pdf - http://www.inf.ucv.cl/~rsoto/cursos/ICI445/Cap2_ICI445.pdf