Escolar Documentos
Profissional Documentos
Cultura Documentos
.
Ejemplo 7. Si = {1}, entonces
(w, z) w z = wz
Ejemplo 9. Si w = aba y z = bad entonces w z = ababad.
Es com un omitir el smbolo de la operaci on de concatenaci on. Por ejemplo,
en el anterior,
wz = ababad
Notemos las siguientes propiedades generales
(1) Si w, z son palabras entonces |wz| = |w| +|z|.
(2) Si w
, entonces
(a) w = w
(b) w = w
(3) En general wz = zw.
Denicion 8 (potencia). Si n N y w
, se dene
w
n
=
si n = 0
ww
n1
si n > 0
llamada la n-esima potencia de w.
Ejemplo 10. Si w = 122 entonces
w
0
=
w
1
= ww
0
= 122 = 122
w
2
= ww
1
= 122122
w
3
= ww
2
= 122122122
La igualdad entre palabras se podra denir como: si w, z
, se pone
w = z en caso de que |w| = |z| y de que tengan los mismos smbolos en la
misma posicion.
Denicion 9. Sean w, x
.
8 1. Automata nito
(1) Se dice que x es prejo de w si y
tal que
w = xy
(2) Se dice que x es prejo propio de w si x es prejo de w, pero
w = x.
Ejemplo 11. Sea w = 121. Entonces
(1) x = 1 es prejo (propio) de w;
(2) u = 12 es prejo (propio) de w;
(3) w = 121 es prejo de w, pues w = w, pero no es propio.
Denicion 10. Una cadena w
es subpalabra de z
si x, y
tales que
z = xwy
Ejemplo 12.
(1) Si w
w si w =
y
I
a si w = ax con a y y
, entonces
(wy)
I
= y
I
w
I
3. Operaciones con lenguajes 9
Proof. Por induccion sobre n = |w|. Si n = 0, entonces w = , luego
(wy)
I
= (y)
I
= y
I
mientras que
w
I
y
I
= y
I
, por denicion,
= y
I
por lo tanto (wy)
I
= w
I
y
I
.
Supongamos cierto el resultado para palabras w
0
de longitud n: esto es
(w
0
y)
I
= y
I
w
I
0
(1)
Ahora tomemos una palabra w de longitud |w| = n + 1. Entonces w = az
con a y z
{}, si n = 0
A A
n1
, si n 1
Ejemplo 15.
(1)
0
= {}
(2) Sea A = {ab} lenguaje formado por s olo una palabra. Entonces
A
0
= {}
A
1
= A A
0
= A{} = A = ab
A
2
= A A
1
= A{ab} = abab
A
3
= A A
2
= A{abab} = ababab
etcetera.
Denicion 14. Sean A, B lenguajes. Entonces
(1) El lenguaje union es:
A B = {x| x A x B}
(2) El lenguaje intersecci on es
A B = {x| x A x B}
(3) El lenguaje diferencia es
A B = {x| x A x B}
3. Operaciones con lenguajes 11
Ejemplo 16. Sea = {0, 1} y lenguajes A = {, 0, 10, 11}, B = {, 1, 0110, 11010}.
Luego,
A B = {, 0, 1, 10, 11, 0110, 11010}
A B = {, 1}
AB = {0, 10, 11}
B A = {0110, 11010}
En general, como los lenguajes son conjuntos, los lenguajes heredan todas
las propiedades y terminologa de los conjuntos.
Denicion 15. Sean A, B lenguajes sobre un alfabeto . Si A B, en-
tonces se dice que A es sublenguaje de B.
Ejemplo 17. Sea A = {a, aa, aaa, aaaa, aaaaa} y B = {a
n
| n N}, en-
tonces A es sublenguaje de B.
En general, si L es un lenguaje sobre un alfabeto entonces L es un
sublenguaje de
.
Tambien, recordemos que de la denici on de la igualdad de conjuntos pode-
mos obtener que dos lenguajes A, B son iguales: A = B si y solo si
(1) A B
(2) B A
Esta observaci on nos ayudara a demostrar el siguiente teorema.
Teorema 1. Sean A, B, C lenguajes sobre un alfabeto . Se cumple que
(1) A (B C) = (A B) (A C)
(2) (B C) A = (B A) (C A)
Proof.
(1) Por contenciones, esto probaremos que
(a) A (B C) (A B) (A C)
(b) (A B) (A C) A (B C)
(a): Si x A (B C) entonces x = w y con w A y y B C;
luego y B o y C. Si y B entonces x = wy A B; y si
y C, entonces x = w y A C, as,
x (A B) (A C)
(b): Si x (A B) (A C) entonces x A B o x A C. Si
x A B entonces x = wy con w A y y B B C, luego
x = wy con w A y y B C.
Si x A C entonces x = wy con w A y y C B C,
entonces x = wy con w A y y BC, luego x A (BC).
12 1. Automata nito
En cualquier caso
x A (B C).
(2) Tarea.
n=0
A
n
(2) La cerradura positiva de A es
A
+
=
n=1
A
n
La cerradura de Kleene se obtiene al hacer cero o mas concateneaciones de
las palabras de A, mientras que la cerradura positiva se obtiene al hacer una o
mas concatenaciones.
Ejemplo 18. A = {a}. Entonces A
0
= {}, A
1
= a, A
2
= aa, A
3
= aaa, . . .
entonces
A
= {, a, a
2
, a
3
, . . .}
mientras que
A
+
= {a, a
2
, a
3
, . . .}
Ejemplo 19. Sea un alfabeto. En particular el propio es un alfabeto
formado por las palabras de longitud 1. Luego la cerradura de Kleene de
es
n=0
n
que es junto con todas las concatenaciones de palabras sobre que es pre-
cisamente el lenguaje universal
....
lenguaje universal
=
....
cerradura de Kleene
Propiedad 3. Si A es un lenguaje sobre , entonces
(1) A
(2) A
+
A
Proof.
(1) n 0, A
n
, entonces
A
n=0
(2) forallk 1, A
k
]
n=0
A
n
= A
, entonces
A
+
=
k=1
A
0
= {},
1
= ,
2
= , . . .
por lo que
= {},
+
=
Uno podra pensar que la diferencia entre la cerradura de Kleene y la cer-
radura positiva es la palabra vaca . Esto no siempre es cierto, como puede
notarse en el siguiente ejemplo.
Ejemplo 21. Sea = {0, 1, . . . , 9}, y consideremos el lenguaje
A = {w
= A
+
.
Si k 1 y x A
k
, entonces x = w
1
w
k
con cada w
i
A cadena
conteniendo s olo 0s y 1s. Luego x contiene s olo 0s y 1s. Por lo tanto,
k 1, A
k
A .
Ademas, si k 1 y x A, entonces x =
k1
x A
k
, esto es A A
k
:
k 1, A
k
= A
Por lo que
A
+
=
n=1
A
k
= A .
14 1. Automata nito
Pero tambien, como A
0
= {} A, se sigue
A
= A
0
A
+
= A
0
A
= A
por lo tanto
A
= A = A
+
Como puede notarse del ejemplo anterior en algunos casos A
+
= A
.
Lema 1. Sean A, A
0
, A
1
, . . . una colecci on innita de lenguajes sobre .
Entonces
(1) A
n=0
A
n
=
n=0
A A
n
(2) (
n=0
A
n
) A =
n=1
A
n
A
Proof.
(1) Por demostrar
(a) A
n=0
A
n
n=0
A A
n
(b)
n=0
A A
n
A
n=1
A
n
(a): Si x A
n=0
A
n
, entoces x = w y con w A y y
n=0
A
n
,
luego existe k
0
tal que y A
k
0
, as x = wy A A
k
0
, lo que
implica que
x
n=0
A A
n
.
(b): Si x
n=0
A A
n
entonces existe k
0
tal que x A A
k
0
, por
lo que x = wy con w A y y A
k
0
, es decir y
n=0
A
n
. As
x A
n=0
A
n
Por lo tanto
A
n=0
A
n
=
n=0
A A
n
.
(2) Tarea.
Teorema 2.
A
+
= A A
= A
A
3. Operaciones con lenguajes 15
Proof.
A A
= A
n=0
A
n
=
n=0
A A
n
=
n=0
A
n+1
=
k=1
A
k
= A
+
.
y similarmente A
A = A
+
.
Ejemplo 22. Sea {A} = {ab} lenguaje sobre el alfabeto ingles. Tenemos
que
A
+
= {ab, abab, ababab, . . .} = {(ab)
i
| i 1}
el cual es a su vez un lenguaje. Podemos considerar sus potencias
(A
+
)
2
= A
+
A
+
= {ab ab, ab abab, ab ababab, . . . , abab ab, abab abab, abab, ababab, . . . , }
el cual es un sublenguaje de A
+
: (A
+
)
2
A
+
. De forma similar (A
+
)
3
A
+
, (A
+
)
4
A
+
, . . .. Este es un hecho general.
Lema 2. Sea A un lenguaje. Entonces
(A
+
)
k
A
+
, k 1
Proof. Por induccion sobre k. Si k = 1:
(A
+
)
k
= (A
+
)
1
= A
+
A
+
.
Tambien el resultado es cierto para k = 2:
(A
+
)
2
= A
+
A
+
= A
+
n=1
A
n
=
n=1
A
+
A
n
=
n=1
j=1
A
j
A
n
n=1
j=1
A
j
A
n
=
n=1
j=1
A
j+n
m=1
A
m
= A
+
Supongamos cierto que
(A
+
)
k
A
+
.
16 1. Automata nito
Por demostrar que (A
+
)
k+1
A
+
. Tenemos que
(A
+
)
k+1
= A
+
(A
+
)
k
A
+
A
+
= (A
+
)
2
A
+
Tarea 1. Sea x
. Demostrar que (x
I
)
I
= x.
Denicion 17. Si A es un lenguaje, su inverso es
A
I
= {w
I
| w A}
Propiedad 4. Si A, B son lenguajes, entonces
(A B)
I
= B
I
A
I
Proof. Por contenciones, demostraremos que
(1) (A B)
I
B
I
A
I
(2) B
I
A
I
(A B)
I
(1) Sea z (A B)
I
, entonces z = x
I
con x A B, por lo que x = yw
con y A y w B. Luego
z = (yw)
I
= w
I
y
I
B
I
A
I
Por lo tanto (A B)
I
B
I
A
I
.
(2) Sea z B
I
A
I
, entonces z = w
I
y
I
con w B y y A. Por lo
que
z = w
I
y
I
= (yw)
I
(A B)
I
.
Por lo tanto B
I
A
I
(A B)
I
.
4. Numerabilidad
Nos proponemos estudiar lo siguientes problemas:
(1) Dado un lenguaje A y x
, x A
N
la cual es inyectiva, pues cada numero natural tiene una unica representaci on
en base. De donde se sigue que
es enumerable.
Teorema 3. Si es un alfabeto entonces
es innito numerable.
En contraste todos los lenguajes que se pueden formar con no es numer-
able. Es decir, hay mucho mas lenguajes que palabras. Se puede demostrar
esto, usando lo que se llama la tecnica de diagonalizaci on.
Teorema 4. Sea un alfabeto. El conjunto de los lenguajes sobre no es
numerable.
Proof. Sea
L = {A| A es lenguaje sobre } .
Procedemos por contradicci on. Supongamos que L es numerable. Entonces
L = {A
0
, A
1
, A
2
, . . .} .
Sabemos que
= {w
0
, w
1
, w
2
, . . .}
denimos entonces el conjunto diagonal,
D = {w
i
| w
i
A
i
}
D es un lenguaje sobre
es regular
{a
i
b
j
| i 0 y j 0} = {a}
....
regular
{b}
....
regular
es regular
{(ab)
i
| i 0} = {ab}
es regular .
Ejemplo 25. Sea = {a, b, c} y A el lenguaje sobre :
A = {w
A y {a}
A
20 1. Automata nito
luego las palabras formadas por concatenaciones de potencias a
i
y bc
j
est an
en A; i.e.,
({a} {b}{c}
A
luego
{c}
({a} {b}{c}
A .
Probaremos que
A = {c}
({a} {b}{c}
({a} {b}{c}
. (2)
Sea w A, entonces w = c
i
w
para alg un i 0 y w
palabra que no
tiene a c como prejo. As, w
s, de donde
w
({a} b{c}
entonces
w = c
i
w
{c}
({a} {b}{c}
,
por lo tanto
A = {c}
({a} {b}{c}
(a bc
es
una expresi on regular por lo que bc
es regular. Finalmente
c
(a bc
es expresi on regular.
5. Lenguajes Regulares y Expresiones Regulares 21
as expresiones regulares son nombres para los lenguajes regulares.
Denicion 20. Sea un lenguaje. El lenguaje L de una expresi on regular
sobre se dene como:
(1) L() = , L() = {};
(2) Si a , L(a) = {a};
(3) Si r, s son expresiones regulares entonces
(a) L(r s) = L(r) L(s)
(b) L(rs) = L(r)L(s)
(c) L(r
) = L(r)
Para calcular los lenguajes de expresiones regulares se hace uso del orden
de precedencia:
(1) cerraduras de Kleene:
(2) concatenaciones :
(3) uniones:
Ejemplo 27.
L(a ab
)
Denicion 21. Si r es una expresi on regular entonces
r
+
= rr
Propiedad 5.
L(r
+
) = L(r)
+
Proof. Por denicion
L(r
+
) = L(rr
)
= L(r)L(r
)
= L(r)L(r)
= L(r)
+
b)
= (a b)
b
Proof. El alfabeto bajo consideracion es = {a, b}. Por denicion
L((a
b)
) = ({a}
{b})
b
esto es, palabras del tipo
a
j
1
b a
j
k
b
esto es, la palabra vaca junto con palabras que terminan en b. Este lenguaje
es la descripcion exactamente del lenguaje regular siguiente
{} ({a, b}
{b}) = L( (a b)
b)
de donde
L((a
b)
) == L( (a b)
b)
por lo tanto
(a
b)
= (a b)
r
Proof. Por la propiedad 5
L(r
+
) = L(r)
+
= L(r)
L(r)
= L(r
r)
lo que implica que r
+
= r
r.
El algebra de las expresiones regulares viene descrita en el siguiente teorema.
Teorema 5. Sean r, s, t expresiones regulares sobre . Entonces
(1) r s = s r
(2) r = r = r
(3) r r = r
(4) (r s) t = r (s t)
(5) r = r = r
(6) r = = r
5. Lenguajes Regulares y Expresiones Regulares 23
(7) r(st) = (rs)t
(8) r(s t) = rs rt y (r s)t = rs st
(9) r
= r
= r
= ( r)
= r
(r ) = (r )r
= rr
(10) (r s)
= (r
= (r
= (r
s)
= r
(sr
(11) r(sr)
= (rs)
r
(12) (r
s)
= (r s)
s
(13) (rs
= r(r s)
(14) s(r )
(r ) s = sr
(15) rr
= r
r
Proof. S olo haremos la demostracion de una de estas equivalencias. La
dem as son similares.
(11) Por demostrar que
L(r(sr)
) = L((rs)
r) (3)
Sea w L(r(sr)
) = L(r)(L(s)L(r))
entonces
w = r
0
s
1
r
1
s
2
r
2
s
n
r
n
con r
0
L(r) y cada s
i
L(s), r
i
L(r). Podemos escribir
w = (r
0
s
1
) (r
1
s
2
) (r
n1
s
n1
)r
n
(L(r) L(s))
L(r) = L((rs)
r)
Por lo tanto,
L(r(sr)
) L((rs)
r) .
Similarmente se prueba que L((rs)
r) L(r(sr)
). Se sigue en-
tonces que la ecuaci on (3) es cierta. Se concluye entonces que
r(sr)
= (rs)
t entonces r = sr t
Proof.
r = s
t = (s
+
) pues L(s
) = L() L(s
+
)
= ( ss
)t por denicion de s
+
= t ss
24 1. Automata nito
Tarea 2.
(1) De que conjunto de smbolos se derivan las frases inglesas?
(2) Por que el lenguaje vaco no es el mismo que {}?
(3) Sea = {1}. Se puede decir que para todo n umero natural n
hay alguna palabra w
. Probar que (x
I
)
I
= x.
(2) Para un lenguaje arbitrario A, que es A ?
(3) Sean A = {el, mi} y B = {caballo, casa, herradura} lenguajes so-
bre el alfabeto inges. Obtener A B, A A y A B B.
(4) Suponer que A = {, a}. Obtener A
n
para n = 0, 1, 2, 3 Cu antos
elementos tiene A
n
para n arbitrario? Cu ales son las cadenas de
A
n
para n arbitrario?
(5) Sea A = {}. Obtener A
n
para n arbitrario.
(6) Sean A = {, ab} y B = {cd} Cu antas cadenas hay en A
n
B para
n arbitrario?
(7) Sean A = {a}, B = {b}. Obtener A
n
B, AB
n
y (AB)
n
.
(8) Sean A = {}, B = {aa, ab, bb}, C = {, aa, ab} y D = el
lenguaje vaco. Obtener A B, A C, A D y A B, B C,
C D, A D. Suponer que F es un lenguaje cualquiera. Obtener
F D y F D.
(9) Bajo que condiciones A
= A
+
?
(10) Observese que para todo lenguaje A se tiene que A
cu ando
A
+
?
(11) Probar que {}
= {} = {}
+
.
5. Lenguajes Regulares y Expresiones Regulares 25
(12) Antes se obtuvo que A
= A
0
A
+
= {}A
+
. Cabra esperar que
A
+
= A{}. Probar que, en general, esta expresi on no es cierta.
Cu ando se cumplir a que A
+
= A
{}.
(13) Obtener lenguajes A, B, C tales que A (B C) = A B A C.
(14) Probar que
(a) (A
= A
(b) (A
)
+
= A
(c) (A
+
)
= A
(15) Demostrar que se cumplen las siguientes igualdades para los lengua-
jes A y B sobre el alfabeto :
(a) (A B)
I
= A
I
B
I
(b) (A B)
I
= A
I
B
I
(c) (A
+
)
I
= (A
I
)
+
(d) (A
)
I
= (A
I
)
Tarea 4.
(1) Sea = {a, b}. Lo siguiente es una denici on recursiva del lenguaje
A:
(a) A.
(b) Si x A, entonces axb y bxa pertenecen a A.
(c) Si x e y pertencen a A, entonces xy pertenece a A.
(d) No hay nada m as en A.
Probar que
(a)
A = {w
contenga
todas las palabras que tienen el doble de aes que bes
(2) Un palndromo es una cadena que se lee igual hacia adelante que ha-
cia atr as. Por ejemplo, la palabra a es un pandromo, al igual que
la cadena radar. Dar una denici on recursiva de un palndromo
(observese que es un palndromo).
(3) Probar que para los lenguajes A y B, (A B)
= (A
.
Tarea 5.
(1) Vericar, aplicando la denici on de lenguaje regular, que los sigu-
ientes son lenguajes regulares sobre = {a, b}:
(a) {a
i
| i > 0}.
(b) {a
i
| i > n} para n 0 jo.
(c) {w
= r
.
(b) Probar que (b aa
b) (b aa
b)(aba
b)
(aba
b) y a
b(a
ba
b)
son equivalentes.
(c) Sobre = {a, b, c} son equivalentes las parejas de expresiones
regulares de cada apartado?
(d) (a b)
y ((a b)a)
.
(e)
y .
(f) ((a b)c)
y (ac bc)
.
(g) b(ab ac) y (ba ba)(b c).
(6) Simplicar:
(a)
(a b)
.
(b) ((a
(b
.
(c) (a
b)
(b
a)
.
(d) (a b)
a(a b)
.
(7) Probar que (aa)
a = a(aa)
.
(8) Simplicar las siguientes expresiones regulares:
(a) ( aa)
.
(b) ( aa)( aa)
.
(c) a( aa)
a .
(d) a( aa)
( aa) a.
(e) (a )a
b.
(f) ( aa)
( aa)a a.
(g) ( aa)( aa)
( aa) ( aa).
(h) ( aa)( aa)
( aa) (a b).
(j) (aa)
a (aa)
.
(k) a
b((a b)a
b)
b.
(l) a
b((a b)a
b)
(a b)(aa)
a(aa)
b((a b)a
b)
.
6. Automatas nitos deterministas
Nuestro problema principal es determinar si una palabra pertenece o no a un
lenguaje. Por ejemplo, si A es el lenguaje de la expresion regular c
(a bc
b.
Ejemplo 30. Sea = {a, b}. Consideremos el lenguaje
A = {(ab)
i
| i 1} .
Construir un AFD que acepte unicamente a las palabras de A.
Sol. Recordemos que
A = {ab, abab, ababab, . . .}
de donde al menos la palabra ab debe, en el aut omata que construyamos,
conducir a un estado de aceptaci on. Lo que sugiere que consideremos el
diagrama
este a un no es un AFD, puesto que se requiere que el aut omata, en cada
estado, sepa a que estado nuevo se transita ante la aparici on de cualquier
letra del alfabeto, en nuestro caso a y b. Notemos que en nuetro primer
diagrama el aut omata, en el estado inicial no sabra que hacer si aparece una
b. Ninguna palabra de A tiene prejo b, luego las palabras que comiencen
con b, sin importar lo que siga, deben de ser rechazadas. Esto sugiere:
Otras palabras a rechazar son aquellas que despues de a, en lugar de con-
tinuar con b, continuen con a, lo que sugiere
6. Automatas nitos deterministas 29
Otras palabras que deben de ser aceptadas son por ejemplo abab, ababab.
La manera de crear repeticiones es introducir ciclos en el grafo:
con lo cual aceptamos las palabras del tipo (ab)
+
. Pero a un debemos rec-
hazar las palabras que al tener prejo ab continuen con b:
lo que completa nuestro aut omata nito determinista que acepta solamente
las palabras del lenguaje de (ab)
+
.
Ejemplo 31. Lo mismo que el anterior para A = (ab)
.
Sol. Ahora la palabra vaca tambien tiene que ser aceptada. La tecnica
para aceptar a es hacer al estado inicial, nal tambien:
Por lo que el aut omata pedido es
30 1. Automata nito
Notese que ahora tenemos dos estados nales.
En general cuando en un AFD se hace del estado inicial un estado nal, no
solo se va ha aceptar a la palabra vaca, puede que se acepten otras indeseables.
Por ejemplo, en el AFD,
se acepta solo a al lenguaje a(ba)
a(ba)
.
Ejemplo 32. A veces, el util etiquetar los estados. Por ejemplo
6. Automatas nitos deterministas 31
Entonces se puede representar la din amica de los estados mediante una
tabla
a b
q
0
q
1
q
2
q
1
q
2
q
0
q
2
q
2
q
2
Table 1. Tabla de transiciones
que es una forma de representar a una funcion : Q Q, donde
Q = {q
0
, q
1
, q
2
} el el conjunto de estados.
Formalmente, un AFD es:
Denicion 23 (AFD). Un automata nito determinista M es una 5-
upla:
M = (Q, , s, F, )
donde
(1) Q = {q
0
, q
1
, . . . , q
n
} es un conjunto nito de elementos llamados
estados.
(2) es un alfabeto.
(3) s Q un elemento llamado estado nal.
(4) F Q un subconjunto de estados llamados estados nales.
(5) Una funci on : Q Q, donde (q
i
, ) es el estado siguiente a
q
i
.
Ejemplo 33. En el ejemplo inmediato anterior , el aut omata nito deter-
minista es:
(1) Q = {q
0
, q
1
, q
2
}
(2) = {a, b}
(3) s = q
0
32 1. Automata nito
(4) F = {q
0
}
y es la funcion denida por la tabla 1.
Recprocamente, dado M un AFD, M = (Q, , s, F, ), se puede construir
su diagrama de transiciones como:
(1) nodos: q Q
(2) echas: si q Q y , entonces se pone
Ejemplo 34. Para el aut omata M = (Q, , s, F, ) con Q = {a, b}, =
{a, b}, s = q
0
, F = {q
0
} y denida por
a b
q
0
q
0
q
1
q
1
q
1
q
0
le corresponde diagrama de transicion
Ejemplo 35. Sea M = (Q, , s, F, ) con Q = {q
0
, q
1
, q
2
, q
3
}, = {a, b},
s = q
0
, F = {q
0
, q
1
, q
2
} y tabla de transiones
a b
q
0
q
0
q
1
q
1
q
0
q
2
q
2
q
0
q
3
q
3
q
3
q
3
luego el diagrama de transicion es:
6. Automatas nitos deterministas 33
Denicion 24. Sea M un AFD. El lenguaje aceptado por M es
L(M) = {w
| w es aceptada por M}
Ejemplo 36. Consideremos M como en el ejemplo inmediato anterior.
Puede notarse que todos los estados son de aceptaci on excepto uno; luego
todas las palabras son aceptadas excepto cuando se llega a q
3
. Y la unica
forma de llegar a q
3
es con tres bs consecutivas:
b
q
3
a
a, b
b
a
b
a
q
0
q
1
q
2
esto es
L(M) = {w
| w no tiene a b
3
como subpalabra}
Si
1
,
2
,
3
y q
0
es estado inicial, el estado resultante de analizar la
cadena es, formalmente,
(((q
0
,
1
),
2
),
3
)
esta aplicaci on se abreviara como
(q
0
,
1
3
)
mas generalmente:
Denicion 25. Sea q
i
un estado. Se denen
(1) (q
i
, ) = q
i
(2) Si w
y w = aw
con a y w
, entonces
(q
,
aw
) = ((q
i
, a), w
)
Denicion 26. Sean M
1
, M
2
dos AFD. Se dice que M
1
es equivalente a M
2
si
L(M
1
) = L(M
2
)
Ejemplo 37. Pongamos = {a}. Sea M
1
el aut omata nito determinista
dado por
a
a
34 1. Automata nito
y M
2
el dado por
a
Es facil ver que L(M
1
) = a
. Tambien L(M
2
) = a
. Luego L(M
1
) = L(M
2
)
y as M
1
es equivalente a M
2
Tarea 6.
(1) Obtener la expresi on regular que representa el lenguaje formado
por todas las cadenas sobe {a, b} que tienen un n umero par de bes.
Construir el diagrama de transici on para este lenguaje.
(2) Construir el diagrama de transici on para el lenguaje dado por c
(a
bc
b ab
. Notemos que
el lenguaje a
b ab
b ab
y tambien a (aba)
. A un m as,
acepta a ((ab)
(aba)
= (ab aba)
(aba)
| w es aceptada por M}
Las transiciones de estados pueden describirse de forma similar a los AFD
con .
Denicion 30. Sea M = (Q, , s, F, ) un AFN.
(1) Si X Q y Q se dene
(X, ) =
, si X =
qX
(q, ), si X =
(2) Si w
con w = w
con y |w
| > 0 entonces
(q, w) = ((q, ), w
)
Ejemplo 41. Si = {a, b};
(q
0
, abaab) = ((q
0
, a), baab)
= (((((q
0
, a), b), a), a), b)
Ejemplo 42. Consideremos M el AFN con alfabeto = {a, b} y diagrama
de transicion
entonces
a b
q
0
{q
2
}
q
1
{q
2
} {q
2
}
q
2
{q
4
}
q
3
{q
4
} {q
4
}
7. Automatas nitos no deterministas 39
y as,
(q
0
, ab) = ((q
0
, a), b)
= ({q
0
, q
3
}, b)
= (q
0
, b) (q
3
, b)
= {q
0
, q
3
}
= {q
0
, q
3
}
que son los posibles estados que se obtienen a partir de q
0
con transicion ab.
Examinemos la palabra abaab:
b
q
0
q
1
a
rechazo
por lo que abaab a un no se acepta. Pero
q
0
a
b
aceptada
a
a
q
3
q
4
b
lo que nos lleva a un estado de aceptacion. De aqu que abaab se acepta, i.e.,
abaab L(M)
40 1. Automata nito
Estos diagramas realmente corresponden a las siguientes ecuaciones
(q
0
, abaab) = ((q
0
, a), baab)
= ({q
0
, q
3
}, baab)
= (q
0
, baab) (q
3
, baab)
= ((q
0
, b), aab) ((q
3
, b), aab)
= ({q
0
, q
1
}, aab) (, aab)
. .. .
= (q
0
, aab) (q
1
, aab)
= ((q
0
, a), ab) ((q
1
, a), ab)
= ({q
0
, q
3
}, ab) (, ab)
= (q
0
, ab) (q
3
, ab)
= ((q
0
, a), b) ((q
3
, a), b)
= ({q
0
, q
3
}, b) (q
4
, b)
= {q
0
, q
1
} {q
4
}
= {q
0
, q
1
, q
4
}
que contiene al estado de aceptacion q
4
F, por lo que, como antes observa-
mos, abaab L(M).
8. Equivalencia entre AFD y AFN
Lo que realmente importa de los automatas no es su diagrama de transicion,
sino el lenguaje que aceptan.
Denicion 31. Sea M un AFD o AFN, sea M
si L(M) = L(M
)
Ejemplo 43. Sea = {a, b}. Sea M el aut omata nito no determinista
es facl ver que L(M) = a(a b)
.
Ahora considermos M
) = a(a b)
.
En general, si M es un AFD, entonces es un AFN, pues funcion es en
particular una relacion. Queremos probar lo recproco; esto es, si M es un AFN
entonces existe M
un AFD equivalente a M.
La idea es la siguiente: como es una relacion, entonces
(q, ) = {q
i
1
, . . . , q
is
}
esto es, induce una funcion, no de estados a estados, sino de conjuntos de
estados a conjuntos de estados:
: E E, E 2
Q
Ejemplo 44. Sea M el AFN
Tenemos que L(M) = a (ab)
+
.
Construiremos un AFD M
) = a (ab)
+
. Resulta que
a b
q
0
{q
1
, q
2
}
q
1
q
2
{q
3
}
q
3
{q
2
}
La primera la de esta tabla sugiere
42 1. Automata nito
donde hay nuevos estados marcados por {q
0
}, {q
1
, q
2
} y . Necesitamos
calcular las transiciones de estos nuevos estados. Las del estado {q
1
, q
2
} son
({q
1
, q
2
}, a) = (q
1
, a) (q
2
, b)
= =
({q
1
, q
2
}, b) = (q
1
, b) (q
2
, b)
= {q
3
} = {q
3
}
Agregamos tal informaci on en el nuevo diagrama de transicion:
Las transiciones desde son hacia :
(, a) = , (, b) = .
De nuevo, actualizamos el diagrama de transicion:
Ahora necesitamos calcular las transiciones del nuevo estado {q
3
}:
({q
,
3}, a) = {q
2
}, (q
3
, b) = {q
3
}
queda ahora el diagrama
8. Equivalencia entre AFD y AFN 43
Finalmente, necesitamos las transiciones del nuevo estado {q
2
}:
({q
2
}, a) = , ({q
2
}, b) = {q
3
}
lo que completa la construccion de M
que es un AFD:
el cual acepta el lenguaje
L(M
) = a b (ab)
+
.
Notese que los nuevos estados iniciales on aquellos que contienen a estados
inicales del aut omata original.
Hemos construido un nuevo AFD M
= (Q
, s
, F
) donde
Q
= {{q
0
}, , {q
1
, q
2
}, {q
3
}, {q
2
}}
= el alfabeto inicial
s
= {s}F
= {{q
1
, q
2
}, {q
3
}}
y la funcion de transicion es
a b
{q
0
} {q
1
, q
2
}
{q
1
, q
2
} {q
3
}
{q
3
} {q
2
}
{q
2
} {q
3
}
Donde M
es equivalente a M.
Teorema 6. Sea M = (Q, , s, F, ) un AFN. Entonces existe M
=
(Q
, s
, F
) un AFD equivalente a M.
44 1. Automata nito
Proof. Sea 2
Q
el conjunto potencia de Q, esto es 2
Q
es la coleccion de todos
los subconjuntos de Q. Se dene M
como sigue:
Q
= 2
Q
=
s
= {s}
F
= {S Q| S F = }
: Q
(S, ) = (S, )
Por demostrar que L(M
es aceptada por M
w es aceptada por M
Una cadena w
es aceptada por M
(s
, w) es un estado de aceptaci on
de M
(s
, w) F = (s, w) F = w L(M).
Tarea 7. El las siguientes tablas, los estados iniciales est an marcados con
una echa y los estados nales con un asterisco:
(1) Convertir el siguiente AFN a AFD: = {0, 1}
0 1
p {p, q} {p}
q {r} {r}
r {s}
s {s} {s}
(2) Convertir el siguiente AFN a AFD: = {0, 1}
0 1
p {q, s} {q}
q {r} {q, r}
r {s} {p}
s {p}
(3) Convertir el siguiente AFN a AFD y describir informalmente el
lenguaje que acepta: = {0, 1}:
0 1
p {p, q} {p}
q {r, s} {t}
r {p, r} {t}
s
t
Tarea 8.
9. -transiciones 45
(1) Calcule todas las transiciones (desde el estado inicial) dadas por
las cadenas babba y aabaaaba para determinar si son aceptadas por
el aut omata
a, b
q
4
q
3
q
2
q
1
q
0
b
b
a, b
a, b
,
a a
f
f
q q q
q
q
, er r
`
que lenguaje acepta dicho aut omata?
(4) Supongamos que M es un AFN que ya es determinista. Que se
obtendr a si tratamos de convertirlo en un AFD, seg un el algoritmo
expuesto?
9. -transiciones
Se puede extender la denici on de los AFN para incluir transiciones que no
dependan de ninguna entrada y sin consumir ning un smbolo. Tales se llaman
-transiciones.
Ejemplo 45. Sea M el aut omata
46 1. Automata nito
entonces a
2
L(M) pues
(q
0
, a
2
) = ((q
0
, a), a)
= ({q
0
}, a)
= ({q
0
}, a)
= (({q
0
}, a), )
= ({q
0
}, )
= {q
1
}
Hemos usado que a
2
= a
2
.
Pero tambien a
2
= aa; as
(q
0
, a
2
) = (q
0
, aa)
= ((q
,
0, a), a)
= ((q
0
, a), a)
= ({q
0
}, a)
= (({q
0
}, ), a)
= ({q
1
}, a)
=
Tambien a
2
= aa o a
2
= aa, etcetera. As, siempre en cualquier palabra
w se puede introducir y en su an alisis de aceptaci on w puede no consumir,
por , ning un smbolo del alfabeto.
El precio a pagar por permitir tales -transiciones es la indenici on de
los estados siguientes. Por ejemplo, en los caculos anteriores obtuvimos que
(q
0
, a
2
) = {q
1
} y tambien que (q
0
, a
2
) = . Cuales son entonces los
estados siguientes? Se puede resolver tal indenici on si se denen los estados
siguientes de manera mas cuidadosa.
Denicion 32. Un AFN con -transiciones M es M = (Q, , s, F, )
donde
(1) Q es un conjunto nito (de estados).
(2) s Q estado inicial
(3) F Q estados de aceptaci on
(4) es una relaci on de Q( {}) en Q.e
Ejemplo 46. Sea el aut omata
9. -transiciones 47
M es un AFN con -transiciones. Notese que se puede transitar del estado
q
2
a q
0
sin consumir ninguna letra del alfabeto, por lo que ab es aceptada
por M. A un m as, los estados siguientes a q
0
con entrada ab deben de ser
{q
0
, q
2
}.
Se puede poner en una tabla:
a b
q
0
{q
1
}
q
1
{q
2
}
q
2
{q
2
} {q
0
}
Para obtener los estados siguientes a un estado dado se deben de tener en
cuenta a los estados siguientes de las -transiciones. Por ejemplo
Los estados siguientes a q
0
con entrada a son
{q
1
, q
4
}
mientras que los estados siguentes a q
1
con entrada b son {q
2
, q
0
, q
5
}
48 1. Automata nito
En general, se pueden calcular los estados siguientes con lo siguiente:
Denicion 33. Sea q un estado. La -cerradura de q es
(c)(q) = {p | p es accesible desde q sin consumir ning un smbolo de en la entrada}
Si q
i
1
, . . . q
in
son estados se dene
( c){q
i
1
, . . . q
in
} =
n
k=1
( c)(q
i
k
)
Por denici on, todo estado es accesible desde s mismo sin consumir ning un
smbolo de entrada. Esto es,
q Q, q ( c)(q)
Ejemplo 47. En el aut omata
entonces
( c)(q
3
) = {q
3
}
( c)(q
0
) = {q
,
q
1
, q
2
}, ( c)(q
4
) = {q
4
, q
1
, q
2
}
Denicion 34. Sea q un estado y . Se denen los estados que
siguen directamente a q pasando por como el conjunto
d(q, ) = {p Q| una transcii on de q a p etiquetada por }
y si q
i
1
, . . . , q
i
k
son varios estados, se dene
d({q
i
1
, . . . , q
i
k
}, ) =
k
j=1
d(q
i
j
, )
9. -transiciones 49
Ejemplo 48. En el AFN del ejemplo anterior ?? tenemos que
d(q
0
, a) = {q
3
}, d({q
3
, q
4
}, b) = d(q
3
, b) d(q
4
, b) = {q
4
, q
0
}
d(q
0
, b) =
Notemos que
( c)(d(q, )) son los estados accesibles desde q tomando primero
una transicion sobre y luego tomando una o mas -transiciones.
d(( c)(q), ) son los estados accesibles desde q tomando una o mas
-transiciones y luego una transicion sobre .
( c)(d(( c)(q), )) son los estados accesibles desde q primero
tamando una o m as -transiciones luego siguiendo con una transci on
y luego tomando una o mas -transiciones. As:
( c)(d(( c)(q), )) son los estados siguientes a q con entrada
.
Ejemplo 49. Para calcular los estados siguientes a q
0
con entrada a,
primero calculamos su -cerradura:
( c)(q
0
) = {q
0
, q
1
}
ensieguida los estados que siguen directamente pasando por a
d(( c)(q
0
), a) = d(q
0
, a) d(q
1
, a) = {q
3
, q
4
}
y nalmente la -cerradura de estos:
( c)(d(( c)(q
0
), a)) = ( c)(q
3
) ( c)(q
4
)
= {q
3
, q
1
} {q
4
, q
4
}
= {q
1
, q
3
, q
4
, q
5
}
A partir de un AFN M con -transiciones se puede denir un AFN M
sin
-transiciones tal que L(M
) = L(M).
Ejemplo 50. Sea M el siguiente
50 1. Automata nito
sea su relaci on de transicion. Vamos a denir un M
con relaci on de
transicion
(q
0
, a) = {q
1
, q
3
, q
4
, q
5
}
(q
0
, b) = ( c)(d( c)(q
1
, b)); donde
( c)(q
1
) = {q
1
}, d({q
1
}, b) = {q
2
}, ( c)(q
2
) = {q
2
}
por lo que
(q
0
, b) = {q
2
}
(q
1
, a):
( c)(q
1
) = {q
1
}
d(q
1
, a) = {q
4
}
( c)(q
4
) = {q
4
, q
5
}
(q
1
, a) = {q
4
, q
5
}
(q
1
, b):
( c)(q
1
) = {q
1
}
d(q
1
, b) = {q
2
}
( c){q
2
} = {q
2
}
(q
1
, b) = {q
2
}
(q
2
, a):
( c)(q
2
) = {q
2
}
d(q
2
, a) =
( c) =
(q
2
, a) = .
(q
2
, b) = .
9. -transiciones 51
(q
3
, a):
( c)(q
3
) = {q
3
, q
1
}
d({q
3
, q
1
}, a) = d(q
3
, a) d(q
1
, a) = {q
4
} = {q
4
}
( c)(q
4
) = {q
4
, q
5
}
(q
3
, a) = {q
4
, q
5
}
(q
3
, b):
( c)(q
3
) = {q
3
, q
1
}
d({q
3
, q
1
}, b) = d(q
3
, b) d(q
1
, b) = {q
4
} {q
2
} = {q
4
, q
2
}
( c){q
4
, q
2
} = ( c)(q
4
) ( c)(q
2
)
. .. .
= {q
4
, q
5
}
(q
3
, b) = {q
4
, q
5
}
(q
4
, a):
( c)(q
4
) = {q
4
, q
5
}
d(q
4
, a) d(q
5
, a) =
(q
4
, a) = .
(q
4
, b):
( c)(q
4
) = {q
4
, q
5
}
d(q
4
, b) d(q
5
, b) =
(q
4
, b) =
(q
5
, b) =
(q
5
, a) = .
Obtenemos que M
es
Notese que
L(M) = {b, ab} = L(M
).
52 1. Automata nito
Teorema 7. Sea
M = (Q, , s, F, )
un AFN con -transiciones. Entonces existe
M
= (Q
, s
, F
)
un AFN sin -transiciones tal que
L(M
) = L(M).
Proof. Se denen
Q
= Q,
= , s
= s
F
= {q Q| ( c)(q) F = }
y si q Q y entonces
(q, ) = ( c)
d(( c)(q), )
) w L(M).
Si w L(M
) entonces
(s
, w) F
= , esto es
(s, w) {q | ( c)(q) F = } =
por lo que existe q
i
Q tal que
q
i
(s, w) y ( c)(q
i
) F =
lo segundo indica que q
i
F o a q
i
le sigue un estado nal despues de una
o m as -transiciones:
Lo que implica que w L(M). Recprocamente es similar.
Ejemplo 51. Sea
9. -transiciones 53
podemos encontrar M
son F
= {q | ( c)(q) F = }:
q ( c)(q) ( c)(q) F =
q
0
{q
0
, q
1
, q
2
} {q
2
}
q
1
{q
1
, q
2
} {q
2
}
q
2
{q
2
} {q
2
}
q
3
{q
3
}
q
4
{q
4
, q
1
, q
2
} {q
2
}
de donde F
= {q
0
, q
1
, q
2
, q
4
}. Actualizamos nuestro diagrama de transicion:
Ahora, recordemos que
(q
0
, a):
( c)(q) = {q
0
, q
1
, q
2
}
d({q
0
, q
1
, q
2
}, a) = d(q
0
, a) d(q
1
, a) d(q
2
, a) = {q
3
} = {q
3
}
( c)(q
3
) = {q
3
}
(q
0
, a) = {q
3
}
(q
0
, b):
( c)(q
0
) = {q
0
, q
1
, q
2
}
d({q
0
, q
1
, q
2
}, b) = = ,
(q
0
, b) = .
(q
1
, a):
( c)(q
1
) = {q
1
, q
2
}
d({q
1
, q
2
}, a) = d(q
1
, a) d(q
2
, a) = = ,
(q
1
, a) = .
(q
1
, b) = .
(q
2
, a) = .
(q
2
, b) = .
(q
3
, a) :
( c)(q
3
) = {q
3
}
d(q
3
, a) =
(q
3
, a) = .
(q
3
, b):
d(q
3
, b) = {q
4
}
( c)(q
4
) = {q
4
, q
1
, q
2
}
(q
3
, b) = {q
4
, q
1
, q
2
}.
(q
4
, a):
( c)(q
4
) = {q
4
, q
1
, q
2
}
d({q
4
, q
1
, q
2
}, a) = d(q
4
, a) d(q
1
, a) d(q
2
, a) =
(q
4
, a) = .
(q
4
, b):
d({q
4
, q
1
, q
2
}, b) = d(q
4
, b) d(q
1
, b) d(q
2
, b) = {q
0
}
( c)(q
0
) = {q
0
, q
1
, q
2
}
(q
4
, b) = {q
0
, q
1
, q
2
}.
9. -transiciones 55
Hemos obtenido M
:
Tarea 9.
(1) Calcular (q
0
, abb) y (q
0
, aba
2
b) para el AFN siguiente
q
5
q
4
q
3
q
2
q
1
q
0
b
b
b
b
a
a a
e r r
r r
r r
,
`
`
`
`
`
-
(2) Obtener ( c)({q
1
, q
4
}) y ( c)(d(q
3
, b)) para el AFN siguiente
f
b
b
a
q
4
q
3
q
2
q
1
q
0
r
r
r r
r
`
`
`
` `
(3) Usar la tecnica estudiada para calcular (q
3
, b) en
f
b
a
q
4
q
3
q
2
q
1
q
0
r
r
r r
r
(4) Para el AFN dado en la gura siguiente
(a) obtener la tabla de transici on para
(b) obtener la -cerradura de q
i
para i = 0, 1, 2
(c) calcular (q
0
, a), (q
0
, b) y (q
0
, c).
c
b
a
q
2
q
1
q
0
,
er r r
56 1. Automata nito
(5) Para el AFN del ejercicio inmediato anterior, obtener el AFN que
se obtiene al eliminar las -transiciones. Dar la tabla para
.
10. Automatas nitos y expresiones regulares
Se demostrara que (teorema de Kleene):
(1) Si M es un automata, entonces L(M) es regular.
(2) Si L es regular, entonces existe un AF M tal que L(M) = L.
Es decir, que los lenguajes aceptados por loa automatas nitos son exactamente
los lenguajes regulares.
Ejemplo 52. Sea = {a, b}.
(1) Construir M
1
un AFN tal que L(M) = {a}.
(2) Construir M
2
un AFN tal que acepte s olo al lenguaje vaco.
(3) Construir un M
3
un AFB tal que L(M
3
) = {}.
(4) Construir M
4
un AFD tal que {a
4
}.
Sol.
(1)
(2)
(3)
(4)
es decir
10. Automatas nitos y expresiones regulares 57
En el siguiente ejemplo se ilustra un procedimiento para construir un automata
que acepte la uni on de lenguajes.
Ejemplo 53. Sean
y
Construir M un AFN tal que L(M) = L(M
1
) L(M
2
).
Sol. Tenemos que L(M
1
) = ab
, L(M
2
) = (ab)
. El M pedido es
donde claramente L(M) = L(M
1
) L(M
2
) = ab
(ab)
.
Teorema 8. Sean M
1
= (Q
1
,
1
, s
1
, F
1
,
1
), M
2
= (Q
2
,
2
, s
2
, F
2
,
2
) dos
AFN. Entonces existe M un AFN tal que
L(M) = L(M
1
) L(M
2
).
58 1. Automata nito
Proof. Se construira M como un AFN con -transiciones. Sea
M = (Q, , s, F, )
donde
Q = Q
1
Q
2
{s}, con s Q
1
Q
2
=
1
s
F
0
= F
1
F
2
=
1
2
{(s, , s
1
), (s
0
, , s
2
)}
es decir, se dene como: si ,
(q, ) =
1
(q, ), si q Q
1
2
(q, ), si q Q
2
(s, ) = , (s, ) = {s
1
, s
2
}.
Tenemos que probar que
L(M) = L(M
1
) L(M
2
).
Sea w
1
(q, ) si q Q
1
y
1
2
(q, ) si q Q
2
y
2
otro caso.
(q, ) =
{s
2
} si q F
1
si q F
2
.
Por demostrar que
L(M) = L(M
1
)L(M
2
)
es decir, que para w
,
w L(M) w L(M
1
)L(M
2
).
() Si w L(M
1
)L(M
2
) entonces w = xy con x L(M
1
) y y L(M
2
);
en particular x
1
y y
2
. Podemos escribir
w = xy
luego
(s, w) = (((s, x), ), y). (4)
Como x
1
, entonces
(s, x) = (s
1
, x)
=
1
(s
1
, x)
y como x L(M
1
) entonces (s
1
, x) F
1
= , por lo que
1
(s
1
, x) = {. . . , q
....
F
1
, . . .}
y
((s, x), ) = ({. . . , q, . . .}, )
= ( q
....
F
1
, )
= {s
2
}
Usando la ecuaci on (4),
10. Automatas nitos y expresiones regulares 61
Figure 2. M
(s, w) = (s
2
, y)
= (s
2
, y)
pues y
2
. Pero
2
(s
2
, y) F
2
= , luego
(s, w) F = (s, w) F
2
=
lo que implica que
w L(M).
() Supongamos que w L(M) entonces
(s, w)
. .. .
(s
1
,w)
F =
es decir, las transiciones indicadas por w deben de pasar del estado
s
1
en M
1
a un estado de aceptaci on en M
2
: la unica forma de pasar
de M
1
a M
2
es usando las -transiciones que ligan a los estados
nales de M
1
con el inicial de M
1
(ver gura 2). Por lo que w debe
primero de transitar hacia los estados de F
1
y luego hacia F
2
. Esto
es
w = xy
con
1
(s
1
, x) F
1
= y
2
(s
2
, y) F
2
= . Es decir x L(M
1
)
y y L(M
2
). Por lo tanto
w = xy L(M
1
)L(M
2
)
.
(1)
62 1. Automata nito
(2)
Sol.
(1) Tenemos que L(M) = {a}. Por lo que tenemos que construir M
1
tal que L(M
1
) = a
. Tal M
1
es:
(2) Tenemos que L(M) = {ab, ac}. Queremos M
1
un AFN tal que
L(M
1
) = (ab ac)
. Tal es
El ejemplo anterior ilustra el algoritmo subyacente en la demostracion del
siguiente teorema.
Teorema 10. Si M = (Q, , s, F, ) es un AFN, entonces existe M
1
=
(Q
1
,
1
, s
1
, F
1
,
1
) tal que L(M
1
) = L(M)
.
10. Automatas nitos y expresiones regulares 63
Proof. Se le a nade un nuevo estado a M:
Q
1
= Q {s
1
} con s
1
Q
1
1
=
s
1
F
1
= {s
1
}
se le a naden -transiciones de los estados nales a s
0
:
Si
1
, q Q
1
:
1
(q, ) =
(q, ) si q Q
otro caso.
(q, ) =
{s
1
} si q F
{s} si q = s
1
otro caso.
Tenemos que demostrar que
w L(M
1
) w L(M)
Hemos demostrado:
Teorema 11. Los lenguajes aceptados por los automatas nitos contienen
a
(1) , {}, los lenguajes unitarios {a}, a .
(2) Adem as tales elnguajes son cerrados con respecto a la uni on, con-
catenaci on y cerradura de Kleene.
Corolario 1. Si r es una expresi on regular entonces existe M un aut omata
nito tal que r = L(M).
Proof. Las expresiones regulares se contruyen a partir de , {} y los
lenguajes unitarios {}, con cerrauras uniones y concatenaciones;
y para tales construcciones existen aut omatas que las aceptan.
Tarea 10.
(1) Obtener un AFN que acepte .
(2) Obtener un AFN que acepte {a}. Obtener otro AFN que acepte {b}.
Usar las tecnicas vistas para unir estos AFN en uno que acepte el
lenguaje {a, b}.
(3) Obtener un AFN que acepte (a b)
(aba)
+
.
64 1. Automata nito
(4) Obtener un AFN que acepte todas las cadenas de la forma bow,
bowwowwow, bowwowwowwowwow, . . .. Conseguir un AFN que
acepte todas las cadenas de la forma ohmy, ohmyohmy, ohmyohmyohmy, . . ..
Unir los dos AFN para que se acepte la unini on de los dos lengua-
jes. Tengase en cuenta que los smbolos de un alfabeto no tiene por
que ser caracteres de longitud uno.
(5) Sea M
1
dado por
q
4
q
3
q
2
q
1
a
a
b
b
b
f
e
d r r
r r
`
y M
2
dado por
p
3
p
2
p
1 b a
a
f
r r r
Obtener un AFN que acepte L(M
1
)L(M
2
). Obtener un AFN que
acepte L(M
2
)L(M
1
).
(6) Sean M
1
=
{q
1
, q
2
, q
3
}, a, b, q
1
, {q
1
},
1
y M
2
=
{p
1
, p
2
, p
3
, p
4
}, {0, 1}, p
1
, {p
1
, p
2
},
2
,
donde
1
y
2
viene dados por las tablas siguientes:
1
a b
q
1
{q
2
, q
3
}
q
2
{q
1
}
q
3
{q
3
} {q
3
}
2
0 1
p
1
{p
2
} {p
3
, p
4
}
p
2
{p
3
, p
4
}
p
3
{p
2
}
p
4
{p
3
}
Obtener un AFN que acepte L(M
1
)L(M
2
). Obtener un AFN que
acepte L(M
2
)L(M
1
)L(M
1
). Obtener nalmente, un AFN que acepte
L(M
1
)
2
L(M
1
).
(7) Obtener una AFN para (ab)
(bb a)
= (Q, , s, Q F, ). Es M
un AFD o un AFN?
11. Lema de Arden 65
Obtener un AFD que acepte ab
ab
ab.
11. Lema de Arden
Denicion 35. Sea M = (Q, , s, F, ) un AFN con estado inicial s = q
0
.
Sea q
i
Q. Se dene
A
i
= {w
|, (q
i
, w F = }
i.e., A
i
es el conjunto de cadenas que desde q
i
llegan a un estado de aceptaci on.
El conjunto A
i
se llama cadenas aceptadas por el estado q
i
.
Notemos que
A
0
= L(M)
Si q
i
F, entonces A
i
.
Ejemplo 56. En el AFN siguiente
tenemos que
A
5
= , A
4
= {}, A
3
= {a}
A
2
= {}, A
1
= {b}, A
0
= {ba, ab}.
Si q
j
(q
i
, ) entonces A
j
A
i
, pues, si w A
j
entonces w = x
para alg un x A
j
, esto es (q
j
, x) F = . Luego
(q
i
, w) F = ((q
i
, ), x) F
(q
j
, x) F
=
66 1. Automata nito
Por lo que
A
i
=
{A
j
| q
j
(q
i
, )} (5)
Ejemplo 57. En el AFN del ejemplo anterior 47, usando la ecuaci on (5)
A
0
= aA
1
bA
3
, A
1
= bA
2
aA
5
, A
3
= aA
4
bA
5
A
2
= aA
5
bA
5
, A
4
= aA
5
bA
5
A
5
=
este es un sistema de cuaciones que se puede resolver por sustitucion regre-
siva:
A
4
= , A
3
= a, A
2
= , A
1
= b
L(M) = A
0
= ab ba
es decir, hemos calculado L(M) = ab ba.
A veces, resultan ecuaciones autorecursivas. Por ejemplo, en
resulta, usando de nuevo la ecuacion (5),
A
0
= aA
0
bA
1
, A
1
=
A
0
= aA
0
b
para resolver tales ecuaciones autorecursivas se usa el lema de Arden.
Lema 3 (de Arden). Una ecuaci on de la forma
X = AX B (6)
donde A tiene como soluci on unica a
X = A
B
Proof.
11. Lema de Arden 67
(1) Primero notemos que X = A
B = (A
+
)B
= A
+
B B
= AA
B B
= A(A
B) B
(2) Ahora supongamos que hay otra soluci on a (6) y llamemosla Y .
Esto es
Y = AY B
con X = A
B = Y . Entonces
X Y = AX B AY B
= A(X Y ) B
esto es S = X Y es tambien soluci on y es m as grande que X,
pues X S. Podemos escribir
S = A
B C
donde C = S A
B = y A
B C = .
Luego, como S es soluci on.
S = AS B
y
A
C = AA
B AC B
= A
+
B AC B
= (A
+
)B AC
= A
B AC
por lo que
(A
B C) C = (A
B AC) C
= (A
B C) (AC C)
= AC C
68 1. Automata nito
y entonces
C = AC C AC
es decir
C AC
Sea w C tal que |w| es mnima; entonces w = aw
0
con a A y
|a| > 0 pues A. Luego
|w| = |a| +|w
0
| > |w
0
|
|w| > |w
0
|
lo cual es imposible, pues |w| es mnima.
Por lo tanto X = A
B es la soluci on unica.
b. Es decir
L(M) = a
b.
Ejemplo 59. En M el AFN siguiente, calcule L(M).
Proof.
A
0
= aA
1
A
1
= cA
2
bA
3
A
2
= A
0
A
3
= A
0
11. Lema de Arden 69
A
1
= cA
0
bA
0
= cA
0
bA
0
= (c b)A
0
y
A
0
= a(c b)A
0
y como L(a(c b)) entonces podemos usar el lema de Arden y obtener
A
0
= (a(c b))
= (ac bc)
= b
A
3
= aA
3
( bb
)
= aA
3
b
lo que implica,
A
3
= a
y
A
2
= = aa
bb
= a
+
b
b
+
A
1
= aa
+
b
ab
bb
70 1. Automata nito
por lo tanto,
A
0
= a
2
a
+
a
2
b
ab
+
(bb a)
= (Q, , s, Q F, ). Es M
un AFD o un AFN?
Obtener un AFD que acepte ab
ab
ab.
(4) Obtener una expresi on regular para el lenguaje aceptado por el
aut omata nito siguiente:
b b b
b
b
b b
a
a
a
a
a a a a
g
f
r
r
r
r r r
r r r r r
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
(5) Obtener una expresi on regular para el AFD siguiente:
a, b
f
a
a
b b
r
r r
12. Propiedades de los lenguajes regulares 71
(6) Obtener una expresi on regular para los lenguajes aceptados por cada
uno de los aut omatas siguientes:
(a)
f
q
3
q
2
q
1
a
b
a, b
a, b
`
r r r
(b)
i
b
,
a
a
b
b
a
q
2 q
3
q
1
s s
s
`
-
`
`
`
`
(c)
g
q
2
q
3
q
1
b
b
b
a
a
a
g
r
r r
>.
(d)
f
a, b
b
b
b
b
a a
a
a
q
5
q
4
q
3
q
2
q
1
r r r r r ,
`
(e)
e
a
a
a
a, b
b
b
b
q
4
q
3
q
2
q
1
r
r r
r
`
,
,
12. Propiedades de los lenguajes regulares
12.1. Lema del bombeo. El lema del bombeo permite mostrar que no todos
los lenguajes son regulares.
Lema 5 (del bombeo). Sea L un lenguaje regular. Entonces existe n con-
stante tal que w L con |w| n se obtiene que
w = uvx con |v| 1 y |uv| n
72 1. Automata nito
y adem as
i, uv
i
x L.
Proof. Si L es nito entonces existe m la mayor de las longitudes de las
palabras de L. Se pone n = m + 1 y el lema se cumple por vacuidad (no
hay palabras, en L, de longitud n).
Si L es innito, entonces, por el teorema de Kleene, existe M un AFD
tal que L = L(M). Sea
M = (Q, , s, F, ).
Denimos n = |Q| el n umero de estados de M. Si w L con |w| n
entonces
w = a
1
a
|w|1
a
|w|
con cada a
i
. Denimos adem as q
1
, q
2
, . . . , q
|w|
como los estados que
resultan de las transiciones indicadas por w, esto es:
q
1
= (s, a
1
), q
2
= (q
1
, a
2
), . . . , q
|w|
= (q
|w|1
, a
|w|
).
Puesto que w L(M) entonces q
|w|
F:
Como s olo hay n estados, los estados s, q
1
, . . . , q
n
, . . . , q
|w|
no pueden ser
todos diferentes, pues en tal caso tendramos |w| + 1 > n: m as estados que
n!. Por lo que algunos de estos se repiten: existen j, k tales que 1 j < k
n |w| tales que q
j
= q
k
. Lo que obliga la aparici on de un ciclo:
Denimos
u = a
1
a
j
v = a
j+1
a
k
x = a
k+1
a
|
w|
12. Propiedades de los lenguajes regulares 73
Entonces
w = uvx
Como v corresponde al ciclo, y este existe entonces |v| > 1. Ademas
|uv| = k n.
Finalmente notemos que u lleva el estado inicial sl estado que se repite q
j
,
luego x continua con este estado hasta lllevarlo al estdoo de aceptaci on q
|w|
;
(s, ux) = ((s, u), x)
= (q
j
, u)
= (q
k
, x)
= q
|w|
F
por lo que ux L. Similarmente, como v
2
lleva el estado q
j
al estado
q
k
entonces uv
2
x tambien se acepta. En general, si i 0 entonce
(s, uv
i
x) = (((s, u), v
i
), x)
= ((q
j
, v
i
), x)
= (q
k
, x))
= q
|w|
F,
por lo que uv
i
x F.
Ejemplo 61. Sea = {0, 1} y L el lenguaje de todas las cadenas con el
mismo n umoer de 0s que de 1s. Demostrar que L no es regular.
Proof. Por contradicci on: si L fuera regular entonces existe n tal que se
cumple el lema del bombeo. Esto es las palabras de longitud m as grande
o igual a n se descomponen en tres partes con ciertas caractersticas. En
particular q = 0
n
1
n
L es una palabra de longitud |w| = 2n > n, luego tal
se puede descomponer en tres partes u, v, x tales que
w = 0
n
1
n
= uvx
con |uv| n, |v| > 1 y uv
i
x L, i 0. Como uv es la parte al principio
de 0
n
1
n
y |uv| n entonces uv est a formada s olo por ceros, por lo que x,
que ess la parte nal de w, debe de tener todos los unos:
w = 0 0
. .. .
uv
0 01 1
. .. .
x
Pero para i = 0, ux L, por lo que ux tiene n unos, de donde debe de tener
n ceros que son los de u. Se deduce entonces que v no contribuye con ning un
cero a w = uvx. Esto es v = , lo cual contradice el elma del bombeo. Por
lo tanto L no es regular.
74 1. Automata nito
Ejemplo 62. Sea
L = {a
i
2
| i 1}
entonces L no es un lenguaje regular.
Proof. Supongamos que L es regular. Existe una constante n tal que
cualquier palabra w L con |w| n se descompone seg un las caractersticas
del lema del bombeo.
Por denicion de L tenemos que a
n
2
L. Luego a
n
2
se puede decom-
poner como
a
n
2
= uvx
con |uv| n y uv
i
x L, i 0.. En particular uv
2
x L. Por lo que, para
alg un k entero |uv
2
x| = k
2
. Luego,
n
2
= |a
n
2
|
= |uvx|
< |uv
2
x|
= |u| +|v| +|v| +|x|
= |uvx| +|v|
n
2
+n
pues n |uv| |v|, Se sigue que
n
2
< |uv
2
x| n
2
+n
< n
2
+ 2n + 1
= (n + 1)
2
entonces
n
2
< |uv
2
x|
. .. .
k
2
< (n + 1)
2
estp es, n
2
< k
2
< (n+1)
2
, i.e., n < k < n+1 con k entero: un absurdo.
13. Otra version del lema del bombeo
Teorema 13. Sea L = {a
n
b
n
| n 0} = {, ab, aabb, aaabbb, . . .}. Entonces
B no es un lenguaje regular.
Dem. Por contradicci on. Supongamos que B es regular. El teorema de
Kleene asegura que existe M un AFD tal que L = L(M). Pongamos
M = (Q, , s, F, ).
y sea k el n umero de elementos de Q. Consideremos N >> k (N mucho
mayor que k) y la palabra w = a
N
b
N
. Evidentemente w L y w es aceptada
13. Otra versi on del lema del bombeo 75
por M. Consideremos los primeros estados que se emplean en la aceptaci on
de w:
(s, a) = r
1
Q,
(s, a
2
) = r
2
Q,
.
.
.
(s, a
N
) = r
N
(s, a
N
b) = r
N+1
.
.
.
(s, a
N
b
N
) = r
2N
F.
Tenemos que
{r
1
, r
2
, . . . , r
N
} Q
luego como N >> k y el principio de las casillas, se sigue que los estados r
i
no pueden ser diferentes entre s: se deben de repetir. Esto es: existen i, j
tales que 1 i < j N y
r
i
= r
j
. (7)
Esto indica que en el camino de las transiciones indicadas por w = a
N
b
N
,
desde estado inicial, se forma un bucle:
a a a
a
.
.
.
a
a
a
a
s r
2
r
i
= rj
r
i+1
r
j1
r
1
a b
por lo que el camino que usa el bucle es prescindible, i.e., a
N(ji)
b
N
L.
En efecto:
(s, a
N(ji)
) = (s, a
Nj+i
)
= (s, a
i
a
Nj
)
= ((s, a
i
), a
Nj
)
= (r
i
, a
Nj
)
= (r
j
, a
Nj
)
= ((s, a
j
), a
Nj
)
= (s, a
j
a
Nj
)
= (s, a
N
),
76 1. Automata nito
luego
(s, a
N(ji)
b
N
) = ((s, a
N(ji)
), b
N
) = (s, a
N
b
N
) F
por lo que a
N(ji)
b
N
L(M) = L: absurdo.
De hecho la prueba del teorema anterior se puede usar como un hecho
general: el lema del bombeo. Veamos otra vez tal prueba en otro ejemplo.
Ejemplo 63. Sea C = {w {a}
A y |y| k.
(3) El demonio elige palabras u, v, w tales que b
k
= y = uvw con v =
De aqu se deduce que u = b
, v = b
m
, w = b
n
con m > 0.
13. Otra versi on del lema del bombeo 79
(4) Nosotros tenemos que responder con un n umero i 0 tal que nos
haga ganar el juego. El ganar o perder depende de si la contate-
naci on xuv
i
wz est a o no en el lenguaje A. Calculemos tal concate-
naci on:
xuv
i
wz = a
k
b
b
im
b
n
= a
k
b
b
m
b
n
b
imm
= a
k
b
k
b
imm
= a
k
b
k+(i1)m
y esta palabra no pertenecera a A cuando por ejemplo, i = 2.
Respondemos con i = 2.
(5) Se calcula xuv
i
wz para saber quien gan o el juego:
xuv
i
wz = xuv
2
wz
= a
k
b
b
2m
b
n
= a
k
b
b
m
b
n
b
m
= a
k
b
k
b
m
= a
k
b
k+m
A
As que nosotros ganamos, esto es, A es no regular.
Tarea 12.
(1) Probar que el lenguaje
L = {a
p
| p es primo}
no es regular. item Dewterminar si los siguientes lenguajes son
regulares y decir o probar por que si o por que no.
(a) {a
i
b
2i
| i 1}
(b) (ab
i
| i i
(c) {a
2n
| n 0}
(d) {a
2
n
| n 0}
Chapter 2
Lenguajes
Independientes del
Contexto
1. Gramaticas regulares
Un automata nito puede considerarse como un generador de lenguajes: si M
es un AF entonces genera a L(M). Por ejemplo, consideremos
es tal que
L(M) = a(a
)b
Las cadenas aceptadas por M se empiezan a producir como:
S aE
81
82 2. Lenguajes Independientes del Contexto
(la echa se leeera produce), donde S es un smbolo lallamdo inicial y E es un
smbolo llamado no terminal. A su vez, el smbolo E tiene dos posibilidades
subsecuentes:
E A
o
E B
dependiente de la -transicion hacia q
3
o q
4
, donde A y B son tambien smbolos
no terminales. Si A indica el camino superior, tenemos
A aA
o
A b
donde ahora b es un smbolo terminal. Similarmente, para el camino inferior,
B bB
o
B b
En resumen, tenemos
S aE
E A
E B
A aA
A b
B bB
B b
En forma mas compacta, si =:
(1) S aE
(2) E A| B
(3) A aA| b
(4) B bB| b
las anteriores se consideran regas de substituci on para la generacion de
cadenas. Por ejemplo: tomemos S:
S
la substituimos por aE:
aE
1. Gramaticas regulares 83
luego substituimos A por E (tambien pudimos haber substituido E por B):
aA
luego substituimos A por aA:
aaA
y luego A por b:
aab
Todo este proceso de substituciones se puede abreviar como
S
(1)
aE
(2)
aA
(3)
aaA
(3)
aab
El smbolo se lee deriva.
Tambien la cadena a
3
b se puede generar como
S
(2)
aE
(2)
aA
(3)
aaA
(3)
aaaA
(3)
aaab
Denicion 36. Si w
, se usa S
w para indicar que w se gener o a
partir de S en cero o m as etapas.
Ejemplo 65. S
a
2
b, S
a
3
b.
En las producciones hay smbolos de un alfabeto . Tales se llaman ter-
minales para indicar que no son suceptibles a ser substituidos. Los smbolos
que s pueden serlo se llaman no terminales. El smbolo inicial S es siempre
no terminal.
La generacion de cadenas se hace de izuierda a derecha, por lo que en las
producciones, los smbolos no terminales deben de aparecer a la derecha.
Denicion 37. En la producci on
A
84 2. Lenguajes Independientes del Contexto
A se llama cabeza de la producci on y se llama cuerpo de la pro-
ducci on.
Denicion 38. Una gramatica regular es una 4-tupla,
G = (, N, S, P)
donde
es un alfabeto
N un conjunto nito de smbolos no terminales
S N llamado smbolo inicial
P es una colleci on de reglas de substituci on llamadas poducciones
que son de la forma
A
con A N y ( N)
tal que
(1) u tiene un no terminal como m aximo
(2) si contiene un no terminal, este est a en el exremo derecho.
Se pude decir que en la producci on A ,
(N )
con terminal.
Denicion 39. El lenguaje generado por G se denota por L(G) y este
es
L(G) = {w
| S
w}
Ejemplo 66. Sea G = (, N, S, P) gram atica regular donde
= {a, b}, N = {S, A}
y las producciones son
P : S bA
A aaA| b |
entonces
S bA
baa
baab
por lo que baab L(G). Tambien,
S bA
baaA
baaaaA
baaaab
1. Gramaticas regulares 85
, b(aa)
2
b L(G). En general,
S bA
baaA
b(aa)
2
A
.
.
.
b(aa)
n
A
b(aa)
n
b
por lo que
n 1, ba
2n
b = b(aa)
n
b L(G).
Tambien
S bA
baaA
b(aa)
2
A
.
.
.
b(aa)
n
A
b(aa)
n
= b(aa)
n
= ba
2n
L(G).
Notese que
S bA
b = b L(G)
y
S bA
bb = b
2
L(G)
por lo que
b(a
2
)
( b) = b(a
2
)
b(a
2
)
b L(G)
Recprocamente L(G) b(a
2
)
b b(a
2
)
.
Las producciones son pares: en el ejemplo anterior
P = {(S, bA), (A, aaA), (A, b), (A, )}.
b.
2. Gramaticas regulares y lenguajes regulares
Supongamos que L es un lenguaje regular. Se puede obtener una gramatica
regular que genera L. Para esto sera util M un AFD tal que L = L(M).
Supongamos que M = (Q, , s, F, ). Se dene G = (N, , S, P) mediante
N = Q, = , S = s
P : q Q,
q ap si (q, a) = p
q si q F
Ejemplo 67. L = a
b es
q
0
aq
0
| bq
1
q
1
| aq
2
| bq
2
q
2
aq
2
| bq
2
donde q
0
, q
1
, q
2
son no terminales. En efecto, tenemos el siguiente teorema
general
Teorema 16. Si M es un AFD y G la gram atica descrita anteriormente,
entonces
L(M) = L(G).
2. Gramaticas regulares y lenguajes regulares 87
Proof. Si w L(M) entonces w =
1
n
con cada
i
. As (s,
1
n
) =
p F. Pongamos s = q
0
y
(q
0
,
1
) = q
1
(q
1
,
2
) = q
2
.
.
.
(q
n2
,
n1
) = q
n1
(q
n1
,
n
) = q
n
= p
eso es:
Los anteriores inducen las siguientes producciones en G:
0) q
0
1
q
1
1) q
1
2
q
2
.
.
.
n 2) q
n2
n1
q
n1
n 1) q
n1
n
q
n
n) p = q
n
luego
s
(0)
1
q
1
(1)
1
2
q
2
(2)
1
3
q
3
.
.
.
(n1
1
2
n
q
n
(n)
1
2
n
=
1
2
n
lo que implica que w =
1
2
,
n
es generada por G, i.e., w L(G).
Hemos demostrado
L(M) L(G).
88 2. Lenguajes Independientes del Contexto
Recprocamente, supongamos w L(G) entoncea w fue derivada como
s = q
0
1
q
1
1
2
q
2
1
3
q
3
.
.
.
1
n
q
n
1
n
=
1
n
= w
luego
(s, w) = (s,
1
n
)
= ((s,
1
),
2
n
)
= (q
1
,
2
n
) pues s
1
q
1
(s,
1
) = q
1
= ((q
1
,
2
),
3
n
) pues q
1
2
q
2
(q
1
,
2
) = q
2
= (q
n1
,
n
)
= q
n
F pues q
n
s olo es posible con q
n
F.
Por tanto w L(M). Hemos demostrado
L(G) L(M).
2
q
2
q
n1
n
B
2. Gramaticas regulares y lenguajes regulares 89
(2) Si A
1
n
(cadena de terminales) entonces se a naden los
estados r
1
, r
2
, . . . , r
n1
a Q y se dene en el aut omata M,
A
1
r
1
2
r
2
r
n1
n
f
Por ejemplo, si G es la gram atica regular
S aB| bA|
A abaS
B babS
da lugar al aut omata
As L(M) = L(G) pues si w L(G) entones w debe ser generada por
derivaciones:
S
1
A
1
con
1
y A
1
no terminal
1
2
A
2
con
2
y A
2
A
2
en G
.
.
.
1
n1
A
n1
con a
n
y
n
b a
(b) a
b b
a
(c) (a
b b
a)
.
(1) Obtener una gram atica regular por la izquierda para el lenguaje
{a
n
baa | n 0}.
(2) Obtener las gram aticas regulares por la derecha y la izquierda para
{w {a, b, c}
) donde
P
= {(A, x
I
) | (A, x) P}.
Por lo tanto, si A aB es una producci on de G, entonces, A
Ba es una producci on de G
I
.
Supongamos que G es una gram atica regular por la derecha.
(a) Probar que G
I
es una gram atica regular por la izquierda.
(b) Probar que w L(G) si y s olo si w
I
L(G
) por inducci on
sobre el n umero de producciones usadas para obtener w.
3. Gramaticas independientes del contexto 91
Se puede deducir de la parte (c) que la clase de los lenguajes gen-
erados por gram aticas regulares por la izquierda es la misma que
la clase de lenguajes generados por gram aticas gegulares por la
derecha. Por eso habitualmente, el termino gram atica regular se
aplica para referirse a cualquier gram atica ya sea regular por la
izquierda o regular por la derecha.
(4) Construir la gram atica regular para el lenguaje aceptado por el
aut omata nito siguiente:
b
b
b
b
a
a
a
d
a
q
q
q
q q
q q
(5) Construir un aut omata nito para la gram atica regular
S abA|B|baB|
A bS|b
B aS
(6) Obtener una gram atica regular para el lenguaje
L = {w {a, b}
A wB
o
A w
con A, B no terminales y w
cadena de terminales.
Estas corresponden a
las parejas:
(A, wB) o (A, w)
as
P N
(N {})
esto es, en las producciones, los terminales, si aparecen, tienen que estar en el
extremo derecho del cuerpo de la producci on.
92 2. Lenguajes Independientes del Contexto
Si se permiten que los terminales aparezcan, mas de una vez, y en cualquier
lado, i.e.,
P N (N )
conjunto de producciones.
El lenguaje que genera G, L(G) se llama lenguaje independiente del
contexto:
L(G) = {w
| S
w}.
Ejemplo 69. Consideremos como G la gr amatica independiente del con-
texto (que no es regular) siguiente:
S aSb | .
entonces
S
i.e., L(G). Ademas
S aSb
ab = ab
i.e., ab L(G). Tambien
S aSb
aaSbb
aabb = a
2
b
2
i.e., a
2
b
2
L(G). En general
{a
n
b
b
| n 0} L(G).
3. Gramaticas independientes del contexto 93
Recprocamente, si w L(G), entonces
S aSb
aaSbb
.
.
.
a
n
Sb
n
a
n
b
n
= w
i.e., w = a
n
b
n
para alg un n. Por lo tanto
L(G) = {a
n
b
n
| n 0}
es un lenguaje independiente del contexto que no es regular, como puede
notarse de la siguiente propiedad.
Propiedad 7. El lenguaje L = {a
m
b
m
| m 0} no es regular.
Proof. Supongamos que L es regular. Sea n la cosntante del lema del
bombeo para L y consideremos la palabra w = a
n
b
n
que evidentemente
pertenece a L. Tenemos que |w| = 2n n. Entonces podemos escribir
w = uvx
con |uv| n, |v| 1 y i 0, uv
i
x L.
Como |uv| n entonces uv est a formado s olo por as:
w = a a
. .. .
uv
ab b
. .. .
x
as u = a
r
, v = a
s
para algunos o r n, 1 s n. Lo que implica
x = a
nrs
b
n
luego, bombeamos con i = 2:
L uv
2
x = a
r
a
2
sa
nrs
b
n
= a
n+s
b
n
con s 1. Lo cual es imposible.
Por tanto L no es regular.
El nombre independiente del contexto es para diferenciarlas de las gramaticas
que son sensibles al contexto; en estas las producciones son de la forma
1
A
2
1
B
2
i.e, dependen del contexto.
Tarea 14.
94 2. Lenguajes Independientes del Contexto
(1) Dada la gram atica independiente del contexto
S AA
A AAA|a|bA|Ab
(a) Obtener una derivaci on para la cadena b
2
aba
2
ba
(2) Dada la gram atica independiente del contexto
S AA
A AAA|a|bA|Ab
(a) Obtener una derivaci on para la cadena b
2
aba
2
ba
(b) Probar c omo puede obtenerse una derivaci on para b
m
1
ab
m
2
a . . . b
m
2n
ab
m
2n+1
,
para todo n > 0 y m
1
, m
2
, . . . , m
2n+1
0.
(3) La gram atica G independiente del contexto dada por
S aSb|aSa|bSa|bSb|
no es una gram atica regular, aunque L(G) es un lenguaje regular!
Obtener una gram atica regular G
) = L(G).
(4) Obtener una gram atica independiente del contexto para cada uno
de los siguientes lenguajes independientes del contexto:
(a) {a
m
b
n
| m n}
(b) {a
m
b
n
| n m 2n}
4.
Arboles de derivacion o analisis
Una forma de visualizar las derivaciones de la gramaticas independientes del
contexto es con los arboles de derivaci on o arboles de an alisis. Este cosniste
de un nodo raz que es el smbolo inicial. Luego el nodo raz tiene nodos
hijos, uno por cada smbolo que aparezca en el cuerpo de la producci on usada
para reeemplazar el smbolo inicial. Cada nodo no terminal tendra hijos a su
vez dados por la producci on usada al substituir. Por ejemplo, consideremos la
gramatica G:
(1) S AB
(2) A aA| a
(3) B bB| b
4.
Arboles de derivacion o an alisis 95
entonces aabbb L(G) pues puede ser generada por
S
(1)
AB
(3)
AbB
(3)
AbbB
(3)
Abbb
(2)
aAbbb
(2)
aaabbb
que le corresponde arbol de derivacion
Si leemos las hojas de izquierda a derecha obtenemos aabbb.
Notese que se puede derivar a
2
b
3
de muchas formas:
S
(1)
AB
(2)
aAB
(2)
aaB
(3)
aabB
(3)
aabbB
aabbb
cuyo arbol de derivacion resulta:
96 2. Lenguajes Independientes del Contexto
que es el mismo que antes. Otra posible derivacion de a
2
b
3
es
S AB
aAB
aAbB
aAbbB
aAbbb
aabbb
cuyo arbol de derivacion es de nuevo, el mismo que antes. Resulta que todos
los arboles de derivacion de a
2
b
3
tienen el mismo arbol. Este no es siempre el
caso. Por ejemplo, en la gramatica,
S SbS | ScS | a
se puede derivar la cadena abaca de dos formas:
(1)
S SbS
SbScS
SbSca
Sbaca
abaca
(2)
S ScS
SbScS
abScS
abacS
abaca
4.
Arboles de derivacion o an alisis 97
cuyos arboles de derivacion son:
(a)
(b)
que son diferentes.
Las cadenas derivadas corresponden a las hojas de los arboles de derivacion
y se llaman producto del arbol de derivacion .
Denicion 41. Una gram atica G se llama
(1) ambigua si w L(G) tal que w tiene al menos dos arboles de
derivaci on diferentes.
(2) no ambigua si w L(G), w tiene todos sus arboles de derivaci on
iguales.
La ambiguedad ocurre en los lenguajes naturales. Por ejemplo
Pedro vio a un hombre con un telescopio
signica que Pedro us o un telescopio para ver a un hombre? o que Pedro
vio a un hombre que tena un telescopio?.
Tambien las ambiguedades aparecen en las expresiones algebraicas:
Ejemplo 70. Consideremos la gram atica
A I := E
I a |b | c
E E +E |E E | (E) | I
(las may usculas son no terminales; los dem as smbolos, :=, *, (,(
son terminales). La cadena
a := b +c a
se puede derivar de formas diferentes:
98 2. Lenguajes Independientes del Contexto
a
A
I
:= E
a E + E
I E
E
b
I I
c
o
c
A
I
:= E
a E E
E E I
+
a
I
I
b
En algunos casos , se puede encontrar una gram atica que produzca el
mismo lenguaje, pero que no sea ambigua. Si esto no es posible, entonces el
lenguaje se llama inherentemente ambiguo.
5. Simplicacion de las GIC 99
Tarea 15. Demostrar que la gram atica es ambigua
S bA|aB
A a|aS|bAA
B b|bS|aBB
5. Simplicacion de las GIC
Las gramaticas pueden tener arboles de derivacion innecesariamente complica-
dos:
(1) S abcdefgS | abcdefg que le corresponde arboles de derivacion
como los siguientes
S
a b c d e f
S
a b c d
e
f S
(2)
S A
A B
B C
C D
D a | A
S
A
B
C
D
A
Lo importante de una gramatica es el lenguaje que genera. Se pretende
tener gramaticas razonables que generen los mismos lenguajes: lo primero que
se hace es eliminar las producciones y smbolos in utiles.
100 2. Lenguajes Independientes del Contexto
Denicion 42. Sea G = (N, , S, P) una GIC y X N . Se dice que
(1) X es util si existe una derivaci on de la forma
S
X
w
con w
.
(2) X es in util si no es util.
(3) X es generador si X
w para alg un w
.
(4) X es alcanzable si existe una derivaci on de la forma
S
X.
Ejemplo 71.
G : S Aa | B | D
B b
A aA| bA| B
C abd
Obervese que C nunca forma parte de una derivacion de una palabra gen-
erada:
S C w
= {B, C} y
P
: B b
C abd
5. Simplicacion de las GIC 101
Algorithm 1: 3.5.1
Data: G = (N, , S, P) una GIC
Result: G
= (N
, , S, P
) = L(G) y
A N
, A
w
con w
;
3 Inicializar P
;
4 repeat
5 A nadir a N
;
6 until Hasta que no se puedan a nadir m as terminales a N
;
7 end
1er pasada del ciclo:
N
= {B, C} {A} P
: B b
C abd
A B
2da pasada del ciclo:
N
= {B, C, A} {S} P
: B b
C abd
A B
S Aa | B
A aA| bA
3er pasada del ciclo: n. queda
G :S Aa | B
A aA| bA| B
B b
C abd
102 2. Lenguajes Independientes del Contexto
Se permiten producciones del tipo A . Por ejemplo.
G : S aA|
A aA| bB|
B bB
Las inicializaciones del algoritmo anterior quedan:
N
= {S, A}, P
: S
A
1er pasada del ciclo:
N
= {S, A} P
: S | aA
A aA| bB |
B b
2da pasada del ciclo:
N
= {S, A} P
: S
A
S aA
A aA
3er pasada: n.
Salida:
G
: S aA|
A aA|
En el ejemplo 72, el algoritmo 3.5.1 no elimino la ultima producci on C
abc que no es productiva pues C no es alcanzable. El siguiente algoritmo elimina
los inalcanzables
Ejemplo 73.
G : S Aa | B
B b
A aA| bA| B
C abd
y le aplicamos el algoritmo 3.5.2:
(2) inicializaci on: N
= {S}, P
= ,
= .
5. Simplicacion de las GIC 103
Algorithm 2: 3.5.2
Data: G = (N, , S, P) una GIC.
Result: G
= (N
, S, P
) = L(G) y todos
los smbolos de N
son alcanzables.
1 begin
2 Inicializar N
= {S}, P
= ,
= ;
3 repeat
4 foreach A N
do
5 foreach A w en P do
6 Introducir A w en P
;
7 Para todo B no terminal que forma w introducir B en N
;
8 Para todo terminal que forma w introducir en
9 end
10 end
11 until Hasta que no se puedan a nadir m as producciones a P
;
12 end
(3) primer pasada: tenemos S N
(A = S en el algoritmo) y
S Aa
S B
en P;
(6) P
: S Aa | B
(7) N
= {S, A, B}
(8)
= {a}
(3) 2da pasada: S N
ya;
(4) A N
: (6)
P
: S Aa | B
A aA| bA| B
(7) N
= {S, A, B}
(8)
: (6)
P
: S Aa | B
A aB| bA| B
B b
(7) N
= {S, A, B}
(8)
= {a, b}
104 2. Lenguajes Independientes del Contexto
(3) 3er pasada: no se pueden a nadir m as producciones: n.
Salida:
G
: S Aa | B
A aA| bA| B
B b
con alfabeto = {a, b}.
Notese que se han eliminado C y d.
Finalmente, para quitar los smbolos in utiles e improductivos se aplican los
algoritmos 3.5.1 y a la gram atica de esta salida se le aplica el algoritmo 3.5.2 y
en este orden. Los algoritmos 3.5.1 y 3.5.2 no conmutan, i.e., el orden de su
aplicaci on cambia las salidas. Por ejemplo, para la gramatica
G : S AB| a
A a
puede notarse que B no es necesario. Le aplicamos a G el algoritmo 3.5.1 y a
la gramatica que resulte le aplicamos el 3.5.2 parta quitar los improductivos.
G
3.5.1
S a
A a
3.5.2
S a
siendo esta ultima la gramatica esperada. Pero si aplicamos los algoritmos en
el otro orden
G
3.5.2
S AB| a
A a
3.5.1
S a
A a
que no es la respuesta esperada.
Tarea 16.
(1) Aplicar el algoritmo 3.5.1 a las siguientes gram aticas:
(a)
S aAb|cEB|CE
A dBE|eeC
B ff|D
C gFB|ae
D h
5. Simplicacion de las GIC 105
(b)
S aB
A bcCCC|dA
B e
C fA
D Dgh
(c)
S a|aA|B|C
A aB|
B Aa
C bCD
D ccc
(2) Aplicar el algoritmo 3.5.2 a las siguientes gram aticas independiente
del contexto
(a)
S aAb
A ccC
B dd|D
C ae
D f
U gW
W h
(b)
S a|aA|B
A aB|
B Aa
D ddd
106 2. Lenguajes Independientes del Contexto
(3) Eliminar los smbolos in utiles de la siguiente gram atica por medio
de los algoritmos 3.5.1 y 3.5.2:
S A|AA|AAA
A ABa|ACa|a
B ABa|Ab|a
C Cab|CC
D CD|Cd|CEa
E b
6. Eliminacion de las producciones
Denicion 43. Una producci on del tipo A se llama producci on .
Sea G una GIC. Si L(G) entonces se pueden eliminar todas las pro-
ducciones . Si L(G) tambien se pueden eliminar todas la producciones
exepto una.
Denicion 44. Si A es no terminal, A se dice anulable si
A
El siguiente algoritmo calcula el conjunto de todos los anulables y esta
basado en que si A X
1
X
n
y cada X
i
entonces A es anulable.
Algorithm 3: 3.5.3
Data: G = (N, , S, P) una GIC
Result: el conjunto de todos los anulables
1 begin
2 Inicio: = {A N | A };
3 repeat
4 Si B w en P y w
, a nadir B a
5 until hasta que no se puedan a nadir m as terminales a ;
6 end
Para obtener una G
como: si B X
1
X
n
en P esta se cambia por producciones
B Y
1
Y
n
donde
Y
i
=
X
i
si X
i
no es anulable
Y
i
= X
i
o Y
i
= si X
i
es anulable
pero no (i, Y
i
= ). Es decir, se a naden producciones donde los anulables X
i
aparecen o no, pero sin incluir a las producciones .
6. Eliminacion de las producciones 107
Ejemplo 74. Sea
G : S aA
A aA|
Queremos encontrar G
) = L(G) pero G
sin produc-
ciones .
Primero calculamos el conjunto de anulables:
inicio: = {A}
ciclo: n
Cambiamos ahora las producciones (donde A este presente o ausente)
G
S a | aA
A a | aA
Comoe L(G), entonces L(G
) = L(G).
Ejemplo 75.
G : S AB
A aAA|
B bBB|
Encontraremos una gram atica G
) = L(G)
{} (n otese que L(G)).
Primero calculamos los anulables:
Inicio: = {A, B}
ciclo: como S AB con AB
entonces S . Fin.
Resulta = {A, B, S} (todos los smbolos no terminales son anulables).
Ahora reeemplazamos las producciones de G por ausencia o no de los anu-
lables:
de S AB se obtienen
S A| B| AB
de A aAA se obtienen
A aAA| aA| a
y de B bBB se obtienen
B bBB| bB| b
108 2. Lenguajes Independientes del Contexto
Resulta entonces
G
: S A| B| AB
A aAA| aA| a
B bBB| bB|b
tal que L(G
) = L(G) {}.
Tarea 17.
(1) Obtener la colecci on de no terminales anulables que pertenecen a la
siguiente gram atica:
S aA|bA|a
A aA|bAb|
(2) Obtener, para la siguiente gram atica, el n umero de no terminales
anulables:
S ABaC
A AB
B b|
C D|
D d
(3) Eliminar las producciones de las gram aticas:
(a)
S aA|bA|a
A aA|bAb|
(b)
S AB
A aA|abB|aCa
B bA|BB|
C
D dB|BCB
(c)
S a|aA|B
A aB|
B Aa
7. Eliminacion de producciones unitarias 109
(4) El lenguaje asociado con la siguiente GIC contiene . Eliminar las
producciones exepto S .
S AB|aB|
A BBB|aB|a|
B a|aA|
7. Eliminacion de producciones unitarias
Denicion 45. Una producci on unitaria es una del tipo A B con
A, B no terminales.
A veces son utiles las producciones unitarias, pero otras veces son indesables
pues complican los arboles de derivacion. Nos proponemos eliminar tales pro-
ducciones unitarias.
Denicion 46.
(1) A A usando cero producciones.
(2) Si A es no terminal se dene
U(A) = {B N | A
B
usando solamente producciones unitarias o cero producciones}
Notese que A,
A U(A).
El siguiente algoritmo elimina las producciones unitarias:
Ejemplo 76. Sea G la gram atica:
S A| Aa
A B
B C | b
C D| ab
D b
A esta le aplicaremos el algoritmo de eliminaci on de producciones unitarias
(EPU):
(2) P
= ;
110 2. Lenguajes Independientes del Contexto
Algorithm 4: EPU
Data: G = (N, , S, P) una GIC
Result: G
= (N, , S, P
) = L(G)
1 begin
2 Inicializar P
= ;
3 foreach A N do
4 obtener U(A)
5 end
6 foreach A N do
7 foreach B U(A) do
8 para cada producci on no unitaria B w de P a nadir A w
en P
9 end
10 end
11 end
(3-4)
U(S) = {S, A, B, C, D}
U(A) = {A, B, C, D}
U(B) = {B, C, D}
U(C) = {C, D}
U(D) = {D}
(6) S N
(7) S U(S)
(8) P
: S Aa
(7) A U(S)
(8) No se a nade nada a P
: S Aa
(7) B U(S)
(8) Como S b en P y no es unitaria, se a nade a P
:
P
: S Aa | b
(7) C U(S)
(8) C ab en P no unitaria:
P
: S Aa | b | ab
(7) D U(S)
7. Eliminacion de producciones unitarias 111
(8) D b en P no unitaria:
P
: S Aa | b | ab
(6) A N
(7) A U(A)
(8) No se a nade nada a P
: S Aa | b | ab
A b
(7) C U(A)
(8) C ab en P no unitaria:
P
: S Aa | b | ab
A b | ab
(7) D U(A)
(8) D b en P no unitaria, hay que a nadir A b a P
,
pero esta ya existe en P
:
P
: S Aa | b | ab
A b | ab
(6) B N
(7) B U(B)
(8) B b no unitaria en P
P
: S Aa | b | ab
A b | ab
B b
(7) C U(B)
(8) C ab no unitaria en P
P
: S Aa | b | ab
A b | ab
B b | ab
(7) D U(B)
112 2. Lenguajes Independientes del Contexto
(8) D b no unitaria en P, hay que a nadir B b a P
,
pero esta ya est a en P
:
P
: S Aa | b | ab
A b | ab
B b | ab
(6) C N
(7) C U(C)
(8) C ab no unitaria en P
P
: S Aa | b | ab
A b | ab
B b | ab
C ab
(7) D U(C)
(8) D b no unitaria en P
P
: S Aa | b | ab
A b | ab
B b | ab
C ab | b
(6) D N
(7) D U(D)
(8) D b no unitaria en P
P
: S Aa | b | ab
A b | ab
B b | ab
C ab, | b
D b
Salida:
G
: S Aa | b | ab
A b | ab
B b | ab
C ab | b
D b
7. Eliminacion de producciones unitarias 113
Ejemplo 77. Sea
G : I a | b | Ia | Ib | I0 | I1
F I | (E)
T F | T F
E T | E +T
Tal G tiene producciones unitarias; eliminemoslas:
(1) P
=
(2) U(I) = {I}, U(F) = {F, I}, U(T) = {T, F, I}, U(E) = {E, T, F, I}
(3) I N:
(a) I U(I); I I; I a | b | Ia | Ib | I0 | I1, a nadir I a | b | Ia | Ib | I0 | I1
(4) F N:
(a) F U(F); F F, F (E), a nadir F (E)
(b) I U(F); F I; I a | b | Ia | Ib | I0 | I1; a nadir F
a | b | Ia | Ib | I0 | I1
(5) T N:
(a) T U(T); T T, T T F, a nadir T T F
(b) F U(T); T F, F (E), a nadir F (E)
(c) I U(T); T I, I a | b | Ia | Ib | I0 | I1, a nadir T
a | b | Ia | Ib | I0 | I1
(6) E N;:
(a) E U(E); E E, E E +T, a nadir E E +T
(b) T U(E); E T, T T F, a nadir E T F
(c) F U(E); E F, F (E), a nadir E (E)
(d) I U(E); E I, I a | b | Ia | Ib | I0 | I1, a nadir E
a | b | Ia | Ib | I0 | I1
Salida:
G
: I a | b | Ia | Ib | I0 | I1
F a | b | Ia | Ib | I0 | I1 | (E)
T T F | a | b | Ia | Ib | I0 | I1 | (E)
E | E +T | T F | a | b | Ia | Ib | I0 | I1
Tarea 18.
(1) Dise nar un algoritmo para construir U(A), siendo A un no terminal
de una GIC.
(2) Eliminar todas las producciones unitarias de las siguientes GIC:
114 2. Lenguajes Independientes del Contexto
(a)
S CBa|D
A bbC
B Sc|ddd
C eA|f|C
D E|SABC
E gh
(b)
S Aa|Ba|B
A Aa|
B aA|BB|
Observese que L(G).
8. Formas normales
Denicion 47.
(1) Una GIC est a en forma normal de Chomsky (FNC) si todas sus
producciones son de la forma A BC o A a donde A, B, C N
y a .
(2) Una GIC est a en forma normal de Greibach (FNG) si todas
sus producciones son de la forma
A aB
1
. . . B
k
para alg un k 0, donde A, B
1
, . . . , B
k
N y a (si k = 0 se
obtiene la producci on A a).
Ejemplo 78. Sea = {[, ]}, entonces la gram atica
S AB| AC |S
C SB
A [
B ]
es una gram atica en FNC.
Se puede probar que esta gramatica es, en cierto sentido (teorema de
Chomsky-Schuatzenberger), el prototipo de las gramaticas independientes de
contexto.
8. Formas normales 115
Ejemplo 79. Sea, de nuevo = {[, ]} y gram atica
S [B| [SB | [BS | [SBS
]
que es una gram atica en FNG.
Las gramaticas de los dos ejemplos inmediatos anteriores generan el lenguaje
de parentesis balanceados.
Notese que ninguna gramatica en FNC, ni en FNG puede generar la palabra
vaca.
Se quiere probar que:
Teorema 18. Sea G una GIC. Entonces
(1) Existe G
) = L(G) {}.
(2) Existe G
) = L(G) {}.
8.1. Forma normal de Chomsky. Dada G una GIC, su forma normal de
Chomsky puede obtenerse de la siguiente forma:
La salida del algoritmo FNC da una gramatica tal que todas sus producciones
son de la forma A BC o A con no terminal.
Ejemplo 80. Sea
G : S bA| aB
A bAA| aS | a
B aBB| bS | b
Poner esta gram atica en FNC.
Sol.
(1) Primero quitamos los smbolos in utiles: obtenemos la misma G,
pues no tiene smbolos in utiles.
(2) Quitamos las producciones : queda, de nuevo, la misma G, pues
G no tiene producciones .
(3) Quitamos las producciones unitarias: queda la misma G pues G no
tiene producciones unitarias.
(4) Ponemos producciones con cuerpos formados de s olo cadenas de
variables o s olo un terminal:
S C
a
A| C
a
B A C
b
AA| C
a
S |b
C
b
b B C
a
BB| C
b
S | b
C
a
a
116 2. Lenguajes Independientes del Contexto
Algorithm 5: FNC
Data: G una GIC
Result: G
) = L(G) {}
1 begin
2 G
1
Algoritmo 3.5.1(G) ;
3 G
2
Algorithmo 3.5.2(G
1
);
4 G
3
Eliminar producciones de G
2
;
5 G
4
Eliminar producciones unitarias de G
3
;
6 Poner P
5
= ;
7 foreach A w producci on en G
4
do
8 if |w| = 1 then
9 A nadir A w a P
5
10 end
11 if |w| > 1 then
12 w = X
1
. . . X
n
con cada X
i
terminal o no;
13 if X
i
terminal then
14 A nadir un nuevo smbolo no terminal C
X
i
y producci on
C
X
i
X
i
a P
5
15 end
16 end
17 end
18 Las producciones de P
5
son de la forma A B
1
. . . B
n
o A con
B
1
, . . . , B
n
terminales y terminal;
19 foreach A B
1
. . . B
n
con n 2 do
20 reemplazar por
A B
1
D
1
D
1
B
2
D
2
.
.
.
D
n1
B
n
D
n
21 end
22 Salida: la gramatica G
con producciones P
5
23 end
(5) Ponemos producciones binarias para las cadenas de no terminales:
la producci on A C
b
AA se reemplaza por
A C
b
D
1
D
1
AA
8. Formas normales 117
(n otese que
A C
b
D
1
C
b
AA
) y B C
a
BB se reemplaza por
B C
a
D
2
D
2
BB
(n otese que
A C
a
D
1
C
a
BB
). La FNC pedida es
S C
b
A| C
a
B
A C
b
D
1
| C
a
S | a
B C
a
D
2
| C
b
S | b
D
2
BB
D
1
AA
C
b
b
C
a
a
Recordemos que los algoritmos 3.5.1 + algoritmo 3.5.2 quitan los in utiles.
Ejemplo 81. Sea G la GIC:
S AACD
A aAb |
C aC | a
D aDa | bDb | .
Calcular la FNC de G.
Tarea 19.
(1) Convertir las siguientes GIC a forma normal de Chomsky:
(a)
S AB|CA
A a
B BC|AB
C aB|b
118 2. Lenguajes Independientes del Contexto
(b)
S aAb|cHB|CH
A dBH|eeC
B ff|D
C gFB|ah
D i
E jF
F dcGGG|cF
G kF
H Hlm
9. Automatas de Pila
Las gramaticas independientes del contexto corresponden exactamente a cierta
clase de au omatas que tienen memoria (pila): automatas nitos de pila.
Denicion 48. Un automata nito de pila no determinista (APND)
es una 7-upla
M = (Q, , , , s, , F)
donde
Q es un conjunto nito de estados;
es un conjunto nito de smbolos de un alfabeto de entrada;
es un conjunto nito de smbolos de un alfabeto de pila;
Q( {})
que se interpreta como que la maquina esta en el estado p leyendo el smbolo
a sobre una cinta de entrada y A esta encima de la pila (memoria):
Tarea 20.
(1) Probar que cada uno de los siguientes lenguajes no son lenguajes
independientes del contexto.
9. Automatas de Pila 119
(a) {a
i
b
i
c
i
| i 1}
(b) {a
i
b
i
c
j
| j i}
(c) {a
i
b
j
c
j
| i j k}
(d) {a
i
| i es primo}
(e) {w {a, b, c}
| n m 2n}
(f) {ww| w {a, b}
}
(2) Obtener un aut omata a pila que acepte {a
n
b
n
| n 0}.
(3) Describir los cambios de conguraciones sobre las cadenas abaababb
y abaa realizados por el aut omata a pila siguiente (con smbolo
inicial de pila Z):
j
b, B/BB
a, B/
b, A/
a, A/AA
b, Z/BZ
a, Z/AZ
q
1
q
2
, Z/Z
r r
son aceptadas?.
(4) Los mismo que el anterior para las cadenas c, abcba, abcab y babbcbbab
y el aut omata a pila
, Z/Z
b, b/
a, a/
c, b/b
c, a/a
c, Z/Z
b, b/bb
b, a/ba
b, Z/bZ
a, b/ab
a, a/aa
a, Z/aZ
, Z/Z
q
3
q
2
q
1
g r r r
Chapter 3
Maquinas de Turing
1. Denicion y termininologa
Denicion 49. Una maquina de Turing es una 7-tupla:
M = (Q, , , s, B, F, )
donde
Q es un conjunto nito de estados.
es un alfabeto de entrada.
es un alfabeto llamado de entrada.
s Q estado inicial.
es alfabeto llamado de cinta, con .
B pero B llamado smbolo blanco.
F Q estados nales. : Q Q {L, R} es una funci on
parcial llamada funci on de transici on
Aclaramos que, en general, una funcion parcial g : A B es una relacion
de A en B tal que a A, g(a) es a lo mas un elemento.
Ejemplo 82. Sea f : R R, f(x) = 1/x es funcion parcial. Notese que
f(0) no est a denida.
Ejemplo 83. Sea g : (1, 1), g(x) = log(x) tambien es una funci on parcial
pues g no est a denida en (1, 0].
Si M es una MT con funcionde transicion , entonces
(q, ) = (p, , X)
donde
121
122 3. Maquinas de Turing
(1) q es estado actual, es smbolo de cinta ledo
(2) p es estado siguiente, es smbolo escrito en cinta.
(3) X es un movimiento de escritura/lectura de cabeza que puede
ser L (izquierda) o R (derecha).
Toda esta teminologa se debe a que las MT se interpretan como mecanismos
que constan de una cinta innita hacia la izquierda y hacia la derecha, separada
en celdas que contienen a los smbolos de cinta:
B B
c
b b
a
B B B
Tal cinta esta casi llena de smbolos blancos. S olo una porcion nita entre
smbolos blancos contiene la informacion que interesa.
Las MT cambian sus conguraciones celda por celda, senalando la celda a
modicar con una cabeza de cinta. Por ejemplo;
(q
1
, a) = (q
5
, b, R)
indica que si
estado q
0
`
b b
a
entonces
estado q
1
`
b b b
Ejemplo 84. Sea M la MT denida por
Q = {q
0
, q
1
}
= {a, b}
= {a, b, B}
F = {q
1
}
s = q
0
y transiciones dadas por
a b B
q
0
(q
0
, a, R) (q
0
, a, R) (q
1
, R, L)
q
1
Inciamos con conguracion
1. Denici on y termininologa 123
estado q
0
`
a
b b
a
y entonces tenemos los siguientes cambios de conguracion
estado q
0
`
a
b b
a
estado q
0
`
a
b b
a
estado q
0
`
a
b
a a
B
estado q
0
`
a a a a
B
estado q
0
`
a a a a
B
estado q
1
`
a a a a
Notese que se ha insertado B que se sobreentiende siempre aparece a la izquierda
y a la derecha de la palabra escrita en cinta.
Tales cambios de confuguraci on se pueden denotar mas brevemente si se
usa la notaci on torniquete; hay al menos dos variantes
(1)
(q
0
, abba) (q
0
, abba)
(q
0
, aaba)
(q
0
, aaaa)
(q
0
, aaaaB)
(q
1
, aaaa)
(2)
q
0
abba aq
1
bba
aaq
1
ba
aaaq
1
a
aaaaq
1
B
aaaq
2
a
124 3. Maquinas de Turing
Las MT tamben tienen diagramas de transicion similares a los automatas
de pila. Por ejemplo, el diagrama de transicion de la MT del ejemplo inmediato
anterior es
Ejemplo 85. Sea M la m aquina de Turing denida por el diagrama
entonces
aabq
1
abb aaq
1
babb
aq
1
ababb
q
1
aababb
q
1
Baababb
Bq
2
aababb = q
2
aababb
q
3
Baababb
y entonces la m aquina se detiene.
Ejemplo 86. Consideremos la m aquina de Turing
aqu el conjunto de estado nales es F = y el alfabeto de entrada es
= {a, b}.
2. Aceptacion 125
Para cualquier w
tenemos que
q
1
abw aq
2
w
q
1
aw
aq
2
bw
q
1
abw
. . .
y la MT nunca para (bucle innito). Se pone
q
1
abwstackrel
para indicar que comenzando en la conguracion q
a
bw la m aquina nunca
para.
2. Aceptacion
Denicion 50. Sea M = (Q, , , s, B, F, ) una MT. El lenguaje acep-
tado por M es
L(M) = {w
| sw w
1
pw
2
, con w
1
, w
2
, p F}
Tarea 21.
(1) Construir una m aquina de Turing que analice una cadena de {a, b}
+
desplaz andose por la cinta de izuqierda a derecha y que reeemplace
cada bs por c. La m aquina de Turing debera comenzar con la
cabeza sobrte el primer smbolo (el que est a m as a la izquierda)
de la cadena y terminar su cabeza sobre el blanco nal (el blanco
que sigue a la a o a la c que este m as a la derecha en la cadena
transformada).
(2) Construir una m aquina de Turing que enumere todos los enteros
binarios, en orden numerico sobre su cinta cuando comience con
(q
1
, 0B). Es decir, la m aquina de Turing debe ejecutarse de esta
forma:
(q
1
, 0B)
(q
1
, 1B)
(q
1
, 10B)
(q
1
, 11B)