33 col2 301405

8,120 views

Published on

Colaborativo Dos Autómatas y lenjuages Formales

  • Be the first to comment

  • Be the first to like this

33 col2 301405

  1. 1. AUTOMATAS Y LENGUAJES FORMALES TRABAJO COLABORATIVO DOS LENGUAJES INDEPENDIENTES DEL CONTEXTO PRESENTADO A: INGENIERO MSC CARLOS ALBERTO AMAYA TARAZONAUNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD CEAD DUITAMA – BOYACA NOVIEMBRE 2012
  2. 2. INTRODUCCIONEl presente trabajo corresponde al desarrollo del trabajo colaborativo número dos del curso deAutómatas y lenguajes formales, en el aplicaremos los contenidos temáticos que se han adquirido delestudio de la unidad dos del curso Lenguajes independientes del contexto.Cuando necesitamos validar campos de texto en programación como por ejemplo nombres, númerosde cedula, fechas de nacimiento entre otros muchos campos más y para realizarlo de una manerasencilla y precisa podremos emplear los lenguajes regulares. Existen diversidad de métodos paravalidar esta información contenida entre estos para ello se encuentran los Autómatas de Pila quecontienen las expresiones regulares, que tienen parecido a una especie de lenguaje que se puedeusar para buscar, remplazar y sobreponer ciertos patrones en un texto, trabajable casi de manera igualque los Autómatas Finitos y no Finitos. Un autómata con pila o autómata de pila o autómata a pila oautómata apilador es un modelo matemático de un sistema que recibe una cadena constituida porsímbolos de un alfabeto y determina si esa cadena pertenece al lenguaje que el autómata reconoce. Ellenguaje que reconoce un autómata a pila pertenece al grupo de los lenguajes de contexto libre en laclasificación de la Jerarquía de Chomsky.
  3. 3. 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.
  4. 4. 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;  ACQ 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}
  5. 5. 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= 1i0i ,i>=1}Posibles cadenas 110000101 110101 00101 01 011 11101 110000000101 111101 1111011111111
  6. 6. 4. Encuentre la expresión regular válida. (Compruebe una cadena válida de esa expresión regular enel 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.
  7. 7. 5. Encuentre su gramática que sea válida para la función de transición (describa sus componentes ycomo 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 querealizan en el simulador)La gramática válida para la función de transición es: Izquierda Derecha S → λ S → 0A F → 1C C → 1D G → 1C A → 0B B → 0A E → 0G B → λ S → 1F C → 0A C → λ A → 1C E → 1C D → 1D G → 0G D → 0G F → 0G D → λ B → 1ELa conversión se hace a la Izquierda porque es lineal a la derecha ya que el mismo lenguaje esgenerado por la siguiente gramática línea por la derecha.Gramatical en JflapAbrimos el Simulador y seleccionamos gramática:
  8. 8. 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 paraello nos vamos a Input y luego a multiplebrute forcé parse e ingresamos las cadenas que deseamosvalidar:El simulador nos indica que cadenas fueron aceptadas y cuales rechazadas.
  9. 9. 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 contexto7. 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 sedetenga 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 SS → 1F 1FF → 1C 11CC → 0A 110AA → 1C 1101CC → 0A 11010AA → 1C 110101CC→λ 110101
  10. 10. 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,q4q4 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}
  11. 11. 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 transición “1” y “0”. No finales Finales {q5, q6, q7} {q1} {q0, q2} {q3} {q4} 1 q3, q3, q3, q3 q6, q5 q4q4 0 q7, q7, q7 q2 q1, q1 q1 q7Como no se reflejan cambios al aplicar este paso hemos llegado al final de los procedimientosa 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 lossubconjuntos formados. Para los subconjuntos que tengan más de un estado se debe elegir unestado que sea representante del subconjunto y remplazarlo en la tabla de transición por surespectivo representante esto con el fin de eliminar estados repetidos. Autómata Minimizado Eliminación Estados Nuevo AutómataEstados 1 0 1 0 1 0Finales q0 q6 q1 q0 q5 q1 q0 q5 q1 q2 q5 q1 q0 q5 q1 q3 q4 q1 q3 q4 q1 q3 q4 q1 q4 q4 q7 q4 q4 q5 q4 q4 q5Estados No 1 0 1 0 1 0finales q5 q5 q7 q5 q3 q5 q5 q3 q5 q6 q3 q7 q5 q3 q5 q7 q3 q7 q5 q3 q5 q1 q3 q2 q1 q3 q0 q1 q3 q0Paso 5:En este paso se elabora la tabla de transición y se grafica el nuevo autómataminimizado.Para realizar la tabla de transición de nuestro autómata minimizado se ordenaran los estados yse asignan nuevos estados ordenados en base a las transiciones del autómata minimizado. Equivalencia ordenada de estados Nueva tabla de estados 1 0 q0 = q0 q0 q3 q4 q3 = q1 q1 q2 q4 q4 = q2 q2 q2 q3 q5 = q3 q3 q1 q3 q1= q4 q4 q1 q0
  12. 12. 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.
  13. 13. 14. Identificar el lenguaje que reconoce y las posibles cadenas. L= {A ϵ {1, 0} | A= 1i 0i ,i>=1} Posibles cadenas 110000101 110101 00101 01 01115. 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 → 1C S→λ D → 0S A → 0D D → 1A B → 1B C → 0C A → 1B B → 0C B→λ A →λ C → 1A16. Expresarlo o graficarlo con su respectivo diagrama de Moore.
  14. 14. 17. Identificar sus tablas de Transición (plasmarlas) 1 0  # q0 q3 q4 # q1 q2 q4 #q2 q2 q3 q3 q1 q3 q4 q1 q018. Plasmar los pasos de minimización en el simulador y capturar los procesos en imágenes para serdocumentadas 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
  15. 15. 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 Finishy 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 enla cual nos dice que la minimización del autómata está hecha y que se abrirá una nuevaventana con el autómata minimizado, damos aceptar y listo ya tenemos nuestro autómataminimizado, ahora solo debemos ordenarlo para que se pueda visualizar mejor.
  16. 16. 2. Construya el autómata de Pila CorrespondienteDiseñe un AP que acepte el Lenguaje x n+1yn para cualquier número natural n. L= {xn+1yn} Las posibles cadenas que acepta el autómata pueden ser: (xxy) (xxyxxy) (xxyxxyxxy)Un autómata con pila puede ser descrito como una séptuplaM= (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 elcontenido de la pila). Graficado en JFLAP
  17. 17. Traceback para las Transiciones20. 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 stepwithclosure, 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.
  18. 18. 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 estadosPara los autómatas con pila se pueden hacer diagramas de estados, similaresa los ya conocidos, peroresultan de poca utilidad práctica ya que el procesamiento completo de una cadena de entradadepende del contenido de la pila, el cual puede cambiar en cada paso computacional. ESTADO POR LEER PILA q xxy q xxy x q xy xx q y xxy22. Identifique los contenidos de la pila y el estado de parada.3. Construcción de AutómatasPara los siguientes dos autómatas:
  19. 19. 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 BTUPLA M=({q6,q2}, {x,y},δ, q6, {q2}) M=({q5,q0, q4}, {x,y},δ, q5, {q0,q4}) δ:=(q6,x) = {q6} δ:=(q6,y) = {q2} δ:=(q5,x) = {q5} δ:=(q5,y) = {q0} δ:=(q2,x) = {q2} δ:=(q2,y) = {q2, q6} δ:=(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úmerode estados es dos mientras que para B es de tres estados, De igual forma para el autómata A se tieneque posee un solo estado de aceptación mientras que el autómata B posee dos estados deaceptació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= xnyn ,n>=1} L= {A ϵ {x, y} | A= xnyn ,n>=1}El lenguaje que reconocen los dos autómatas es el mismo ya que ambos lenguajes generan cadenasvalidas en base a las transiciones del autómata, el lenguaje nos dice que “A” pertenece a (x) y (y) talque “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 paracalificar 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. Porquenuestro autómata A en el estado q2 salen dos transiciones con el mismo símbolo eindependientemente de esta regla también tiene más de una transición en sus estados. Igual casopara el autómata B este posee más de una transición en uno o mas estados.
  20. 20. 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
  21. 21. Expresión regular ER= yx*+yx*y(x+y)4. GramáticasSean L1 el lenguaje generado por la gramática G1 y L2el lenguaje generado por la gramática G2 S → xABy S → xAyzy | xAy A → xzS | B A → xzS | yz | λ B → yz | λ Gramática G1 Gramática G227. Obtener el autómata Finito para cada gramática (plasme los diagramas de Moore) Gramática G1 Autómata Finito Diagrama de Moore
  22. 22. Gramática G2 Autómata Finito Diagrama de Moore28. 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*) y30. Identifique y demuestre la palabra generable común tanto por la Gramática 1 como por laGramá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
  23. 23. 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
  24. 24. Verificación palabra xyzyzy para la Gramática 1Verificación palabra xyzyzy para la Gramática 1
  25. 25. BIBLIOGRAFIAMODULOAUTÓMATAS Y LENGUAJES FORMALESEdgar Alberto Quiroga Rojas Actualización: Carlos Alberto Amaya TarazonaGramáticas formales http://gramaticasformales.wordpress.com/Grammatical regular http://es.wikipedia.org/wiki/Gram%C3%A1tica_regularGramaticas libres de context http://luzem.dyndns.org/2010/05/05/practica-8-gramaticas- libres-de-contexto-en-jflap/Gramatica libre de contextoa 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.htmlMinimizacion de un autómata http://www.youtube.com/watch?v=jd4cQ9yJj2cAutomata de pila http://www2.dis.ulpgc.es/~mluengo/automatas/teoria/tema4.pdfGramaticas y autómatasDe pilahttp://informatica.utem.cl/~rcorbin/files/talf/APUNTES_Y_GUIAS/Capitulo3.pdf

×