U .R.J .C. – Ingenierı́a Técnica en Informática de Sistemas Teorı́a de Autómatas y Lenguajes Formales Febrero 2008 1er. Parcial Normas : La duración del examen es de 2 horas. Todos los ejercicios se entregarán en hojas separadas. El examen tipo test cuenta hasta 2 puntos sobre la nota total. 1. (a) (1.5 puntos) Obtén una gramática formal que genere el siguiente lenguaje: L = {w|w ∈ {a, b}∗ y na (w) ≥ nb (w)}. Solución: Una posible solución podrı́a ser la siguiente: G = ({S, A, B}, {a, b}, S, P ) con P = {S ::= bAS|λ, bA ::= Ab, Ab ::= bA, A ::= aA|a} (b) (0.75 puntos) Dada la siguiente gramática: G = ({S, C, B, D, T }, {a, b}, S, P) , donde P son las producciones siguientes : S ::= CaDT aB ::= Ba aT ::= T a D ::= aBD | λ CB ::= bbC CT ::= λ Define el lenguaje L(G) en notación conjuntista. Solución: La solución es la siguiente: L = {bm an |m = 2(n − 1) y n ≥ 1}. 2. (2.25 puntos) Demuestra que el lenguaje reconocido por el autómata finito Adet es el mismo que el lenguaje generado por la gramática Ggld . Todos los pasos para la resolución del ejercicio tienen que estar justificados utilizando algoritmos vistos en clase. No es obligatorio, pero sı́ conveniente, dar una pequeña explicación de qué se hace y porqué se hace. Adet = ({0, 1}, {p, q, r, s}, fdet, p, {p, r}) Ggld = ({S, A, B, C}, {0, 1}, S, P }) fdet 0 1 P = { S ::=0A | 1S | λ →*p q p A ::=0B | 1C | 1 | 0 q r p B ::=0A | 1C C ::=0A | 1S *r q s } s q p Página 1 de 5 Examen Teorı́a de Autómatas y Lenguajes Formales - 1er. Parcial (cont.) Solución: Como los dos elementos dados reconocen lenguajes regulares (uno es un AFD y el otro es una GLD), procederemos a comprobar los autómatas mı́nimos equivalentes de cada uno de ellos. Si los autómatas mı́nimos son isomorfos, entonces ambos elementos reconocen el mismo lenguaje. El autómata dado es finito determinista, por lo tanto, procederemos a minimizarlo para obtener el autómata finito determinista mı́nimo (y único) que reconoce ese lenguaje. Q/E0 = {{p, r}, {q, s}} Q/E1 = {{p}, {r}, {q}, {s}} Q/E2 = {{p}, {r}, {q}, {s}} = Q/E1 = Q/E Como podemos comprobar, este autómata ya es mı́nimo. Ahora, obtendremos un AFND a partir de la GLD que nos dan. Para ello, aplicaremos el algoritmo especificado en los apuntes. El AFND resultante es: AGLD = ({0, 1}, {S, A, B, C, D}, fGLD, S, {D}) fGLD 0 1 λ →S {A} {S} {D} A {B,D} {C,D} B {A} {C} C {A} {S} *D Ahora, obtendremos un autómata finito determinista. Para ello, partimos de la clausuraλ (S) = {S, D}. fGLDdet 0 1 →*{S,D} {A} {S,D} {A} {B,D} {C,D} *{B,D} {A} {C} *{C,D} {A} {S,D} {C} {A} {S,D} Si renombramos, nos queda: AGLDdet = ({0, 1}, {A, B, C, D, E}, fGLDdet, A, {A, C, D}) fGLDdet 0 1 →*A B A B C D *C B E *D B A E B A Página 2 de 5 Examen Teorı́a de Autómatas y Lenguajes Formales - 1er. Parcial (cont.) Hallaremos el autómata mı́nimo equivalente: Q/E0 = {{A, C, D}, {B, E}} Q/E1 = {{A, D}, {C}, {B}, {E}} Q/E2 = {{A, D}, {C}, {B}, {E}} = Q/E1 = Q/E | {z } |{z} |{z} |{z} A C B E Después de renombrar, su tabla de transiciones queda de la siguiente manera: AGLDdetmin = ({0, 1}, {A, B, C, E}, fGLDdetmin, A, {A, C}) fGLDdetmin →*A B *C E 0 1 B A C A B E B A Ahora, comparamos las tablas de transición de los dos autómatas mı́nimos: fdet 0 1 →*p q p q r p *r q s s q p fGLDdetmin 0 1 →*A B A B C A *C B E E B A Como podemos comprobar, los autómatas mı́nimos Adet y AGLDdetmin son isomorfos, por lo tanto, hemos demostrado que la gramática regular y el autómata finito dados en el enunciado generan el mismo lenguaje. 3. (2 puntos) Sea Σ = {a, b, c} un alfabeto finito, y sea L ⊆ Σ∗ el lenguaje dado por la siguiente igualdad : L = {w ∈ Σ∗ | na (w) + nb (w) > 3 + 2na (w)}. Demuestra que L no es un lenguaje regular. Solución: Cabe observar que el lenguaje L se puede redefinir de la siguiente forma: L = {w ∈ Σ∗ | nb (w) > 3 + na (w)}. Para demostrar que L no es regular basta demostrar que no cumple el lema de bombeo. Para ello se va a demostrar que para cualquier constante n existe una Página 3 de 5 Examen Teorı́a de Autómatas y Lenguajes Formales - 1er. Parcial (cont.) palabra x ∈ L con |x| ≥ n que no se puede dividir de forma u.v.w con |u.v| ≤ n, |v| > 0 y tal que u.v i.w ∈ L para i = 0, 1, 2, .... Sea n la constante del lema. Elegimos la palabra x = an bn+4 . Es obvio que x ∈ L y |x| = 2n + 4 ≥ n. Intentamos dividir x de forma u.v.w tal que |u.v| ≤ n y |v| > 0. La unica forma posible es la siguiente: x = an bn+4 = ak .al .am bn+4 = u.v.w con k + l + m = n y l > 0. Para cumplir el lema de bombeo, la palabra u.v 2 .w, es decir, ak .a2l .am bn+4 = an+l bn+4 con l > 0 debe pertenecer a L. Sin embargo, esta palabra no puede pertenecer al lenguaje ya que no puede tener un mı́nimo de 4 ’b’s más que ’a’s, como exije la definición del lenguaje (por l > 0). Por tanto el lenguaje no cumple el lema de bombeo y no es regular. 4. (1.5 puntos) Obtén, siguiendo el método de las ecuaciones caracterı́sticas, una expresión regular equivalente al siguiente autómata finito : q0 b a, b a b a q3 q1 a q2 a Solución: Las ecuaciones caracterı́sticas son las siguientes: x0 = (a + b)x1 x1 = ax4 + bx2 + λ x2 = ax0 + ax3 x3 = ax3 + bx0 x4 = bx5 x5 = Φ Resolvemos las ecuaciones para hallar x0 : x4 = bΦ = Φ Página 4 de 5 q4 b q5 Examen Teorı́a de Autómatas y Lenguajes Formales - 1er. Parcial (cont.) x3 = a ∗ bx0 x2 = ax0 + a ∗ bx0 x1 = aΦ + b(ax0 + a ∗ bx0 ) + λ = bax0 + ba ∗ bx0 + λ x0 = (a + b)(bax0 + ba ∗ bx0 + λ) = (a + b)bax0 + (a + b)ba ∗ bx0 + (a + b) x0 = (a + b)(ba + ba ∗ b)x0 + (a + b) = ((a + b)(ba + ba ∗ b)) ∗ (a + b) Esta expresión regular describe el lenguaje aceptado por el autómata. Página 5 de 5