actividad de la unad

33
AUTOMATAS Y LENGUAJES FORMALES TRABAJO COLABORATIVO DOS LENGUAJES INDEPENDIENTES DEL CONTEXTO PRESENTADO A: INGENIERO MSC CARLOS ALBERTO AMAYA TARAZONA UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD CEAD DUITAMA – BOYACA NOVIEMBRE 2012

Upload: ovallepa

Post on 10-Sep-2015

36 views

Category:

Documents


1 download

DESCRIPTION

actividad del momento 2 de la Unad

TRANSCRIPT

AUTOMATAS Y LENGUAJES FORMALES

TRABAJO COLABORATIVO DOSLENGUAJES INDEPENDIENTES DEL CONTEXTO

PRESENTADO A:INGENIERO MSCCARLOS ALBERTO AMAYA TARAZONA

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIAUNAD CEAD DUITAMA BOYACANOVIEMBRE 2012

INTRODUCCION

El presente trabajo corresponde al desarrollo del trabajo colaborativo nmero dos del curso de Autmatas y lenguajes formales, en el aplicaremos los contenidos temticos que se han adquirido del estudio de la unidad dos del curso Lenguajes independientes del contexto. Cuando necesitamos validar campos de texto en programacin como por ejemplo nombres, nmeros de cedula, fechas de nacimiento entre otros muchos campos ms y para realizarlo de una manera sencilla y precisa podremos emplear los lenguajes regulares. Existen diversidad de mtodos para validar esta informacin contenida entre estos para ello se encuentran los Autmatas de Pila que contienen las expresiones regulares, que tienen parecido a una especie de lenguaje que se puede usar para buscar, remplazar y sobreponer ciertos patrones en un texto, trabajable casi de manera igual que los Autmatas Finitos y no Finitos. Un autmata con pila o autmata de pila o autmata a pila o autmata apilador es un modelo matemtico de un sistema que recibe una cadena constituida por smbolos de un alfabeto y determina si esa cadena pertenece al lenguaje que el autmata reconoce. El lenguaje que reconoce un autmata a pila pertenece al grupo de los lenguajes de contexto libre en la clasificacin de la Jerarqua de Chomsky.

OBJETIVOS

GENERALReconocer los lenguajes independientes del contexto y sus diversas aplicaciones.

OBJETIVOS ESPECIFICOS

Analizar la estructura de las gramticas independientes del contexto. Estudiar el concepto de los autmatas de pila, su funcionamiento y los lenguajes utilizados. Distinguir los lenguajes independientes del contexto existentes y sus propiedades, as como los algoritmos de decisin. Generalizar los conceptos de autmatas finitos y gramticas regulares. Reconocer el potencial de procesamiento del lenguaje del autmata con los Autmatas de pila.

1. Calcular el autmata mnimo correspondiente al siguiente autmata finito determinista.

ACTIVIDADES ANTES DE MINIMIZAR.1. Identifique los componentes del autmata (que tipo de tupla es).Autmata Finito No Determinista por lo cual su tupla es:5-tuplaA=(Q, ,q0, ,A) Qes un conjunto deestados; es unalfabeto; : Q x Qes unafuncin de transicin para un AFD; q0 Qes el estado inicial; A C Qes un conjunto de estados finales o de aceptacin.A= ({q0, q2, q3, q4, q5, q6, q7}, {1, 0}, , {q0, q0, q2, q3, q4}):=(q0,0) = {q1}:=(q0,1) = {q6}:=(q1,0) = {q2}:=(q1,1) = {q3}:=(q2,0) = {q1}:=(q2,1) = {q5}:=(q3,0) = {q1}:=(q3,1) = {q4}:=(q4,0) = {q7}:=(q4,1) = {q4}:=(q5,0) = {q7}:=(q5,1) = {q3}:=(q6,0) = {q7}:=(q6,1) = {q3}:=(q7,0) = {q7}:=(q7,1) = {q3}2. Identifique la tabla de transicin

01

# q0q1q6

q1q2q3

# q2q1q5

# q3q1q4

# q4q7q4

# q5q7q3

q6q7q3

q7q7q3

