1. Cadenas EJERCICIO 1

Documentos relacionados
No todos los LRs finitos se representan mejor con ERs. Observe el siguiente ejemplo:

PROGRAMACIÓN II AÑO 2009 TALLER 3: TEORÍA DE LENGUAJES Y AUTÓMATAS

SSL Guia de Ejercicios

EJERCICIOS del TEMA 3: Lenguajes independientes del contexto

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular.

Teoría de Autómatas y Lenguajes Formales. Introducción a las Gramáticas. Gramáticas incontextuales

CONJUNTOS REGULARES. Orlando Arboleda Molina. 19 de Octubre de Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle

Procesadores de Lenguaje

Interrogación 2. Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. Segundo Semestre, 2003

Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto Segundo Cuatrimestre de 2002

Expresiones regulares, gramáticas regulares

GRAMATICAS LIBRES DEL CONTEXTO

Lenguajes (gramáticas y autómatas)

Teoría de Lenguajes. Gramáticas incontextuales

Capítulo 1 Lenguajes formales 6

Temas. Objetivo. Que el estudiante logre: 1) Identificar conceptos constructivos de la Teoría de la Computabilidad. 2) Definir autómatas de pila.

Lenguajes, Gramáticas y Autómatas Conceptos

Lenguajes y Gramáticas

Tema 5 Lenguajes independientes del contexto. Sintaxis

Una cadena sobre Σ es cualquier secuencia de elementos de longitud finita sobre Σ.

Propiedades de lenguajes independientes del contexto

Autómatas de Pila y Lenguajes Incontextuales

Un autómata con pila no determinista (APND) es una septupla Q A B F en la que

Sumario: Teoría de Autómatas y Lenguajes Formales. Capítulo 2: Lenguajes Formales. Capítulo 2: Lenguajes Formales

06 Análisis léxico II

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES Grado en Ingeniería Informática Online, Curso Universidad Rey Juan Carlos

Autómatas Finitos Deterministicos (DFA)

Autómatas Finitos Deterministicos (DFA)

DEFINICIONES BÁSICAS E INTRODUCCIÓN A LENGUAJES FORMALES

Lenguajes Formales y Monoides

GRAMÁTICAS LIBRES DE CONTEXTO

AUTÓMATAS DE PILA Y LENGUAJES INDEPENDIENTES DEL CONTEXTO

Escribir la expresión regular de un número entero que no acepte que el primer dígito sea cero salvo el número 0. Solución: 0 [1-9][0-9]*

autómatas finitos y lenguajes regulares LENGUAJES FORMALES Y

Inducción en definiciones y demostraciones AUTÓMATAS Y LENGUAJES FORMALES PRELIMINARES MATEMÁTICOS. Números naturales. Inducción matemática

Examen de Computabilidad y Complejidad (CMC) 21 de enero de 2011

Cualquier lenguaje de contexto libre, L, puede ser generado por medio de una GCL, G, que cumpla las siguientes condiciones:

LENGUAJES FORMALES Y AUTÓMATAS

Tema 3: Gramáticas regulares. Teoría de autómatas y lenguajes formales I

ARITMÉTICA MODULAR. Unidad 1

Tema 2. Fundamentos de la Teoría de Lenguajes Formales

Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V.

Nivel del ejercicio : ( ) básico, ( ) medio, ( ) avanzado.

Gramáticas independientes del contexto AUTÓMATAS Y LENGUAJES FORMALES LENGUAJES INDEPENDIENTES DEL CONTEXTO Y AUTÓMATAS DE PILA. Otras definiciones I

EXÁMENES DE REPASO Teoría de Autómatas y Lenguajes Formales UNIVERSIDAD FRANCISCO DE VITORIA

Tema 2 Gramáticas y Lenguajes Libres de Contexto

Capítulo 7: Expresiones Regulares

Paréntesis: Una aplicación en lenguajes formales

Conjuntos. Un conjunto es una colección de objetos. Si a es un objeto y R es un conjunto entonces por. a R. se entiende que a pertenece a R.

Sea Σ un alfabeto y L el lenguaje de los palíndromos sobre Σ. Sean a, b dos elementos de Σ. Se demuestra por reducción al absurdo que L no es regular:

Otras propiedades de los lenguajes regulares

300CIG007 Computabilidad y Lenguajes Formales: Autómatas Finitos

Relaciones. Estructuras Discretas. Relaciones. Relaciones en un Conjunto. Propiedades de Relaciones en A Reflexividad

Clase 03: Alfabetos, símbolos y cadenas

