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

33 col2 301405

Embed Size (px)

DESCRIPTION

Colaborativo Dos Autómatas y lenjuages Formales

Citation preview

Page 1: 33 col2 301405

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

Page 2: 33 col2 301405

INTRODUCCION

El presente trabajo corresponde al desarrollo del trabajo colaborativo número dos del curso de

Autómatas y lenguajes formales, en el aplicaremos los contenidos temáticos que se han adquirido del

estudio de la unidad dos del curso Lenguajes independientes del contexto.

Cuando necesitamos validar campos de texto en programación como por ejemplo nombres, números

de cedula, fechas de nacimiento entre otros muchos campos más y para realizarlo de una manera

sencilla y precisa podremos emplear los lenguajes regulares. Existen diversidad de métodos para

validar esta información contenida entre estos para ello se encuentran los Autómatas 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 Autómatas Finitos y no Finitos. Un autómata con pila o autómata de pila o autómata a pila o

autómata apilador es un modelo matemático de un sistema que recibe una cadena constituida por

símbolos de un alfabeto y determina si esa cadena pertenece al lenguaje que el autómata reconoce. El

lenguaje que reconoce un autómata a pila pertenece al grupo de los lenguajes de contexto libre en la

clasificación de la Jerarquía de Chomsky.

Page 3: 33 col2 301405

OBJETIVOS

GENERAL

Reconocer los lenguajes independientes del contexto y sus diversas aplicaciones.

OBJETIVOS ESPECIFICOS

Analizar la estructura de las gramáticas independientes del contexto.

Estudiar el concepto de los autómatas de pila, su funcionamiento y los lenguajes

utilizados.

Distinguir los lenguajes independientes del contexto existentes y sus propiedades, así

como los algoritmos de decisión.

Generalizar los conceptos de autómatas finitos y gramáticas regulares.

Reconocer el potencial de procesamiento del lenguaje del autómata con los

Autómatas de pila.

Page 4: 33 col2 301405

1. Calcular el autómata mínimo correspondiente al siguiente autómata finito determinista.

ACTIVIDADES ANTES DE MINIMIZAR.

1. Identifique los componentes del autómata (que tipo de tupla es).

Autómata Finito No Determinista por lo cual su tupla es:

5-tupla A= (Q, Σ, q0, δ, A)

Q es un conjunto de estados;

Σ es un alfabeto;

δ: Q x Σ → Q es una función de transición para un AFD;

q0 ϵ Q es el estado inicial;

A C Q es un conjunto de estados finales o de aceptación.

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}

Page 5: 33 col2 301405

2. Identifique la tabla de transición

0 1 # q0 q1 q6

q1 q2 q3# q2 q1 q5# q3 q1 q4# q4 q7 q4# q5 q7 q3 q6 q7 q3 q7 q7 q3

Cada fila la corresponde a un estado q ∈ Q

El estado inicial se precede del símbolo →

Cada estado final se precede del símbolo #

Cada columna corresponde a un símbolo de entrada x ∈ Σ

Se debe identificar la función δ

3. Identifique el lenguaje que reconoce y las posibles cadenas.

L= {A ϵ {1, 0} | A= 1i 0i ,i >=1}

Posibles cadenas

110000101

110101

00101

01

011

11101

110000000101

111101

1111011111111

Page 6: 33 col2 301405

4. Encuentre la expresión regular válida. (Compruebe una cadena válida de esa expresión regular en el simulador). Identifique sus componentes.

La expresión regular válida para el autómata 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*)))

Comprobación en simulador:

Comprobación de cadenas validas en el simulador

El propósito de las ER (que no son más que simples fórmulas) es representar cada una de ellas un lenguaje.

Page 7: 33 col2 301405

5. Encuentre su gramática que sea válida para la función de transición (describa sus componentes y como se escriben matemáticamente). Justifíquela si la convierte a la Izquierda o a la derecha. Plásmela en el simulador y recréela. (Debe quedar documentado en el texto el paso a paso que realizan en el simulador)

La gramática válida para la función de transición es:

Izquierda DerechaS → λS → 0AF → 1CC → 1DG → 1CA → 0BB → 0AE → 0GB → λS → 1FC → 0AC → λA → 1CE → 1CD → 1DG → 0GD → 0GF → 0GD → λB → 1E

La conversión se hace a la Izquierda porque es lineal a la derecha ya que el mismo lenguaje es generado por la siguiente gramática línea por la derecha.

Gramatical en Jflap

Abrimos el Simulador y seleccionamos gramática:

Page 8: 33 col2 301405

Luego ingresamos la gramática en el simulador:

Ahora comprobamos si las cadenas que son válidas con respecto a la gramática del autómata 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.

Page 9: 33 col2 301405

Las gramáticas son mecanismos generadores de lenguajes, es decir, nos dicen cómo podemos obtener o construir palabras de un determinado lenguaje.

6. Realice el árbol de Derivación de esa gramática.

El árbol de derivación es demasiado grande para ser plasmado gráficamente.

Un árbol ordenado y etiquetado es un árbol de derivación para una gramática libre de contexto