Cada fila la corresponde a un estado q QEl estado inicial se precede del smbolo Cada estado final se precede del smbolo #Cada columna corresponde a un smbolo de entrada x Se debe identificar la funcin

3. Identifique el lenguaje que reconoce y las posibles cadenas.L= {A {1, 0} | A= 1i 0i ,i >=1}Posibles cadenas1100001011101010010101011111011100000001011111011111011111111

4. Encuentre la expresin regular vlida. (Compruebe una cadena vlida de esa expresin regular en el simulador). Identifique sus componentes.

La expresin regular vlida para el autmata es:((0+1(0+111*0)*10)(10+111*0(0+111*0)*10)*0)*(+1(0+111*0)*(1+111*)+(0+1(0+111*0)*10)(10+111*0(0+111*0)*10)*(1+111*+111*0(0+111*0)*(1+111*)))Comprobacin en simulador:

Comprobacin de cadenas validas en el simulador

El propsito de las ER (que no son ms que simples frmulas) es representar cada una de ellas un lenguaje.5. Encuentre su gramtica que sea vlida para la funcin de transicin (describa sus componentes y como se escriben matemticamente). Justifquela si la convierte a la Izquierda o a la derecha. Plsmela en el simulador y recrela. (Debe quedar documentado en el texto el paso a paso que realizan en el simulador)La gramtica vlida para la funcin de transicin es:IzquierdaDerecha

S

S0A

F1C

C1D

G1C

A0B

B0A

E0G

B

S1F

C0A

C

A1C

E1C

D1D

G0G

D0G

F0G

D

B1E

La conversin se hace a la Izquierda porque es lineal a la derecha ya que el mismo lenguaje es generado por la siguiente gramtica lnea por la derecha.Gramatical en JflapAbrimos el Simulador y seleccionamos gramtica:

Luego ingresamos la gramtica en el simulador:

Ahora comprobamos si las cadenas que son vlidas con respecto a la gramtica del autmata para ello nos vamos a Input y luego a multiple brute forc parse e ingresamos las cadenas que deseamos validar:

El simulador nos indica que cadenas fueron aceptadas y cuales rechazadas.Las gramticas son mecanismos generadores de lenguajes, es decir, nos dicen cmo podemos obtener o construir palabras de un determinado lenguaje.6. Realice el rbol de Derivacin de esa gramtica.El rbol de derivacin es demasiado grande para ser plasmado grficamente.Un rbol ordenado y etiquetado es un rbol de derivacin para una gramtica libre de contexto7. Identifique si ese rbol gramtica es ambigua o no y plasme las razones de su afirmacin.La gramtica del rbol no es ambigua se trata de una gramtica univoca ya que es una gramtica libre de contexto que tiene asociado un solo rbol de derivacin para toda cadena del lenguaje. Ejemplo para la cadena (101) el nico rbol de la gramtica que la puede representar es el siguiente:

8. Si el rbol de transicin es demasiado grande, a su criterio seleccione una regla en la que se detenga por cualquier rama (izquierda o derecha) y plsmelo hasta ah.La siguiente es una regla para detener el rbol de transicin por la derecha:(S1F)(F1C)(C0A)(A1C)(C0A)(A1C)(C )ReglaDerivacinrbol

S 1FF 1CC 0AA 1CC 0AA 1CC

S1F11C110A1101C11010A110101C110101

ACTIVIDADES PARA EL EJERCICIO A MINIMIZAR O YA MINIMIZADO:9. Explicar el proceso de Minimizacin (que estados se suprimen y porque).Paso 1: Se crean dos subconjuntos, uno formado por los estados no finales y el otro por los estados finales.No finales Finales

{q1, q5, q6, q7}{q0, q2, q3, q4}

Paso 2: Aplicar a los dos subconjuntos formados en el paso anterior, las transiciones del AFD, en este caso aplicaremos para los subconjuntos la transicin 0.No finales Finales

{q1, q5, q6, q7}{q0, q2, q3, q4}

0 q2, q7, q7, q7 q1, q1, q1, q7