Autómatas de Pila. Descripciones instantáneas o IDs. El Lenguaje de PDA. Equivalencia entre PDAs y CFGs INAOE (INAOE) 1 / 50

2do. Parcial. Todos los ejercicios se entregarán en hojas separadas. El examen tipo test cuenta hasta 2 puntos sobre la nota total.

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 45

16 Análisis sintáctico I

Lenguajes Regulares. Antonio Falcó. - p. 1

Expresiones Regulares y Derivadas Formales

5 Autómatas de pila 5.1 Descripción informal. 5.2 Definiciones

Compiladores e Intérpretes

Gramáticas libres de contexto

Teoría de Lenguajes. Teoría de la Programación I

Ingeniería en Computación. Autómatas y Lenguajes Formales. Unidad de competencia IV: Conocer, utilizar y diseñar gramáticas de libre contexto

Examen. Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. Segundo Semestre, 2003.

13.3. MT para reconocer lenguajes

En matemáticas el concepto de conjunto es considerado primitivo y no se da una definición de este, por lo tanto la palabra CONJUNTO debe aceptarse

Clase 17: Autómatas de pila

Introducción al Procesamiento de Lenguaje Natural

TEORÍA DE CONJUNTOS.

Unidad 4. Autómatas de Pila

Clase 14: Gramáticas libres de contexto

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 42

Propiedades de los Lenguajes Libres de Contexto

Aplicaciones del análisis combinatorio

Tema: Autómata de Pila

Autómatas Deterministas. Ivan Olmos Pineda

Teoría de Autómatas y Lenguajes Formales.

Gramáticas Independientes del Contexto (GIC)

Matrices y operaciones con Matrices.

Convertir un AFND a un AFD

Tema: Autómatas de Estado Finitos

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES

Procesadores de Lenguaje

Computabilidad y Lenguajes Formales: Autómatas Finitos

Curso Básico de Computación

Equivalencia Entre PDA y CFL

Tema 2: Autómatas finitos

Teoría de Autómatas y Lenguajes Formales.

Introducción a la Lógica y la Computación

CONJUNTO R n. = (5, 2, 10) de 3, son linealmente. = (2,1,3) y v 3. = (0,1, 1) y u 3. = (2,0,3, 1), u 3. = (1,1, 0,m), v 2

Computabilidad y Lenguajes Formales: Autómatas de Pila

Autómatas finitos no deterministas (AFnD)

Transcripción:

LENGUAJES FORMALES Y AUTÓMATAS CURSO 2006/2007 - BOLETÍN DE EJERCICIOS Víctor J. Díaz Madrigal y José Miguel Cañete Departamento de Lenguajes y Sistemas Informáticos 1. Cadenas La operación reversa aplicada sobre una cadena v, denotada por v R, calcula la cadena inversa de v. Es decir, aquella que contiene los mismos símbolos que v pero en orden inverso. Podemos aprovechar la secuencialidad de los símbolos de una cadena para definir operaciones de manera inductiva. Por ejemplo, dado el alfabeto Σ = {a, b} la operación reversa : Σ Σ se puede definir de la siguiente forma: reversa(λ) = λ reversa(aw) = reversa(w)a reversa(bw) = reversa(w)b Como se ve hay un caso base sobre la cadena vacía, y tantos casos generales como símbolos tenga el alfabeto, que se describen con el patrón cw, donde w es cualquier cadena perteneciente a Σ. Haciendo uso de este esquema, defina las siguientes operaciones sobre cadenas del alfabeto Σ = {a, b}: 1. longitud : Σ Natural, que cuenta el número de símbolos que tiene una cadena. 2. Na : Σ Natural, que cuenta el número de aes que tiene una cadena. 3. vacía : Σ {0, 1}, detecta si una cadena es vacía. 4. final : Σ Σ, que calcula el sufijo de longitud n 1 de una cadena de longitud n. 5. cola : Σ Σ, que calcula el último símbolo de una cadena. 6. inicio : Σ Σ, que calcula el prefijo de longitud n 1 de una cadena de longitud n.

