Teorı́a de Autómatas y Lenguajes Formales Ing. Informática e Ing. Informática + LADE Primer Parcial Junio 2013 Apellidos y Nombre: Normas : La duración de esta parte del examen es de 1 hora. No se permite el uso de libros, apuntes ni teléfonos móviles. Las respuestas se redactarán en el espacio reservado a tal fin en esta misma hoja. 1. (3 puntos) Dado el siguiente lenguaje: L = {x | x ∈ {a, b}∗ , |x| > 0, na (x) 6= 2} (a) (2 puntos) Obtenga una gramática que genere el lenguaje L. Solución: Una posible solución serı́a la siguiente gramática: G = ({S, A, B, C}, {a, b}, S, P) con P={ S A B C ::= ::= ::= ::= aA aB aC aC | bS | a | b, | bA | b, | bB | a, | bC | a | b} (b) (1 puntos) De qué tipo es el lenguaje L. Justifique su respuesta. Solución: El lenguaje L es un lenguaje regular, puesto que puede ser generado por la gramática regular, lineal por la derecha, que se ha obtenido en el apartado anterior. 2. (2 puntos) Obtenga, mediante el método de las ecuaciones caracterı́sticas, una expresión regular equivalente al autómata A. Muestre todo el desarrollo (ecuaciones, despejes, etc...). Página 1 de 4 Examen Primer Parcial – Junio 2013 (cont.) q0 a, b a b q3 a a q1 q4 b b q2 q5 a Solución: Escribamos el sistema de ecuaciones caracterı́sticas correspondiente al autómata: X0 X1 X2 X3 X4 X5 = = = = = = (a + b) X1 aX4 + bX2 + λ aX3 aX3 + aX1 + bX0 bX5 ∅ Resolviendo dicho sistema obtengo: X5 X4 X3 X2 X1 X0 = = = = = = = = = ∅ bX5 = b∅ = ∅ a∗ (aX1 + bX0 ) aa∗ (aX1 + bX0 ) a∅ + baa∗ (aX1 + bX0 ) + λ = baa∗ aX1 + baa∗ bX0 + λ = (baa∗ a)∗ (baa∗ bX0 + λ) (a + b) (baa∗ a)∗ (baa∗ bX0 + λ) = (a + b) (baa∗ a)∗ baa∗ bX0 + (a + b) (baa∗ a)∗ = ∗ ((a + b) (baa∗ a)∗ baa∗ b) (a + b) (baa∗ a)∗ Por tanto la solución es ∗ ((a + b) (baa∗ a)∗ baa∗ b) (a + b) (baa∗ a)∗ 3. (5 puntos) Determine si los autómatas finitos A1 y A2 son (o no) equivalentes: Página 2 de 4 Examen Primer Parcial – Junio 2013 (cont.) A1 = ({a, b, c}, {p, q, r, s}, f1 , p, {r}) f1 →p q *r s a {q} {r} b {s} {r} c {q} {p,s} λ {q} {p} {p,r} A2 = ({a, b, c}, {p, q, r, s, t, u, v}, f2 , p, {r, s, t, v}) f2 a b c →p v s q q r t s *r r t u *s r t t *t r t s u v t t *v r s u Justifique su respuesta e incluya todos los cálculos que haya realizado. Solución: Para poder decidir si ambos autómatas son equivalentes, debemos comparar sus autómatas finitos deterministas mı́nimos. En el caso de A1 , en primer lugar deberemos obtener su autómata finito determinista equivalente. Este autómata, cuyo estado inicial se calcula mediante clausuraλ (p), es el siguiente: f1′ → {p,q} *{p,q,r} *{p,q,r,s} {p,q,s} a {p,q,r} {p,q,r} {p,q,r} {p,q,r} b {p,q,r,s} {p,q,r,s} {p,q,r,s} {p,q,r,s} c {p,q,s} {p,q,s} {p,q,r,s} {p,q,r,s} Que renombrado queda: f1′ →A *B *C D a B B B B b C C C C c D D C C Ahora, procederemos a minimizarlo mediante la obtención de sus conjuntos cociente: Q/E0 = {{B, C}, {A, D}} Q/E1 = {{B}, {C}, {A}, {D}} Q/E2 = {{B}, {C}, {A}, {D}} Q/E2 = Q/E1 por lo tanto Q/E1 = Q/E Lo que significa que el autómata finito determinista equivalente a A1 ya es mı́nimo. Página 3 de 4 Examen Primer Parcial – Junio 2013 (cont.) Por otra parte, debemos minimizar el autómata finito determinista A2 . Para ello, antes de calcular los conjuntos cociente, eliminaremos los estados inaccesibles. En este caso, no existe ninguno, por lo tanto, pasamos al cálculo de los cocientes: Q/E0 = {{r, s, t, v}, {p, q, u}} Q/E1 = {{r, v}, {s, t}, {q, u}, {p}} Q/E2 = {{r, v}, {s, t}, {q, u}, {p}} Q/E2 = Q/E1 por lo tanto Q/E1 = Q/E Q/E = {{r, v}, {s, t}, {q, u}, {p} } | {z } | {z } | {z } |{z} A B C D Al final, los estados se reagrupan en cuatro. Estos estados se renombran tal y como se muestra justo arriba y obtenemos la tabla del autómata finito determinista equivalente a A2 : f2′ →D *A *B C a A A A A b B B B B c C C B B Como podemos comprobar, los autómatas finitos mı́nimos son isomorfos. Por lo tanto, podemos afirmar que los autómatas A1 y A2 son equivalentes. Página 4 de 4