Paso 3: Se separan del subconjunto los estados de un subconjunto que al aplicarle la transicin se comporta de manera diferente a los dems estados del subconjunto. Esto es, el que se desplaza hacia el estado final en nuestro caso es q1 para los estados no finales y q4 para los estados finales.No finales Finales

{q1, q5, q6, q7} {q1}{q0, q2, q3} {q4}

Repetimos el paso dosPaso 2: Aplicar a los dos subconjuntos formados en el paso anterior, las transiciones del AFD, en este caso aplicaremos para los subconjuntos la transicin 1.No finales Finales

{q5, q6, q7} {q1}{q0, q2, q3} {q4}

1 q3, q3, q3, q1 q6, q5, q4 q4

Repetimos el paso tresPaso 3: Se separan del subconjunto los estados de un subconjunto que al aplicarle la transicin se comporta de manera diferente a los dems estados del subconjunto. Esto es, el que se desplaza hacia el estado final en nuestro caso es q0 para los estados no finales y q3 para los estados finales.

No finales Finales

{q5, q6, q7} {q1}{q0, q2} {q3} {q4}

Repetimos el paso dosPaso 2: Aplicar a los dos subconjuntos formados en el paso anterior, las transiciones del AFD, en este caso aplicaremos para los subconjuntos la transicin 1 y 0.No finales Finales

{q5, q6, q7} {q1}{q0, q2} {q3} {q4}

1 q3, q3, q3, q3 q6, q5 q4 q4

0 q7, q7, q7 q2 q1, q1 q1 q7

Como no se reflejan cambios al aplicar este paso hemos llegado al final de los procedimientos a seguir por lo tanto tenemos nuestro autmata al mnimo.Paso 4: Elaboramos la tabla de transicin del autmata minimizado, en base a los subconjuntos formados. Para los subconjuntos que tengan ms de un estado se debe elegir un estado que sea representante del subconjunto y remplazarlo en la tabla de transicin por su respectivo representante esto con el fin de eliminar estados repetidos.Autmata MinimizadoEliminacin EstadosNuevo Autmata

Estados Finales 1 0

q0 q6 q1q2 q5 q1

q3 q4 q1

q4 q4 q7 1 0

q0 q5 q1q0 q5 q1

q3 q4 q1

q4 q4 q5 1 0

q0 q5 q1

q3 q4 q1

q4 q4 q5

Estados No finales 1 0

q5 q5 q7q6 q3 q7q7 q3 q7

q1 q3 q2 1 0

q5 q3 q5q5 q3 q5q5 q3 q5

q1 q3 q0 1 0

q5 q3 q5

q1 q3 q0

Paso 5: En este paso se elabora la tabla de transicin y se grafica el nuevo autmata minimizado.Para realizar la tabla de transicin de nuestro autmata minimizado se ordenaran los estados y se asignan nuevos estados ordenados en base a las transiciones del autmata minimizado.Equivalencia ordenada de estadosNueva tabla de estados

10

q0 = q0q3 = q1q4 = q2q5 = q3q1= q4 q0q1q2q3q4q3q2q2q1q1q4q4q3q3q0

10. Que transiciones se reemplazan o resultan equivalentes.Las transiciones equivalentes son: 1 0q0q6q1q2q5q1q5q5q7q6q3q7q7q3q7Por lo tanto podemos eliminar por ser equivalentes::=(q2,1) = {q5}:=(q2,0) = {q1}:=(q6,1) = {q3}:=(q6,0) = {q7}:=(q7,1) = {q3}:=(q7,0) = {q7}11. Escribir la funcin de transicin del nuevo autmata.Funcin de transicin= Q x Q:=(q0,0) = {q4}:=(q0,1) = {q3}:=(q1,0) = {q4}:=(q1,1) = {q2}:=(q2,0) = {q3}:=(q2,1) = {q2}:=(q3,0) = {q3}:=(q3,1) = {q1}:=(q4,0) = {q0}:=(q4,1) = {q1}12. Identificar la expresin regular (explicarla en la lectura matemtica que se le debe hacer).La expresin regular para el autmata minimizado es:(00+ (10*1+01) (01+11*00*1)*00)*(+(10*1+01)(01+11*00*1)*(+11*))13. Compruebe una cadena vlida para esa expresin regular.