Curso 05/06: Ejercicios de LFA 2 7. palíndroma : Σ {0, 1}, que detecta si una cadena es palíndroma o no (es decir, si se cumple v = v R ). 2. Lenguajes Sean L 1, L 2 y L 3 tres lenguajes arbitrarios descritos sobre un cierto alfabeto Σ. Compruebe si la igualdad L 1 (L 2 L 3 ) = L 1 L 2 L 1 L 3 es o no cierta. Sea el lenguaje L = {λ, a}. Calcular L n en el caso de que n sea 0, 1, 2 y 3. Cuántas cadenas hay en el lenguaje L n para un n arbitrario? Cuáles son las cadenas incluidas en L n para un n arbitrario? Sean los lenguajes L 1 = {λ, ab} y L 2 = {cd}. Dado un n arbitrario cuántas cadenas hay en L n 1L 2?. EJERCICIO 4 Encuentre dos lenguajes L 1 y L 2 descritos sobre {a, b} tales que (L 1 L 2 ) L 1 L 2. EJERCICIO 5 Encuentre dos lenguajes disjuntos L 1 y L 2 descritos sobre {a, b} tales que que (L 1 L 2 ) = L 1 L 2. EJERCICIO 6 Qué debe cumplir un lenguaje L para que sea cierto L + = L?

Curso 05/06: Ejercicios de LFA 3 EJERCICIO 7 Sea L un lenguaje descrito sobre {a, b} cuyas cadenas no acaban en b y no contienen la subcadena bb. Encuentre un lenguaje finito L sobre {a, b} que cumpla que L = L. 3. Expresiones Regulares Dadas las expresiones regulares E 1 = a + b y E 2 = ab + ba + b a + (a b) Encuentre una cadena que encaje con E 2 pero no con E 1 Encuentre una cadena que encaje con E 1 pero no con E 2 Encuentre una cadena que encaje con E 1 y con E 2 Encuentre una cadena que no encaje ni con E 1 ni con E 2 Encuentre la cadena más corta que no se encuentre en el lenguaje descrito por la expresión regular b (abb ) a Se dice que una expresión regular es ambigua si una misma cadena puede ser obtenida de dos formas distintas a partir de ella. Determine cuál de las siguientes expresiones son ambiguas: 1. a bb + b bc 2. a((ab) cb ) +a(abababcb ) a 3. aab (ab) + ab + a bba 4. aaba + aaaba + aabba + a

Curso 05/06: Ejercicios de LFA 4 EJERCICIO 4 Escribe expresiones regulares equivalentes a las siguientes lo más simplificadas que sea posible: 1. + a + b + (a + b) 2. ((a b ) (b a ) ) 3. (a b) + (b a) 4. (a + b) a(a + b) EJERCICIO 5 Escriba expresiones regulares para los siguientes lenguajes: 1. Cadenas del alfabeto {a, b} de longitud par. 2. Cadenas del alfabeto {a, b} de longitud impar. 3. Cadenas del alfabeto {a, b} con un número par de aes. 4. Cadenas del alfabeto {a, b} con un número impar de aes. 5. Cadenas del alfabeto {a, b} que no tengan dos aes consecutivas. 6. Cadenas del alfabeto {a, b} que no tengan ni dos aes consecutivas ni dos bes consecutivas. 7. Cadenas del alfabeto {a, b} que no tengan tres aes consecutivas. 8. Cadenas del alfabeto {a, b, c} que no contengan la subcadena bc. 9. Cadenas del alfabeto {a, b, c, d} que no contengan la subcadena bc. 10. Cadenas del alfabeto {a, b} con no más de tres aes. 11. Cadenas del alfabeto {a, b} con exactamente una sola ocurrencia de la subcadena aaa. 12. Todas las posibles formas de escribir la cadena reservada MODULO con letras mayúsculas o minúsculas.

Curso 05/06: Ejercicios de LFA 5 EJERCICIO 6 Las expresiones regulares clásicas se definen mediante las operaciones unión, concatenación y clausura. Sin embargo, es posible añadir nuevas operaciones como por ejemplo las siguientes: Complementario E es una expresión regular que representa el lenguaje de todas las cadenas que no forman parte del lenguaje descrito por la expresión regular E. Intersección E 1 E 2 es una expresión regular que representa el lenguaje de todas las cadenas que encajan en la expresión regular E 1 y también en la expresión regular E 2 El hecho de incluir estas nuevas operaciones no amplía el poder descriptivo de las expresiones regulares pero en algunas situaciones puede llegar a sustituir la potencia expresiva de otros operadores. Apoyándose en los nuevos operadores introducidos describa, sin usar las operaciones de unión ni de cierre estrella, los siguientes lenguajes sobre el alfabeto {a, b}: 1. Todas las cadenas que se pueden construir con dicho alfabeto. 2. Cadenas que no contengan dos aes consecutivas. 3. Cadenas que no contengan dos aes consecutivas o dos bes consecutivas 4. Gramáticas Incontextulaes Dada la gramática G = ({0, 1, 2}, {S, A}, S, P ) cuyas producciones P son {S 0A 2, A 0S 1}. Muestre si las cadenas 002 y 001 pertenecen al lenguaje de G. Considere la siguiente gramática G = ({0, 1, 2}, {S, A, B}, S, P ) donde P se define como: S 0A 2 A A1 A2 B 0B 0