7. Identifique si ese árbol ó gramática es ambigua o no y plasme las razones de su afirmación.

La gramática del árbol no es ambigua se trata de una gramática univoca ya que es una gramática libre de contexto que tiene asociado un solo árbol de derivación para toda cadena del lenguaje.

Ejemplo para la cadena (101) el único árbol de la gramática que la puede representar es el siguiente:

8. Si el árbol de transición es demasiado grande, a su criterio seleccione una regla en la que se detenga por cualquier rama (izquierda o derecha) y plásmelo hasta ahí.

La siguiente es una regla para detener el árbol de transición por la derecha:

(S→1F)(F→1C)(C→0A)(A→1C)(C→0A)(A→1C)(C→ λ)

Regla Derivación Árbol

S → 1FF → 1CC → 0AA → 1CC → 0AA → 1CC → λ

S1F11C110A1101C11010A110101C110101

Page 10: 33 col2 301405

ACTIVIDADES PARA EL EJERCICIO A MINIMIZAR O YA MINIMIZADO:

9. Explicar el proceso de Minimización (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 transición “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 transición se comporta de manera diferente a los demás 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 dos

Paso 2: Aplicar a los dos subconjuntos formados en el paso anterior, las transiciones del AFD, en este caso aplicaremos para los subconjuntos la transición “1”.

No finales Finales{q5, q6, q7} {q1} {q0, q2, q3} {q4}

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

Repetimos el paso tres

Paso 3: Se separan del subconjunto los estados de un subconjunto que al aplicarle la transición se comporta de manera diferente a los demás 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}

Page 11: 33 col2 301405

Repetimos el paso dos

Paso 2: Aplicar a los dos subconjuntos formados en el paso anterior, las transiciones del AFD, en este caso aplicaremos para los subconjuntos la transición “1” y “0”.

No finales Finales{q5, q6, q7} {q1} {q0, q2} {q3} {q4}

1 q3, q3, q3, q3 q6, q5 q4 q40 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 autómata al mínimo.

Paso 4: Elaboramos la tabla de transición del autómata minimizado, en base a los subconjuntos formados. Para los subconjuntos que tengan más de un estado se debe elegir un estado que sea representante del subconjunto y remplazarlo en la tabla de transición por su respectivo representante esto con el fin de eliminar estados repetidos.

Autómata Minimizado Eliminación Estados Nuevo AutómataEstados 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 transición y se grafica el nuevo autómata minimizado.

Para realizar la tabla de transición de nuestro autómata minimizado se ordenaran los estados y se asignan nuevos estados ordenados en base a las transiciones del autómata minimizado.

Equivalencia ordenada de estados Nueva tabla de estados1 0

q0 = q0q3 = q1q4 = q2q5 = q3q1= q4

q0q1q2q3q4

q3q2q2q1q1

q4q4q3q3q0

Page 12: 33 col2 301405

10. Que transiciones se reemplazan o resultan equivalentes.

Las transiciones equivalentes son:

1 0

q0 q6 q1

q2 q5 q1

q5 q5 q7

q6 q3 q7

q7 q3 q7

Por 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 función de transición del nuevo autómata.

Función de transición

δ= 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 expresión regular (explicarla en la lectura matemática que se le debe hacer).

La expresión regular para el autómata minimizado es:

(00+ (10*1+01) (01+11*00*1)*00)*(λ+(10*1+01)(01+11*00*1)*(λ+11*))

13. Compruebe una cadena válida para esa expresión regular.

Page 13: 33 col2 301405

14. Identificar el lenguaje que reconoce y las posibles cadenas.

L= {A ϵ {1, 0} | A= 1i 0i ,i >=1}

Posibles cadenas

1100001011101010010101011

15. Identificar su gramática. Demuéstrela para una cadena válida del autómata.

Gramática del autómata Demostración de una cadena valida S → 0D

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

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

Page 14: 33 col2 301405

17. Identificar sus tablas de Transición (plasmarlas)

1 0 # q0 # q1 # q2 q3 q4

q3q2q2q1q1

q4q4q3q3q0

18. Plasmar los pasos de minimización en el simulador y capturar los procesos en imágenes para ser documentadas en el texto.

Primer paso: Construir el autómata en el simulador

Segundo Paso: Seleccionar en el menú convert luego vamos a la opción miniminize DFA

Page 15: 33 col2 301405

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 botón completar para realizar las transiciones.

Quinto paso: Damos click en el botón Done? el programa nos envía una ventana de mensaje en la cual nos dice que la minimización del autómata está hecha y que se abrirá una nueva ventana con el autómata minimizado, damos aceptar y listo ya tenemos nuestro autómata minimizado, ahora solo debemos ordenarlo para que se pueda visualizar mejor.

Page 16: 33 col2 301405

2. Construya el autómata de Pila Correspondiente

Diseñe un AP que acepte el Lenguaje x n+1 yn para cualquier número natural n.

L= { x n+1 yn }

Las posibles cadenas que acepta el autómata pueden ser:

(xxy) (xxyxxy) (xxyxxyxxy)

Un autómata con pila puede ser descrito como una séptupla M= (Q, A, B, δ, q0, Z0 F)

