Teor´ ıa de Aut´ omatas y Lenguajes Formales 1er. Parcial

Anuncio
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
Descargar