Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
ESTALMAT -Andalucía Actividades 13/14 _______________________________________________________________________________________ Segundo Curso. Sesión: 10 Fecha: 18/01/14 Título: Lenguajes Formales y Autómatas Agenda de la sesión: 1) Motivación • Se trata de introducir los conceptos de lenguaje y gramática, partiendo de las ideas que puedan tener de estas nociones, y ver hasta qué punto pueden ser útiles estas ideas y estructuras en matemáticas. • La clase se estructurará en una serie de grupos, en función del número exacto de alumnos. Los grupos deberían tener entre 3 y 5 miembros. • La primera tarea consistirá en pedirles que (por grupos) generen una lista de las principales ideas que a ellos les sugiere la noción de lenguaje: ¿qué és?, ¿para qué sirve?, ¿quién y cómo se usa?, ... A continuación se hará una puesta en común y se obtendrán las principales ideas. • La segunda tarea es similar pero en torno a la noción de gramática. En última instancia se trata de ver cuáles son los conceptos de partida con los que llegan, y será interesante posteriormente ver cuáles son estos mismos conceptos al final de la sesión. • Por último, se les preguntará si creen que estas ideas de los lenguajes y las gramáticas tienen algo que ver con las matemáticas, es decir, si pueden ser útiles para las matemáticas o las matemáticas pueden ser útiles para estas ideas ... 2) Autómatas de estados finitos • Vamos a tirarnos directamente a la piscina. Y sin pasar por una definición exhaustiva de los fundamentos correspondientes, vamos a introducir varios ejemplos de autómatas de estados finitos. • Ejemplo 1: Introduciremos el siguiente ejemplo, y explicaremos el funcionamiento: • Esto nos permitirá introducir las nociones de: ◦ Estado ◦ Transición -------- pié de página ESTALMAT -Andalucía Actividades 13/14 _______________________________________________________________________________________ ◦ Estado inicial ◦ Estados finales • Indirectamente tendremos una primera aproximación a las nociones de lenguaje generado y lenguaje reconocido • El Anexo 1 incluye una versión relativamente simple (tomada de Wikipedia) de las nociones básicas sobre autómatas finitos. • Intentaremos analizar si se entienden las nociones más formales que ya han aparecido. En concreto, las ideas de: ◦ Definición formal del autómata como una quintupla, y los componentes, en concreto la función de transición. ◦ Representación de la tabla de transiciones ◦ Mecanismo de funcionamiento del autómata • Ejemplo 2: ◦ A partir de este ejemplo, se pide: ▪ Escribir la tabla de transición ▪ Definir el autómata (como un modelo formal) ▪ Dar algún ejemplo de secuencias que son reconocidas por el autómata y otras que no: ¿existe algún patrón de dichas secuencias? ◦ Definición formal del autómata como una quintupla, y los componentes, en concreto la función de transición. • Reto 1: Por grupos, se plantea el siguiente reto: ◦ Partimos del siguiente gráfico -------- pié de página ESTALMAT -Andalucía Actividades 13/14 _______________________________________________________________________________________ • Se debe: ◦ Generar la tabla de transiciones ◦ ¿Cuál es la secuencia más corta de letras que puede aceptar el autómata? ◦ ¿Cuál es la secuencia más larga de letras que puede aceptar? ◦ Indica al menos una secuencia de letras que no acepte el autómata • Reto 2: Construir un autómata que sea capaz de reconocer como válidas las secuencias de 0 y 1, pero de forma que nunca pueda haber dos ceros seguidos ni dos unos seguidos, y la longitud (número de ceros y unos) total sea par. ◦ Por ejemplo, se reconocerán como correctas las secuencias 010101 o 10, pero no serán correctas las secuencias 01010 (longitud impar), o 0110 (dos unos seguidos). • Reto 3: Construir un autómata que sea capaz de reconocer como válidas las secuencias de 0 y 1, pero puede haber como máximo una repetición seguida de un símbolo. No importa la longitud total de la secuencia. ◦ Por ejemplo, son correctas las secuencias 01010, 1010, 0011001 ◦ Y son incorrectas 011100 (tres dígitos 1 seguidos) 3) Expresiones Regulares • Es bien conocido que existe una correspondencia exacta entre autómatas de estados finitos y expresiones regulares, así que en esta parte vamos a introducir la noción de expresión regular, aunque sólo abordaremos los modelos básicos de especificación, dejando muchas de las características más avanzadas de éstas. En concreto, se explicarán los operadores de agrupación, alternación, y cuatificación (Anexo 2). Es decir, explicaremos los operadores: ◦ ( ) ◦ | ◦ * + ? -------- pié de página ESTALMAT -Andalucía Actividades 13/14 _______________________________________________________________________________________ • Ejemplo 3: • Reto 4: ◦ Definir las expresiones regulares correspondientes a los autómatas de los ejemplos 1 y 2 • Reto 5: ◦ Construye tres autómatas y sus expresiones regulares correspondientes. Asígnale un nivel de dificultad de 1 a 3. Se colocarán en un paquete con ◦ Una vez construidos cada grupo tendrá que coger un reto de cada uno de los niveles de dificultad. Si lo resuelve logrará los puntos del nivel, y si no lo resuelve, los puntos irán al grupo proponente. 4) Gramáticas Formales • El siguiente bloque presentará el concepto de gramática formal, siempre a un nivel básico. Básicamente se introducirán los conceptos de Vocabulario y Reglas de Derivación o Producción. Se verá cómo las Expresiones Regulares (y vinculados con ellas los Autómatas Finitos) constituyen el primer nivel de las gramáticas formales. En el Anexo 3 aparecen los conceptos teóricos de referencia. • Ejemplo 4: Comenzaremos introduciendo dos ejemplos, uno con motivación más lingüística y otro más matemático. Uno básico de las estructuras sintácticas del castellano para formar una frase como "El niño come patatas", y otro para formar expresiones aritméticas básicas como "1+2*3". En definitiva nos centraremos en las gramáticas libres de contexto. • Reto 4: Gramática anbn ◦ Intentar definir un autómata para la expresión anbn. ¿Se puede? Razona la respuesta. Construye una gramática libre de contexto para dicho lenguaje. -------- pié de página ESTALMAT -Andalucía Actividades 13/14 _______________________________________________________________________________________ • Los lenguajes y las matemáticas: ◦ Las matemáticas se expresan a partir de fórmulas, pero ¿son todas las fórmulas correctas? ◦ Aparecen las nociones de: ▪ Cadena de caracteres ▪ Fórmula bien formada ▪ Teorema ◦ ¿Dónde están los límites? ◦ Estudia las siguientes fórmulas: ▪ area = altura * anchura ▪ diametro = 3,14 * (r ^ 2) ▪ altura - * 5 6 = diametro ▪ r + 1 = r - 1 5) Conclusiones • Una vez hecho este recorrido nos planteamos recuperar las nociones vistas al principio. ◦ ¿Qué es un lenguaje? ◦ ¿Qué es una gramática? ◦ ¿Qué relaciones hay entre los lenguajes y las matemáticas? -------- pié de página ESTALMAT -Andalucía Actividades 13/14 _______________________________________________________________________________________ Anexo 1: Autómata finito Definición formal Formalmente, un autómata finito es una 5-tupla (Q, Σ, q0, δ, F) donde: • es un conjunto finito de estados; • es un alfabeto finito; • es el estado inicial; • es una función de transición; • es un conjunto de estados finales o de aceptación. • Representación como diagramas de estados Este autómata finito está definido sobre el alfabeto Σ={0,1}, posee dos estados s1 y s2, y sus transiciones son δ(s1,0) =s2, δ(s1,1)=s1, δ(s2,0)=s1 y δ(s2,1)=s2. Su estado inicial es s1, que es también su único estado final. Los autómatas finitos se pueden representar mediante grafos particulares, también llamados diagramas de estados finitos, de la siguiente manera: • Los estados Q se representancomo vértices, etiquetados con su nombre en el interior. • Una transición δ desde un estado a otro, dependiente de un símbolo del alfabeto, se representa mediante una arista dirigida que une a estos vértices, y que está etiquetada con dicho símbolo. • El estado inicial q0 se caracteriza por tener una arista que llega a él, proveniente de ningún otro vértice. • El o los estados finales F se representan mediante vértices que están encerrados a su vez por otra circunferencia. Representación como tabla de transiciones Otra manera de describir el funcionamiento de un autómata finito es mediante el uso de tablas de transiciones o matrices de estados. Dos posibles tablas para el ejemplo de la imagen anterior podrían ser las siguientes: salida q Q∈ símbolo σ Σ∈ llegada δ(q,σ) Q∈ s1 0 s2 s1 1 s1 s2 0 s1 -------- pié de página http://es.wikipedia.org/wiki/Tupla http://es.wikipedia.org/wiki/Grafo_dirigido http://es.wikipedia.org/wiki/Arista_(teor%C3%ADa_de_grafos) http://es.wikipedia.org/wiki/V%C3%A9rtice_(teor%C3%ADa_de_grafos) http://es.wikipedia.org/wiki/Grafo http://es.wikipedia.org/wiki/Tabla_de_transici%C3%B3n_de_estados http://es.wikipedia.org/wiki/Estado_(inform%C3%A1tica) http://es.wikipedia.org/wiki/Alfabeto http://es.wikipedia.org/wiki/Tabla_de_transici%C3%B3n_de_estados http://es.wikipedia.org/wiki/Alfabeto http://es.wikipedia.org/wiki/Estado_(inform%C3%A1tica) ESTALMAT -Andalucía Actividades 13/14 _______________________________________________________________________________________ s2 1 s2 0 1 →*s1 s2 s1 s2 s1 s2 La primera representa explícitamente los parámetros y el valor que toma cada ocurrencia de la función de transición. La segunda es más compacta, y marca con una flecha el estado inicial, y con un asterisco los estados finales. Funcionamiento El esquema general es el de una cinta lectora que avanza sólo hacia delante y de a una celda, según la función de transición. En el comienzo del proceso de reconocimiento de una cadena de entrada, el autómata finito se encuentra en el estado inicial y a medida que procesa cada símbolo de la cadena va cambiando de estado de acuerdo a lo determinado por lafunción de transición. Cuando se ha procesado el último de los símbolos de la cadena de entrada, el autómata se detiene en el estado final del proceso. Si el estado final en el que se detuvo es un estado de aceptación, entonces la cadena pertenece al lenguaje reconocido por el autómata; en caso contrario, la cadena no pertenece a dicho lenguaje. Note que el estado inicial de un autómata finito siempre es único, en tanto que los estados finales pueden ser más de uno, es decir, el conjunto puede contener más de un elemento. También puede darse el caso de que un estado final corresponda al mismo estado inicial. -------- pié de página http://es.wikipedia.org/wiki/Entrada http://es.wikipedia.org/wiki/Cadena_de_caracteres http://es.wikipedia.org/wiki/Tabla_de_transici%C3%B3n_de_estados http://es.wikipedia.org/wiki/Tabla_de_transici%C3%B3n_de_estados ESTALMAT -Andalucía Actividades 13/14 _______________________________________________________________________________________ Anexo 2: Expresiones regulares Las expresiones regulares se construyen utilizando los operadores unión, concatenación y clausura de Kleene. Además cada expresión regular tiene un autómata finito asociado.... Alternación Una barra vertical separa las alternativas. Por ejemplo, "marrón|castaño" se corresponde con marrón o castaño. Cuantificación Un cuantificador tras un carácter especifica la frecuencia con la que éste puede ocurrir. Los cuantificadores más comunes son +, ? y *: + El signo más indica que el carácter que le precede debe aparecer al menos una vez. Por ejemplo, "ho+la" describe el conjunto infinito hola, hoola, hooola, hoooola, etcétera. ? El signo de interrogación indica que el carácter que le precede puede aparecer como mucho una vez. Por ejemplo, "ob?scuro" se corresponde con oscuro yobscuro. * El asterisco indica que el carácter que le precede puede aparecer cero, una, o más veces. Por ejemplo, "0*42" se corresponde con 42, 042, 0042, 00042, etcétera. Agrupación Los paréntesis pueden usarse para definir el ámbito y precedencia de los demás operadores. Por ejemplo, "(p|m)adre" es lo mismo que "padre|madre", y "(des)?amor" se corresponde con amor y con desamor. -------- pié de página http://es.wikipedia.org/wiki/Clausura_de_Kleene http://es.wikipedia.org/wiki/Clausura_de_Kleene http://es.wikipedia.org/wiki/Concatenaci%C3%B3n http://es.wikipedia.org/wiki/Uni%C3%B3n_de_conjuntos ESTALMAT -Andalucía Actividades 13/14 _______________________________________________________________________________________ Anexo 3: Gramáticas Formales Definición de una ES-gramática En la definición clásica que dio Noam Chomsky en la década de 1950, una gramática formal de estructura sintagmática (ES-gramática) es una cuádrupla G = (N,T,S,P) donde: • N es un conjunto finito de símbolos no terminales (variables). • T es un conjunto finito de símbolos terminales (constantes), disjunto con N. • S es un símbolo distinguido de N, el símbolo inicial. • P es un conjunto finito de reglas de producción, cada una de la forma: donde * es la clausura de Kleene. Esto es, cada regla de producción mapea de una cadena de símbolos a otra, donde la primera cadena contiene al menos un símbolo no terminal. En el caso de que la segunda cadena sea la cadena vacía, para evitar confusión se la denota con una notación especial (usualmente , o ). El alfabeto de la gramática es entonces el conjunto Derivaciones Sea una gramática, y sean α, β, δ, φ, ρ, ... palabras de . Entonces: • β se deriva de α en un paso de derivación, y lo denotamos con α β si existen dos cadenas , y una producción δ → ρ tales que α = δ , y β = ρ • Notamos con al cierre reflexivo y transitivo de . Es decir α β denota a una secuencia de derivaciones en un número finito de pasos desde α hasta β. • es una forma sentencial de , si puede obtenerse la siguiente secuencia de derivaciones . En el caso particular de que se dice que x es una sentencia • Se denomina lenguaje formal generado por G al conjunto Jerarquía de Chomsky Cuando Noam Chomsky formalizó la idea de las gramáticas generativas en 1956, clasificó este tipo de gramáticas en varios tipos de complejidad creciente que forman la llamada jerarquía de Chomsky. La diferencia entre estos tipos es que cada uno de ellos tiene reglas más particulares y restringidas y por tanto generan una lenguajes formales menos generales. Dos tipos importante son las gramáticas libres de contexto (Tipo 2) y las gramáticas regulares (Tipo 3). Las lenguas que pueden ser descritas mediante esos tipos de gramáticas son lenguas libres de contexto y lenguas regulares, respectivamente. Estos dos tipos son mucho menos generales que las gramáticas no restringidas de Tipo 0 (es decir, que pueden ser procesadas o reconocidas mediante máquinas de Turing). Estos dos tipos de gramáticas se usan más frecuentemente puesto que los analizadores sintácticos para estos lenguajes pueden implementarse de manera eficiente.1 Por ejemplo, todas las lenguas regulares pueden ser reconocidas por un autómata finito. Para subconjuntos de gramáticas libres de contexto, existen algoritmos para generar analizadores sintácticos LL y analizadores sintácticos LR eficientes, que permiten reconocer los correspondientes lenguajes generados por esas gramáticas. -------- pié de página http://es.wikipedia.org/wiki/Analizador_sint%C3%A1ctico_LR http://es.wikipedia.org/wiki/Analizador_sint%C3%A1ctico_LL http://es.wikipedia.org/wiki/Aut%C3%B3mata_finito http://es.wikipedia.org/wiki/Gram%C3%A1tica_formal#cite_note-Grune.26Jacobs1990-1 http://es.wikipedia.org/wiki/M%C3%A1quina_de_Turing http://es.wikipedia.org/wiki/Lenguaje_regular http://es.wikipedia.org/w/index.php?title=Lenguaje_libre_de_contexto&action=edit&redlink=1http://es.wikipedia.org/wiki/Gram%C3%A1tica_regular http://es.wikipedia.org/wiki/Gram%C3%A1tica_libre_de_contexto http://es.wikipedia.org/wiki/Gram%C3%A1tica_libre_de_contexto http://es.wikipedia.org/wiki/Jerarqu%C3%ADa_de_Chomsky http://es.wikipedia.org/wiki/Gram%C3%A1tica_generativa http://es.wikipedia.org/wiki/Noam_Chomsky http://es.wikipedia.org/wiki/Cadena_vac%C3%ADa http://es.wikipedia.org/wiki/Clausura_de_Kleene http://es.wikipedia.org/wiki/Conjuntos_disjuntos http://es.wikipedia.org/wiki/Tupla http://es.wikipedia.org/wiki/Noam_Chomsky 1) Motivación 2) Autómatas de estados finitos 3) Expresiones Regulares 4) Gramáticas Formales 5) Conclusiones Anexo 1: Autómata finito Definición formal Representación como diagramas de estados Representación como tabla de transiciones Funcionamiento Anexo 2: Expresiones regulares Anexo 3: Gramáticas Formales Definición de una ES-gramática Derivaciones Jerarquía de Chomsky
Compartir