Curso 05/06: Ejercicios de LFA 6 Justifique de qué forma puede ser simplificada la gramática manteniendo intacto el lenguaje que genera. Describe verbalmente los lenguajes que generan las siguientes gramáticas: 1. S asb ab 2. S as λ 3. S 0S1 0S0 1S1 1S0 0 1 4. S ABC, A aa λ, B bb λ, C cc λ EJERCICIO 4 Comprueba si alguna de las siguientes gramáticas genera un lenguaje palindrómico: 1. S as Sa bs Sb a b 2. S asa bsb λ 3. S ab c, B Sb EJERCICIO 5 Demuestra que las siguientes gramáticas son ambiguas: 1. S asbs as c 2. S SbS SaS c 3. S abs AS c, B ab, A baa aab a 4. S AA, A AAA ba Ab a

Curso 05/06: Ejercicios de LFA 7 EJERCICIO 6 Dada la siguiente gramática que genera el lenguaje de las expresiones regulares sobre el alfabeto {a, b, c, d}: E E E E + E (E) E a b c d lambda vacío 1. Obtenga los árboles de derivación de las expresiones d + λ + b y a y (b + ad). Obtén para cada árbol de derivación su correspondiente secuencia de derivaciones por la izquierda y por la derecha 2. Justifique si la gramática es o no ambigua?. En caso afirmativo, obtenga un gramática equivalente que no lo sea. EJERCICIO 7 Escriba gramáticas incontextuales para los siguientes lenguajes: 1. Cadenas del alfabeto {a, b, c, d} que no contengan la subcadena bc. 2. Cadenas del lenguaje a n b m. 3. Cadenas del lenguaje a n b n. 4. Cadenas del lenguaje a n b m con n m. 5. Cadenas del alfabeto {a, b} con el mismo número de aes y de bes. 6. Cadenas del alfabeto {a, b} con más aes que bes. 7. Cadenas del alfabeto {a, b} con un número par de aes. 8. Cadenas del alfabeto {a, b} que no tengan dos aes consecutivas. 9. Cadenas del alfabeto {a, b} que no tengan dos aes consecutivas ni dos bes consecutivas EJERCICIO 8 Dadas dos gramáticas incontextuales, G 1 y G 2, que comparten el mismo alfabeto de símbolos terminales y cuyos alfabetos de símbolos no terminales son disjuntos, obtenga aquella gramática incontextual G que verifica L(G) = L(G 1 ) L(G 2 )

Curso 05/06: Ejercicios de LFA 8 EJERCICIO 9 Dadas dos gramáticas incontextuales, G 1 y G 2, que comparten el mismo alfabeto de símbolos terminales y cuyos alfabetos de símbolos no terminales son disjuntos, obtenga aquella gramática incontextual G que verifica L(G) = L(G 1 )(G 2 ) 0 Dada un gramática incontextual G obtenga aquella gramática incontextual G que cumple L(G ) = L(G) 5. Autómatas Finitos Considere el siguiente autómata: a b q 0 q 0 q 1 q 1 q 1 q 1 q 2 q 1 q 2 Justifique de qué forma puede ser simplificado el autómata manteniendo intacto el lenguaje que acepta. Demuestre, apoyándose en el concepto de autómata finito determinista y en las leyes de Morgan, que: 1. La complementación de un lenguaje regular es un lenguaje regular. 2. La intersección de dos lenguajes regulares es un lenguaje regular Construya autómatas finitos deterministas para los siguientes lenguajes regulares:

Curso 05/06: Ejercicios de LFA 9 1. Cadenas del alfabeto {a, b} que finalicen con b y que no tengan dos bes consecutivas. 2. Cadenas del alfabeto {a, b} que finalicen con la subcadena ba. 3. Cadenas del alfabeto {a, b} que no tengan dos aes consecutivas. 4. Cadenas del alfabeto {a, b} cuya longitud sea múltiplo de cuatro. 5. Cadenas del alfabeto {a, b} con un número par de aes. 6. Cadenas del alfabeto {a, b} con un número par de aes y un número impar de bes. 7. Cadenas del alfabeto {a, b} en las que cada instancia del símbolo a está precedida y seguida de al menos una instancia del símbolo b. 8. Cadenas del alfabeto {a, b} que tienen como subcadena la cadena abab. EJERCICIO 4 Dadas las parejas de autómatas finitos de la figura, justifique que parejas de autómatas reconocen exactamente el mismo lenguaje. EJERCICIO 5 Escribe un AFD que acepte el lenguaje de todas aquellas cadenas que cumplen simultáneamente las siguientes dos condiciones: Longitud igual a múltiplo de tres. Comenzar con a y terminar con b EJERCICIO 6 Construye un autómata finito no determinista que acepte todas aquellas cadenas del alfabeto {a, b} que contengan la subcadena ababa, o contengan la subcadena bbbb.

Curso 05/06: Ejercicios de LFA 10 EJERCICIO 7 Sea un AF M con un solo estado final que reconoce un determinado lenguaje L. Queremos modificarlo para que acepte el lenguaje La. Plantea un AFND que demuestre que añadiendo simplemente a M una a-transición desde el estado final a él mismo no siempre se consigue esto Cómo se podría modificar el autómata para que se consiga reconocer La? 6. Autómatas de Pila Diseña autómatas de pila no deterministas que acepten los siguientes lenguajes: 1. Todos los palíndromos que se pueden formar con el alfabeto {a, b}. 2. Todos los palíndromos de longitud impar que se pueden formar con el alfabeto {a, b}. 3. Todos los palíndromos de longitud par que se pueden formar con el alfabeto {a, b}. 4. {x Na(x) = Nb(x)} 5. {a N b 2N N 0} 6. {a N b N+M a M N, M 0} Construya un APD para el lenguaje a k b m c n+1 b m+n con k, n 0 y m 1 con la condición de que en la pila sólo podrá almacenarse la marca Z 0 y los símbolos a, b y c. Sean M 1 y M 2 son dos autómatas de pila que aceptan los lenguajes L 1 y L 2, respectivamente. Describe un procedimiento para construir un AP que acepte los lenguajes L 1 L 2, L 1 L 2 y L 1

Curso 05/06: Ejercicios de LFA 11 EJERCICIO 4 Encontrar un método general que obtenga un AP M a partir de otro AP M de forma que se cumpla L V (M ) = L F (M). EJERCICIO 5 Encontrar un método general que obtenga un AP M a partir de otro AP M de forma que se cumpla L F (M ) = L V (M). 7. La jerarquía de Chomsky Determine a qué clase pertenecen dentro de la jerarquía de Chomsky las siguientes gramáticas: S Aa ba a b, A Aa a S aa bb c, A ab, B ba λ S aa bb λ, A ab a, B ba b S Ba a, Sa Bb, Sb λ, B bs BB b S abc aabc, Ab ba, Ac Bbcc, bb Bb, ab aa aaa Considere el lenguaje L = {ab, aab, abab}. Diseñe una gramática para generar L teniendo en cuenta que su tipo debe ser el más restrictivo posible dentro de la jerarquía de Chomsky. Considere la siguiente gramática G = ({a}, {A, C, B, D, E, S}, S, P ) cuya producciones son:

Curso 05/06: Ejercicios de LFA 12 P = S ACaB Ca aac CB DB E ad Da AD AC ae Ea AE λ Qué lenguaje genera y a qué clase pertenece? Cómo procede la gramática para reconocer las cadenas que genera? EJERCICIO 4 Considere la siguiente gramática G = ({a, b, c}, {A, B, S}, S, P ) cuya producciones son: S abb P = B ba abb c bab Bb Qué lenguaje genera y a qué clase pertenece? Cómo procede la gramática para reconocer las cadenas que genera? 8. Máquinas de Turing Estudiar las siguientes máquinas de Turing y determinar qué realizan: M 1 0 1 q 0 q 1 1D q 1 q 0 0D q 2 D q 2 M 2 0 1 q 0 q 0 D q 1 D q 1 q 1 D q 2 D q 2 Diseñe máquinas de Turing que acepten los siguientes lenguajes:

Curso 05/06: Ejercicios de LFA 13 1. 01 + 10 2. 0 n 1 n con n > 0 3. wcw R con w {a, b} 4. wcw con w {0, 1}{0, 1} Demostrar que todo autómata finito M puede ser transformado en una máquina de Turing M tal que L(M) = L(M ). Aplicar la transformación propuesta al siguiente autómata: a b q 0 q 1 q 1 q 1 q 0 q 0