14. Identificar el lenguaje que reconoce y las posibles cadenas.L= {A {1, 0} | A= 1i 0i ,i >=1}Posibles cadenas1100001011101010010101011

15. Identificar su gramtica. Demustrela para una cadena vlida del autmata.Gramtica del autmataDemostracin de una cadena valida

S 0DS 1CS D 0SA 0DD 1AB 1BC 0CA 1BB 0CB A C 1A

16. Expresarlo o graficarlo con su respectivo diagrama de Moore.

17. Identificar sus tablas de Transicin (plasmarlas)10

# q0 # q1 # q2 q3 q4q3q2q2q1q1q4q4q3q3q0

18. Plasmar los pasos de minimizacin en el simulador y capturar los procesos en imgenes para ser documentadas en el texto.Primer paso: Construir el autmata en el simulador

Segundo Paso: Seleccionar en el men convert luego vamos a la opcin miniminize DFA

Tercer Paso: Seleccionamos los estados no finales y hacemos click en Complete Subtree, ahora hacemos click en los estados finales y luego hacemos clic en Complete Subtree.

Cuarto Paso: Damos click en Finish y luego en el botn completar para realizar las transiciones.

Quinto paso: Damos click en el botn Done? el programa nos enva una ventana de mensaje en la cual nos dice que la minimizacin del autmata est hecha y que se abrir una nueva ventana con el autmata minimizado, damos aceptar y listo ya tenemos nuestro autmata minimizado, ahora solo debemos ordenarlo para que se pueda visualizar mejor.

