Documentos de Académico
Documentos de Profesional
Documentos de Cultura
La expresin
ab e (ab)*b
Es equivalente a
ab (a*b)*
Reglas para expresiones
regulares
1. r s = s r.
2. r = r = r.
3. r r = r.
4. (r s) t = r (s t).
5. er = re = r.
6. r = r = .
7. (rs)t = r(st).
8. r(s t) = rs rt y (r s)t = rt st.
9. r* = r** = r*r* = (e r)* = r*(r e) = (r e)r* = e rr*.
10. (r s)* = (r* s*)* = (r*s*)* = (r*s)*r* = r*(sr*)* .
11. r(sr)* = (rs)*r.
12. (r*s)* = e (r s)*s.
13. (rs*)* = e r(r s)*.
14. s(r e)*(r e) s = sr*.
15. rr* = r*r.
Autmata finito determinista
Podemos usar un diagrama de transicin para ayudar a determinar si una
cadena pertenece o no a un lenguaje.
Los nodos del diagrama se denominan estados y se utilizan para sealar hasta
donde se ha analizado la cadena.
Las aristas se denominan transiciones y se etiquetan con los smbolos del
alfabeto.
Existe un estado, llamado estado inicial, que es de donde parte el anlisis de
toda cadena.
Algunos estados se marcan como estados de aceptacin para determinar si
una cadena es legal o no.
La cadena es legal si se termina su anlisis en un estado de aceptacin.
Los estados de aceptacin se representan encerrados en un crculo.
El siguiente diagrama acepta cadenas de la forma akb.
a a,b
b a,b
b b
a
b
a
a
El siguiente diagrama
acepta cadenas de la
forma (ab)*.
Estado/Estrada
a b q0 q1
a
q0 q1 q2
b a
q1 q2 q0 q2
q2 q2 q2 a,b
Autmata Finito Determinista
Definimos un autmata finito determinista M como una coleccin de
cinco elementos:
1. Un alfabeto de entrada S.
2. Una coleccin finita de estados Q.
3. Un estado inicial s.
4. Una coleccin F de estados de aceptacin o finales.
5. Una funcin d: Q S Q que determina el nico estado siguiente para
el par (qi, s) correspondiente al estado actual y la entrada.
Se usar la notacin M = (S, Q, s, F, d) para indicar un AFD (autmata
finito determinista) M.
Ejemplo
Por ejemplo, el AFD del diagrama anterior se representa mediante M = (S, Q,
s, F, d) donde b
b
a
a, b q3 q2
b
acepta el lenguaje
L(M) = {w {a, b}* | w no contiene tres bes consecutivas}
Se puede aplicar recursivamente una serie de caracteres de una
cadena dada al AFD.
Por ejemplo, la aplicacin de la cadena bbab en el caso
anterior dar d(d(d(d(q0,b),b),a),b) = q1.
Esto puede abreviarse como d(q0,bbab).
Diremos que dos AFD M1 y M2 son equivalentes si L(M1) =
L(M2).
Autmata finito no determinista
b
q0 q1
a a a,b
a b a,b
q2 q3 q4 q5 a,b
b
q6 a
b
Consideremos ahora el siguiente diagrama de transicin, este
reconoce las mismas cadena, sin embargo es mucho ms
simple.
Note que el diagrama de transiciones no representa una funcin
de Q S en Q.
a b
q0 q1 q2
b
a
q3 q4
b
Definicin
1. Un alfabeto de entrada S.
2. Una coleccin finita de estados Q.
3. Un estado inicial s.
4. Una coleccin F de estados de aceptacin o finales.
5. Una relacin D sobre (Q S) Q y se llama relacin
de transicin.
Por ejemplo, el AFN anterior se describe por medio de
a
a b
Q = {q0, q1, q2, q3, q4} q0 q1 q2
F = {q0} b
a
s = q0
q2
S = {a, b}
y D dada por la tabla
D a b
q0 {q1}
q1 {q0, q2}
q2 {q0}
Lenguaje aceptado por un AFN
a,b
a,b
a a
a,b
Consideremos el AFN
D(q0, a) = {q1, q2}
D(q0, b) =
D({q1, q2}, a) =
D({q1, q2}, b) = {q3}
D(, a) = D(, b) =
D(q3, a) = {q2}
D(q3, b) =
D(q2, a) =
D(q2, b) = {q3}
AFD equivalente
b
{q0} {q1,q2} {q3} {q2}
a b a
a b
a
b
f
a,b
e-transiciones
Una e-transicin es una transicin entre dos estados que no consume
ningn smbolo.
q0 q1
a
q0 q1
e
a,e b
a
q2
Acepta: a* D a b e
q0 {q1} f f
q1 f {q2} f
q2 {q0} f {q0}
e-cerradura
Si un AFN tiene e-transiciones, la relacin de transicin D asocia pares de
Q (S {e}) Q con subconjuntos de Q.
e cq
n
e c qi , qi ,, qi
1 2 n ik
k 1
Estados que siguen a q
Para q Q y s S se define
n
d qi1 , qi2 , , qin , s d qik ,, s
k 1
F' = F {q | e-c(q) F }
y D(q, s) = e-c(d(e-c(q), s)).
Ejemplo: eliminacin de e-
transiciones q2
q0 q1
e b
a e a
b e
q3 q4 q5
D' a b b
q1 q2
q0 {q1, q3, q4, q5} {q2} a b
q1 {q4,q5} {q2} a
a
q2 {} {} a a
b
q3 {q4,q5} {q2,,q4,q5}
q4 {} {} a,b
q5 {} {} q3 q4 q5
a,b
Autmatas finitos y expresiones
regulares
Para un alfabeto S se pueden construir AFN (o AFD) que acepten palabras
unitarias y el lenguaje vaco como se muestra en la figura
q1 q2 q1
a
Sean M1 = (S1, Q1, s1, F1, D1) y M2 = (S2, Q2, s2, F2, D2) dos AFN. Podemos
unir M1 y M2 para que acepte L(M1) L(M2), aadiendo un nuevo estado
inicial s y dos e-transiciones una de s a s1, y otra de s a s2. La construccin
formal del nuevo AFN M = (S, Q, s, F, D) esta dada por S = S1 S2, F = F1
F2 y Q = Q1 Q2 {s}.
Autmatas finitos y expresiones
regulares
Se pueden considerar las transiciones D1 y D2 como ternas ordenadas de Q1
S Q1 y Q2 S Q2, donde (q, s, p) significa que existe una transicin de q a p
mediante el carcter s. De aqu
Para los autmatas anteriores, se puede formar un AFN que acepte L(M1)L(M2).
Para esto, se agregan e-transiciones entre cada estado de aceptacin de M1 y el
estado inicial de M2. El autmata que se obtiene es
Q = Q 1 Q2
s = s1
F = F2
D= D1 D2 {F1 {e} {s2}}
Ds2 D(q, e) para todo q F1
Autmatas finitos y expresiones
regulares
Es posible obtener L(M2)* de la siguiente forma. Primero se aade un estado
inicial de aceptacin s. Se agrega una e-transicin de este estado a s. Se
agrega adems, una e-transicin entre todos los estados de aceptacin y el
estado inicial s. El autmata resultante ser M' = (Q', S, s', F', D'), donde
Q = Q1 {s}
s = s1
F = {s}
D' = D1 {(s, e, s)} (F1 {e} {s})
Teorema 5
q0 q1 q2
para el autmata de la figura. se tiene
b
A5 = , A2 = e a
A4 = e, A1 = b a a,b
b b
A3 = a, A0 = ab ba q5 a,b
a
q3 q4
Supongamos que qj D(qi, s). Entonces Ai contiene a sAj. De hecho, se tiene que
q0 q1 q2 q3 q4
a a a b
a b
b
A4 = b*
A0 = aA1 A3 = aA2 b+ e
q0 q1 qj+1
qj = qk qk+1 qn+1
El lazo tiene longitud de al menos 1. Las cadenas w = a1, a2, , aj, (aj+1,, ak)m
ak+1,, an+1 estarn en L(M) para m 0.
Lema del bombeo
Sea L un lenguaje regular infinito. Entonces hay una constante n de forma que, si
w es una cadena de L cuya longitud es mayor o igual a n, se tiene que w = uvx,
siendo uvix L para todo i 0, con | v | 1 y | ux | n.
Toda cadena de L debe tener una longitud que sea un cuadrado perfecto.
Supongamos que cumple el lema del bombeo, entonces
a n uvx
2
Es decir, |uv2x| se encuentra entre dos cuadrados perfectos consecutivos y por tanto
no es un cuadrado perfecto. En consecuencia no pertenece al lenguaje L.
Otro ejemplo
Sea el lenguaje L = {ambm | m>=0}. L es infinito.
Si se cumple el lema del bombeo se tiene que anbn= |uvx| con | v | 1 y | ux | n.
Dado que | ux | n, | v | < n, y por tanto consta solo de aes. Entonces v = as, para s>=1.
Si u = ar, x = an(s + r)bn.
Por lo tanto |uv2x| = ara2san(s + r)bn = an + sbn.
Dado que s>=1, la cadena no puede pertenecer a L.
Teorema 7
Sea M un autmata finito de k estados.
Demostracin.
1. Si M acepta una cadena de longitud menor que k, entonces L(M) . Si L(M)
, entonces existe w L(M). Supongamos | w | k. Por el lema del bombeo w =
uvx, y uvix L(M). En particular, ux L(M). Si | ux | k, quedara probado, el
proceso se puede repetir para esta cadena hasta llegar a una longitud k.
2. Supongamos w L(M) con k | w | 2k. Pero por el lema del bombeo w = uvx, y
uvix L(M), para todo i, con lo que L(M) es infinito. Ahora supongamos que
L(M) es infinito. Habr cadenas con longitud k. Supongamos | w | 2k. Pero por
el lema del bombeo w = uvx, y uvix L(M). Entonces ux L(M). Si | ux | 2k,
quedara probado, si no se puede repetir el proceso hasta encontrar una cadena
que se encuentre entre k y 2k 1.
Aplicacin de las leyes de de
Morgan
Supongamos que L y K son lenguajes sobre S. De las leyes de De Morgan
(S* - L) (S* - K) = S* - (L K)
Por tanto
L K = S* - (S* - (L K))
= S* - ((S* - L) (S* - K))
Pero el complemento de un lenguaje es regular si el lenguaje es regular, por lo tanto la
interseccin de dos lenguajes ser regular si ambos lenguajes son regulares. Este hecho
puede utilizarse para demostrar si un lenguaje es regular o no.
Por ejemplo, sea S = {a, b} y L = {wwI | w S*}. Probaremos que L no es regular. Sea L1
= {anb2kan | n, k 0} no regular, y L2 = {akbnam | k, n, m 0} regular. Obsrvese que L2
L = L1. Si L fuera regular, lo sera L1. Por tanto L no puede ser regular.
Indistinguibilidad
Sea M = (Q, S, d, q0, F) un AFD. Definimos la relacin de indistinguibilidad ~ en Q
como:
q2 a b
b
a a
q1 q3 b
b b a
q7
b q5
a b
a q0 B1 B1
q1 B1 B1
q6 se elimina porque no es accesible.
q2 B1 B2
La particin inicial es q3 B2 B1
p0 = {{q0, q1, q2, q3, q5, q7},{q4}}. q5 B1 B1
Llamamos q7 B1 B2
q4 B1 B2
B1 = {q0, q1, q2, q3, q5, q7} y B2 = {q4}.
De tabla anterior se obtiene p1 a b
q0 B2 B3
La particin es
q1 B2 B3
p1 = {{q0, q1, q5}, {q2, q7}, {q3}, {q4}}. q5 B1 B1
Llamamos q2 B1 B4
B1 = {q0, q1, q5}, B2 = {q2, q7}, B3 = {q3} y B4 = {q4}. q7 B1 B4
q3 B4 B1
q4 B1 B2
a b a
a a
B1 B2 B3 b
B1
B4
B2 B5 B4 a B5
b
B3 B4 B5
B4 B1 B4 b
a
B5 B5 B1 b
B3
b
Tarea
Minimizar
a,b
q5
a a
q0 q1 b b
a a b a
q3 q6 q7
b b
a
q2
b
q4
a,b
Aplicaciones de los autmatas finitos
Reconocedor de nmeros enteros
0,1,2, ..., 9
q0 1. i = 1
1,2, ..., 9 2. ok = verdadero
3. long = longitud(s)
q1 4. si s[i] en num entonces
i = i+1
cualquier otro cualquier otro mientras i<long y ok
carcter carcter si s[i] en num
i = i + 1
q2 sino
ok = falso
fin si
cualquier otro fin mientras
carcter sino
ok = falso