M= ({q0, q1, q2, q3}, {x, y},{A}, δ, q0, x, {q3}

19. Grafíquelo en JFLAP y realice el “Traceback” para las transiciones. (Las columnas para un AP son: El estado en que se encuentra el autómata, lo que falta por leer de la palabra de entrada, y el contenido de la pila).

Graficado en JFLAP

Page 17: 33 col2 301405

Traceback para las Transiciones

20. Plasme las imágenes 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 autómata por cada uno de sus estados hasta el estado final.

Page 18: 33 col2 301405

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

21. Muestre el diagrama correspondiente de estados.

Diagrama de estados

Para los autómatas con pila se pueden hacer diagramas de estados, similares a los ya conocidos, pero resultan de poca utilidad práctica ya que el procesamiento completo de una cadena de entrada depende del contenido de la pila, el cual puede cambiar en cada paso computacional.

ESTADO POR LEER PILAqqqq

xxyxxyxyy

xxxxxy

22. Identifique los contenidos de la pila y el estado de parada.

3. Construcción de Autómatas

Para los siguientes dos autómatas:

Page 19: 33 col2 301405

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

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

AUTOMATA A AUTOMATA B

TUPLA M=({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 autómata A difiere del autómata B principalmente en el número de estados ya que para A el número de estados es dos mientras que para B es de tres estados, De igual forma para el autómata A se tiene que posee un solo estado de aceptación mientras que el autómata B posee dos estados de aceptación, Partiendo de estos hechos notaremos que la función de transición es diferente.

24. Que lenguaje reconoce cada Autómata y justifique si es el mismo o no.

AUTOMATA A AUTOMATA B

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

El lenguaje que reconocen los dos autómatas es el mismo ya que ambos lenguajes generan cadenas validas en base a las transiciones del autómata, 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 autómata o para clasificarlo como tal)

Tanto el autómata A como el autómata B son autómatas finitos no deterministas AFND. Porque nuestro autómata A en el estado q2 salen dos transiciones con el mismo símbolo e independientemente de esta regla también tiene más de una transición en sus estados. Igual caso para el autómata B este posee más de una transición en uno o mas estados.

Page 20: 33 col2 301405

26. Plásmelo en los simuladores y genere la ER de cada uno y evalúelas (compárelas).

Autómata A

Expresión regular

(x*x(y+x)*y)*x*x(y+x)*

Autómata B

Page 21: 33 col2 301405

Expresión regular

ER= yx*+yx*y(x+y)

4. Gramáticas

Sean L1 el lenguaje generado por la gramática G1 y L2 el lenguaje generado por la gramática G2

S → xAByA → xzS | BB → yz | λ

S → xAyzy | xAyA → xzS | yz | λ

Gramática G1 Gramática G2

27. Obtener el autómata Finito para cada gramática (plasme los diagramas de Moore)

Gramática G1

Autómata Finito Diagrama de Moore

Page 22: 33 col2 301405

Gramática G2

Autómata Finito Diagrama de Moore

28. Justifique si las gramáticas son idénticas o no he identifique el Lenguaje que generan.

Las gramáticas no son idénticas 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 idénticos ya que no se alteran los estados de aceptación y la gramática se mantiene.

29. Identifique la ER para cada Autómata generado.

La expresión regular para el autómata de la gramática G1 es: xy (zy+yz*) y

La expresión regular para el autómata de la gramática G2 es: xy (yz*) y

30. Identifique y demuestre la palabra generable común tanto por la Gramática 1 como por la Gramática 2. (Use el simulador para verificarla).

La Gramática 1 y la Gramática 2 generan dos palabras comunes del lenguaje que son:

xyzy

xyzyzy

Page 23: 33 col2 301405

Usaremos el simulador para verificar estas palabras:

Verificación palabra xyzy para la Gramática 1

Verificación palabra xyzy para la Gramática 2

Page 24: 33 col2 301405

Verificación palabra xyzyzy para la Gramática 1

Verificación palabra xyzyzy para la Gramática 1

Page 25: 33 col2 301405

BIBLIOGRAFIA

MODULO

AUTÓMATAS Y LENGUAJES FORMALES

Edgar Alberto Quiroga Rojas Actualización: Carlos Alberto Amaya Tarazona

Gramáticas formales http://gramaticasformales.wordpress.com/

Grammatical regular http://es.wikipedia.org/wiki/Gram%C3%A1tica_regular

Gramaticas libres de context http://luzem.dyndns.org/2010/05/05/practica-8-gramaticas-libres-de-contexto-en-jflap/

Gramatica libre de contexto a pila http://luzem.dyndns.org/tag/gramatica-libre-de-contexto-a-

automata-de-pila/

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

Minimizacion de un autómata http://www.youtube.com/watch?v=jd4cQ9yJj2c

Automata de pila http://www2.dis.ulpgc.es/~mluengo/automatas/teoria/tema4.pdf

Gramaticas y autómatas

De pila http://informatica.utem.cl/~rcorbin/files/talf/APUNTES_Y_GUIAS/Capitulo3.pdf