2. Construya el autmata de Pila CorrespondienteDisee un AP que acepte el Lenguaje x n+1 yn para cualquier nmero natural n.L= { x n+1 yn }Las posibles cadenas que acepta el autmata pueden ser:(xxy) (xxyxxy) (xxyxxyxxy)Un autmata con pila puede ser descrito como una sptupla M= (Q, A, B, , q0, Z0 F)M= ({q0, q1, q2, q3}, {x, y},{A}, , q0, x, {q3}

19. Grafquelo en JFLAP y realice el Traceback para las transiciones. (Las columnas para un AP son: El estado en que se encuentra el autmata, lo que falta por leer de la palabra de entrada, y el contenido de la pila).

Graficado en JFLAP

Traceback para las Transiciones

20. Plasme las imgenes y capturas en el documento. (Documente el proceso)Traza para la cadena (xxy)Para comprobar la validez de esta cadena hacemos click en Input luego nos vamos a step with closure, nos aparece otra ventana all digitaremos la cadena que deseamos comprobar y le diremos que hasta el estado final, Seguido daremos click en step para recorrer el autmata por cada uno de sus estados hasta el estado final.

Si hacemos click en Trace se abre otra ventana en la cual nos muestra la traza de ejecucin para esa cadena.

21. Muestre el diagrama correspondiente de estados.Diagrama de estadosPara los autmatas con pila se pueden hacer diagramas de estados, similares a los ya conocidos, pero resultan de poca utilidad prctica ya que el procesamiento completo de una cadena de entrada depende del contenido de la pila, el cual puede cambiar en cada paso computacional.ESTADOPOR LEERPILA

qqqqxxyxxyxyyxxxxxy

22. Identifique los contenidos de la pila y el estado de parada.3. Construccin de AutmatasPara los siguientes dos autmatas:

23. Identifique la tupla que los define y justifique en que difieren.

Una tupla est definida por:M=(S,,T,s A)

AUTOMATA AAUTOMATA B

TUPLAM=({q6,q2}, {x,y},, q6, {q2})

:=(q6,x) = {q6}:=(q6,y) = {q2}:=(q2,x) = {q2}:=(q2,y) = {q2, q6}M=({q5,q0, q4}, {x,y},, q5, {q0,q4})

:=(q5,x) = {q5}:=(q5,y) = {q0}:=(q0,x) = {q0}:=(q0,y) = {q4}:=(q4,x) = {q4}:=(q4,y) = {q4}

El autmata A difiere del autmata B principalmente en el nmero de estados ya que para A el nmero de estados es dos mientras que para B es de tres estados, De igual forma para el autmata A se tiene que posee un solo estado de aceptacin mientras que el autmata B posee dos estados de aceptacin, Partiendo de estos hechos notaremos que la funcin de transicin es diferente.

24. Que lenguaje reconoce cada Autmata y justifique si es el mismo o no.

AUTOMATA AAUTOMATA B

LenguajeL= {A {x, y} | A= xn yn ,n >=1}

L= {A {x, y} | A= xn yn ,n >=1}

El lenguaje que reconocen los dos autmatas es el mismo ya que ambos lenguajes generan cadenas validas en base a las transiciones del autmata, el lenguaje nos dice que A pertenece a (x) y (y) tal que A es igual a (xn) y (yn) donde n es mayor o igual a uno.25. Identifique si son AFD o AFND. (Tenga en cuenta todas las variables a tener en cuenta para calificar un autmata o para clasificarlo como tal)Tanto el autmata A como el autmata B son autmatas finitos no deterministas AFND. Porque nuestro autmata A en el estado q2 salen dos transiciones con el mismo smbolo e independientemente de esta regla tambin tiene ms de una transicin en sus estados. Igual caso para el autmata B este posee ms de una transicin en uno o mas estados.

26. Plsmelo en los simuladores y genere la ER de cada uno y evalelas (comprelas).Autmata A

Expresin regular

(x*x(y+x)*y)*x*x(y+x)*Autmata B

Expresin regular

ER= yx*+yx*y(x+y)4. GramticasSean L1 el lenguaje generado por la gramtica G1 y L2 el lenguaje generado por la gramtica G2S xAByA xzS | BB yz | S xAyzy | xAyA xzS | yz |

Gramtica G1Gramtica G2

27. Obtener el autmata Finito para cada gramtica (plasme los diagramas de Moore)Gramtica G1Autmata Finito Diagrama de Moore

Gramtica G2Autmata Finito Diagrama de Moore

28. Justifique si las gramticas son idnticas o no he identifique el Lenguaje que generan.

Las gramticas no son idnticas pero generan el mismo lenguaje. Para verlo, basta sustituir el no-terminal B por las secuencias que puede generar. En los diagramas de moore podemos ver que son idnticos ya que no se alteran los estados de aceptacin y la gramtica se mantiene.29. Identifique la ER para cada Autmata generado.La expresin regular para el autmata de la gramtica G1 es: xy (zy+yz*) yLa expresin regular para el autmata de la gramtica G2 es: xy (yz*) y30. Identifique y demuestre la palabra generable comn tanto por la Gramtica 1 como por la Gramtica 2. (Use el simulador para verificarla).

La Gramtica 1 y la Gramtica 2 generan dos palabras comunes del lenguaje que son:xyzyxyzyzyUsaremos el simulador para verificar estas palabras: Verificacin palabra xyzy para la Gramtica 1

Verificacin palabra xyzy para la Gramtica 2

Verificacin palabra xyzyzy para la Gramtica 1

Verificacin palabra xyzyzy para la Gramtica 1

BIBLIOGRAFIAMODULO AUTMATAS Y LENGUAJES FORMALES Edgar Alberto Quiroga Rojas Actualizacin: Carlos Alberto Amaya Tarazona

Gramticas formales http://gramaticasformales.wordpress.com/Grammatical regularhttp://es.wikipedia.org/wiki/Gram%C3%A1tica_regularGramaticas libres de contexthttp://luzem.dyndns.org/2010/05/05/practica-8-gramaticas-libres-de-contexto-en-jflap/Gramatica libre de contexto a pilahttp://luzem.dyndns.org/tag/gramatica-libre-de-contexto-a-automata-de-pila/

lengujaes libres de Contextohttp://teodelacomp.blogspot.com/2011/03/automatas-pushdown-presentan-ing.html

Minimizacion de un autmatahttp://www.youtube.com/watch?v=jd4cQ9yJj2c

Automata de pila http://www2.dis.ulpgc.es/~mluengo/automatas/teoria/tema4.pdfGramaticas y autmatasDe pila http://informatica.utem.cl/~rcorbin/files/talf/APUNTES_Y_GUIAS/Capitulo3.pdf