Anda di halaman 1dari 59

Lenguajes regulares

Teora del Autmata


LENGUAJES REGULARES
Lenguajes sobre alfabetos
Para un alfabeto E = {a
1
,a
2
,,a
n
} se pueden numerar las
palabras de E
*
de la siguiente manera:
c 0
a
1
1
a
2
2
. .
a
n
n
a
1
a
1
n+1
a
1
a
2
n+2
para E = {a, b}, podemos numerar sus cadenas con dgitos
binarios 1 y 2 en vez de 0 y 1. Sea a el 1 y b el 2, entonces se
obtiene
c 0
a 1
b 2
aa 11 = 3
ab 12 = 4
abaa 1211 = 19
de esta manera se representa cada cadena como un entero nico.
Y cualquier nmero podemos representarlo como una secuencia
de as y bs, por ejemplo el 32 se convierte a 11112 y luego a
aaaab.
Teorema 1. Para todo alfabeto E, E
*
es infinito enumerable.

Teorema 2. El conjunto de todos los lenguajes sobre E no es
numerable.
Demostracin. Llamemos L al conjunto de todos los lenguajes
sobre E, si L es numerable, por tanto podemos enumerarlo como
A
0
, A
1
, A
2
,
E
*
puede numerarse como w
0
, w
1
, w
2
, Sea B = {w
i
| w
i
e A
i
}. B
contiene las palabras que no pertenecen al lenguaje que tienen el
mismo ndice que las mismas. Pero como B es un lenguaje B = A
k

para algn k. Si w
k
e B, entonces w
k
e A
k
= B. Y por lo tanto w
k

esta y no esta en A
k
. Lo mismo sucede si suponemos w
k
e B. Por
lo tanto L no es numerable.
El teorema 2 estipula que hay una cantidad innumerable de
lenguajes sobre un alfabeto particular.
Por tanto, no existe ningn mtodo de especificacin de
lenguajes que sea capaz de definir todos los lenguajes sobre
un alfabeto.
Lenguajes regulares y
expresiones regulares
Sea E un alfabeto. El conjunto de los lenguajes regulares sobre
E se define recursivamente como sigue:
1. C es un lenguaje regular
2. {c} es un lenguaje regular
3. Para todo a e E {a} es un lenguaje regular
4. Si A y B son lenguajes regulares, entonces A B, A B ,
A
*
son lenguajes regulares
5. Ningn otro lenguaje sobre E es regular.

ejemplo
Por ejemplo. El lenguaje de todas las cadenas sobre {a, b, c}
que no tienen ninguna subcadena ac es un lenguaje regular, y
puede expresarse por

A = {c}
*
({a} {b}{c}
*
)
*


Simplificacin
Se puede simplificar la notacin mediante el uso de
expresiones regulares. Las equivalencias son:

a b denota {a} {b}
ab denota {ab}
a
*
denota {a}
*

a
+
denota {a}
+

Ejemplo: A = {c}
*
({a} {b}{c}
*
)
*
= c* (a bc
*
)
*
Expresiones regulares
Los operadores tienen precedencia (
*
, , ). Entonces, una
expresin regular sobre el alfabeto E, es

1. C y c son expresiones regulares.
2. a es una expresin regular para todo a e E.
3. Si r y s son expresiones regulares, entonces r s, r s , r
*

tambin lo son.
4. Ninguna otra secuencia de smbolos es una expresin
regular.
Equivalencia de expresiones
regulares
Dos expresiones regulares pueden ser equivalentes, es decir, generan el mismo
lenguaje.

La expresin (a*b)* es equivalente a c (ab)*b.

Ambos generan c o cadenas de aes y bes terminadas en b.

La expresin

ab c (ab)*b

Es equivalente a

ab (a*b)*

Reglas para expresiones
regulares
1. r s = s r.
2. r C = r = C r.
3. r r = r.
4. (r s) t = r (s t).
5. cr = rc = r.
6. Cr = rC = C.
7. (rs)t = r(st).
8. r(s t) = rs rt y (r s)t = rt st.
9. r
*
= r
**
= r
*
r
*
= (c r)
*
= r
*
(r c) = (r c)r
*
= c rr
*
.
10. (r s)
*
= (r
*
s
*
)
*
= (r
*
s
*
)
*
= (r
*
s)
*
r
*
= r
*
(sr
*
)
*
.
11. r(sr)
*
= (rs)
*
r.
12. (r
*
s)
*
= c (r s)
*
s.
13. (rs
*
)
*
= c r(r s)
*
.
14. s(r c)
*
(r c) 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 a
k
b.
El siguiente diagrama acepta el lenguaje A = {(ab)
i
| i > 1}.
a
b a,b
a,b
a
b
a
a
b
b
a,b
El siguiente diagrama
acepta cadenas de la
forma (ab)*.
El mismo autmata con estados
etiquetados q
0
, q
1
, q
2
Estado/Estrada
a b
q
0
q
1
q
2
q
1
q
2
q
0
q
2
q
2
q
2
q
1
q
0
q
2
a
b
a,b
a b
Autmata Finito Determinista
Definimos un autmata finito determinista M como una coleccin de
cinco elementos:
1. Un alfabeto de entrada E.
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 o: Q E Q que determina el nico estado siguiente para
el par (q
i
, o) correspondiente al estado actual y la entrada.
Se usar la notacin M = (E, Q, s, F, o) para indicar un AFD (autmata
finito determinista) M.
Ejemplo
Por ejemplo, el AFD del diagrama anterior se representa mediante M = (E, Q,
s, F, o) donde
Q = {q
0
, q
1
, q
2
}
E = {a, b}
s = q
0

F = {q
0
}
y o se define por la tabla o a b
q
0
q
1
q
2
q
1
q
2
q
0
q
2
q
2
q
2
q
1
q
0
q
2
a
b
a,b
a b
Construccin de diagramas de
transicin
Para construir un diagrama de transiciones a partir de una
descripcin de un autmata, se procede como sigue.
Se dibujan nodos para cada estado del autmata, luego se
trazan flechas desde cada estado q
i
hacia el q
j
etiquetndolas
con el smbolo de entrada correspondiente, se marca el estado
inicial y los estados de aceptacin.
Ejercicio
Obtener la expresin regular que representa el lenguaje
formado por todas las cadenas sobre {a, b} que tienen un
nmero par de bes. Construir el diagrama de transicin para
este lenguaje.
Ejercicio
Construir el diagrama de transicin para el lenguaje dado por
c*(a bc*)*. Convertir el diagrama en una tabla de transicin
de estados.
AFD y lenguajes
Definimos el lenguaje aceptado por un AFD M como
L(M) = {w e E
-
| w es aceptada por M}
Por tanto, L(M) es el conjunto de las cadenas que hacen que
M pase del estado inicial a un estado de aceptacin. Por
ejemplo, el siguiente AFD M = (E, Q, s, F, o) donde
Q = {q
0
, q
1
, q
2
, q
3
}
E = {a, b}
s = q
0

F = {q
0
, q
1
, q
2
}
y o definida por la tabla
o 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
Tiene el siguiente diagrama de transicin
acepta el lenguaje
L(M) = {w e {a, b}
*
| w no contiene tres bes consecutivas}
q
1
q
0
q
2
a
b
b
a
b
q
3
a
a, b
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 o(o(o(o(q
0
,b),b),a),b) = q
1
.
Esto puede abreviarse como o(q
0
,bbab).
Diremos que dos AFD M
1
y M
2
son equivalentes si L(M
1
) =
L(M
2
).
Autmata finito no determinista
Un autmata finito es no determinista si se permite que desde
un estado se realicen cero, una o ms transiciones para el
mismo smbolo de entrada.
El lenguaje a
*
b ab
*
tiene el siguiente AFD asociado.
q
1
q
0
q
2
a a,b
b
a
b
q
5
a
q
3
q
4
q
6
a,b
b
b
a,b
a
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 E en Q.
a
q
2
q
0
q
3
b
b a
q
1
q
4
b
a
Definicin
Definimos un autmata finito no determinista M como una
coleccin de cinco elementos:
1. Un alfabeto de entrada E.
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 A sobre (Q E) Q y se llama relacin
de transicin.
Por ejemplo, el AFN anterior se describe por medio de
Q = {q
0
, q
1
, q
2
, q
3
, q
4
}
F = {q
2
, q
3
, q
4
}
s = q
0

E = {a, b}
y A dada por la tabla
A a b
q
0
{q
1
, q
4
} {q
3
}
q
1
{q
1
} {q
2
}
q
2
C C
q
3
C C
q
4
C {q
4
}

a
a
q
2
q
0
q
3
b
b
q
1
q
4
b
a
Por ejemplo, el AFN siguiente reconoce (ab aba)*
Q = {q
0
, q
1
, q
2
}
F = {q
0
}
s = q
0

E = {a, b}
y A dada por la tabla
A
a b
q
0
{q
1
} C
q
1
C {q
0
, q
2
}
q
2
{q
0
} C

a
q
2
q
0
b
b
q
1
a
Lenguaje aceptado por un AFN
Si M es un AFN, el lenguaje aceptado por M se define como
L(M) = {w e E
-
| w es aceptada por M}
Para poder decidir si una cadena no es aceptada por un AFN
deben recorrerse todas las rutas posibles en el AFN para esa
cadena, y determinar que ninguna de estas lo lleva al algn
estado de aceptacin.
Ejemplo
Si X _ Q, vamos a interpretar A(X, o) como el conjunto {p | q
e X y p e A(q, o)}.
Para el autmata de la figura que reconoce el lenguaje (a
*
b
*
)
*

(aa bb) (a
*
b
*
)
*
. OBTENER LA TABLA DE TRANSICIN
Para este ejemplo A({q
0
, q
2
, q
3
}, b) = {q
0
, q
1
} {q
2
} C =
{q
0
, q
1
, q
2
}.
Para una secuencia de smbolos, por ejemplo abaab, se
puede escribir A(q
0
, abaab) = A(A(A(A(A(q
0
, a)b)a)a)b) =
{q
0
, q
1
, q
4
}.

Equivalencia de AFD y AFN
La definicin de equivalencia se extiende a los AFN, es decir,
dos autmatas (AFD o AFN) M
1
y M
2
son equivalentes si L(M
1
)
= L(M
2
).
a
a,b
a
a,b
b
a,b
Consideremos el AFN
A(q
0
, a) = {q
1
, q
2
}
A(q
0
, b) = C
A({q
1
, q
2
}, a) = C
A({q
1
, q
2
}, b) = {q
3
}
A(C, a) = A(C, b) = C
A(q
3
, a) = {q
2
}
A(q
3
, b) = C
A(q
2
, a) = C
A(q
2
, b) = {q
3
}
AFD equivalente
a b a
b
b
a b
a
a,b
{q
0
}
{q
1
,q
2
}
{q
3
}
{q
2
}
|
c-transiciones
Una c-transicin es una transicin entre dos estados que no consume
ningn smbolo.
c
a
q
0

q
1

a,c
a
q
0

q
1

b
q
2

A a b c
q
0
{q
1
} | |
q
1
| {q
2
} |
q
2
{q
0
} | {q
0
}
Acepta: a*
c-cerradura
Si un AFN tiene c-transiciones, la relacin de transicin A asocia pares de
Q (E {c}) Q con subconjuntos de Q.
Para todo estado q e Q definimos la c-cerradura de q como
c-c(q) = {p | p es accesible desde q sin consumir nada en la entrada}
Ampliaremos esta definicin para todo estado del conjunto de estados de
la siguiente manera
{ } ( )
( )
c c =
=
c q q q c q
i i i ik
k
n
n 1 2
1
, , ,

Estados que siguen a q
Para q e Q y o e E se define
d(q, o) = {p | hay una transicin de p a q etiquetada con o}
Ampliaremos esta definicin para todo estado del conjunto de estados de
la siguiente manera
{ } ( )
( ) d q q q d q
i i i ik
k
n
n 1 2
1
, , , , , ,

o o =
=
A partir de un AFN M = (E, Q, s, F, A) con c-transiciones, se puede construir
una AFN sin c-transiciones que acepte el mismo lenguaje. Se define M = (E, Q,
s, F', A') como
F' = F {q | c-c(q) F = C}
y A(q, o) = c-c(d(c-c(q), o)).
Ejemplo: eliminacin de c-
transiciones
q
0
q
1

a
c b
b
q
4

q
2

q
3
q
5

c
c
a
c-c(q
0
) = {q
0
,q
1
}
d({q
0
, q
1
},a) = {q
3
, q
4
}
c-c({q
3
, q
4
}) = {q
1
, q
3
, q
4
, q
5
}
A(q
0
,a) = {q
1
, q
3
, q
4
, q
5
}
d({q
0
, q
1
},b) = {q
2
}
c-c({q
2
}) = {q
2
}
A(q
0
,b) = {q
2
}
c-c(q
1
) = {q
1
}
d ({q
1
},a) = {q
4
}
c-c({q
4
}) = {q
4
,q
5
}
A(q
1
,a) = {q
4
,q
5
}
d ({q
1
},b) = {q
2
}
c-c({q
2
}) = {q
2
}
A(q
1
,b) = {q
2
}
c-c(q
2
) = {q
2
}
d ({q
2
},a) = {}
c-c({}) = {}
A(q
2
,a) = {}
d ({q
2
},b) = {}
c-c({}) = {}
A(q
2
,b) = {}
c-c(q
3
) = {q
1
, q
3
}
d ({q
1
, q
3
},a) = {q
4
}
c-c({q
4
}) = {q
4
,q
5
}
A(q
3
,a) = {q
4
,q
5
}
d ({q
1
, q
3
},b) = {q
2
,,q
4
}
c-c({q
2
,,q
4
}) = {q
2
,,q
4
,q
5
}
A(q
3
,b) = {q
2
,,q
4
,q
5
}
c-c(q
4
) = {q
4
,q
5
}
d ({q
4
, q
5
},a) = {}
c-c({}) = {}
A(q
4
,a) = {}
d ({q
4
, q
5
},b) = {}
c-c({}) = {}
A(q
4
,b) = {}
c-c(q
5
) = {q
5
}
d ({q
5
},a) = {}
c-c({}) = {}
A(q
5
,a) = {}
d ({q
5
},b) = {}
c-c({}) = {}
A(q
5
,b) = {}
Ejemplo: eliminacin de c-transiciones
A' a b
q
0
{q
1
, q
3
, q
4
, q
5
} {q
2
}
q
1
{q
4
,q
5
} {q
2
}
q
2
{} {}
q
3
{q
4
,q
5
} {q
2
,,q
4
,q
5
}
q
4
{} {}
q
5
{} {}
q
1

a
a
b
b
a,b
q
4

q
2

q
3
q
5

a
a
a
a,b
b
Autmatas finitos y expresiones
regulares
Para un alfabeto E se pueden construir AFN (o AFD) que acepten palabras
unitarias y el lenguaje vaco como se muestra en la figura
Sean M
1
= (E
1
, Q
1
, s
1
, F
1
, A
1
) y M
2
= (E
2
, Q
2
, s
2
, F
2
, A
2
) dos AFN. Podemos
unir M
1
y M
2
para que acepte L(M
1
) L(M
2
), aadiendo un nuevo estado
inicial s y dos c-transiciones una de s a s
1
, y otra de s a s
2
. La construccin
formal del nuevo AFN M = (E, Q, s, F, A) esta dada por E = E
1
E
2
, F = F
1

F
2
y Q = Q
1
Q
2
{s}.
a
q
1

q
2

q
1

Autmatas finitos y expresiones
regulares
Se pueden considerar las transiciones A
1
y A
2
como ternas ordenadas de Q
1

E Q
1
y Q
2
E Q
2
, donde (q, o, p) significa que existe una transicin de q a p
mediante el carcter o. De aqu
A = A
1
A
2
{(s, c, s
1
),(s, c, s
2
)}
Para los autmatas anteriores, se puede formar un AFN que acepte L(M
1
)L(M
2
).
Para esto, se agregan c-transiciones entre cada estado de aceptacin de M
1
y el
estado inicial de M
2
. El autmata que se obtiene es
Q = Q
1
Q
2

s = s
1

F = F
2

A= A
1
A
2
{F
1
{c} {s
2
}}
As
2
e A(q, c) para todo q e F
1

Autmatas finitos y expresiones
regulares
Es posible obtener L(M
2
)
*
de la siguiente forma. Primero se aade un estado
inicial de aceptacin s. Se agrega una c-transicin de este estado a s. Se
agrega adems, una c-transicin entre todos los estados de aceptacin y el
estado inicial s. El autmata resultante ser M' = (Q', E, s', F', A'), donde
Q = Q
1
{s}
s = s
1

F = {s}
A' = A
1
{(s, c, s)} (F
1
{c} {s})
Teorema 5
El conjunto de lenguajes aceptados por un autmata finito sobre el alfabeto E
contiene C y los lenguajes unitarios {a} para todo a e E. Este conjunto es
cerrado con respecto a la unin, concatenacin y la cerradura de estrella.
Consideremos un autmata finito M = (E, Q, s, F, A) y supongamos que s = q
0

es el estado inicial. Para todo estado q
i
sea
A
i
= {w e E
-
| A(q
i
, w) F = C}
Es decir, A
i
es el conjunto de las cadenas sobre E que hacen que M pase
desde q
i
hasta un estado de aceptacin. Obsrvese que A
0
= L(M).
para el autmata de la figura. se tiene
A
5
= C, A
2
= c
A
4
= c, A
1
= b
A
3
= a, A
0
= ab ba
a
a
q
0

q
2

b
q
3

q
1

q
4

q
5

a,b
a,b
a
b
b
Supongamos que q
j
e A(q
i
, o). Entonces A
i
contiene a oA
j
. De hecho, se tiene que
A
i
= {oA
j
| q
j
e A(q
i
, o)}
Por ejemplo, el anterior autmata
A
0
= aA
1
bA
2
, A
3
= aA
4
bA
5

A
1
= bA
2
aA
5
, A
4
= c aA
5
bA
5

A
2
= c aA
5
bA
5
, A
5
= C
Sustituyendo se obtiene que L(M) = ab ba.
Lema de Arden
Una ecuacin de la forma X = AX B, donde c e A, tiene una solucin
nica X = A
*
B.
Demostracin. A
*
B = (A c)B = A
+
B B = A(A
*
B) B, entonces A
*
B es
solucin.
Sea X = A
*
B C solucin donde C A
*
B = C. Sustituyendo
A
*
B C = A(A
*
B C) B
= A
+
B AC B
= A
+
B B AC
= (A
+
c)B AC
= A
*
B AC
Realizando la interseccin con C en ambos lados nos da C = AC C. Por
tanto C _ AC. Pero c e A, por tanto la cadena ms corta de AC debe ser
ms larga que la cadena ms corta de C. Esto solo se cumple si C = C.
Por tanto A
*
B es la nica solucin.
Lema 2. Sea M un autmata finito. Entonces existe una expresin regular r
para la cual L(r) = L(M).

Teorema 6 (Teorema de Kleene). Un lenguaje es regular si y slo si es
aceptado por un autmata finito.
Ejemplo
a
q
0
q
2

b
q
3

q
1

q
4

b
b
a a
a
b
A
0
= aA
1

A
1
= aA
2
bA
4
A
2
= aA
3
bA
4
A
3
= c aA
3
bA
4

A
4
= b*
A
3
= aA
2
b
+
c
= a*b*

A
2
= a
+
b* bb*

A
1
= a(a
+
b* b
+
) b
+
= aa
+
b* ab
+
b
+

A
0
= a
2
a
+
b* a
2
b
+
ab
+

Propiedades de los lenguajes
regulares
Sea un AFD M = (E, Q, s, F, o), donde Q contiene n estados. Si L(M) es infinito,
podemos encontrar w = a
1
, a
2
, , a
n+1
, que pertenezca a L(M). Si
q
1
= o(s, a
1
)
q
2
= o(q
1
, a
2
)
y as sucesivamente, obtendramos los n+1 estados, q
1
, q
2
, , q
n+1
.
Como Q tiene n estados, los q
i
no sern todos distintos. Para algunos ndices j y k, con 1 s
j < k s n+1, se tendr que q
j
= q
k
. Por lo tanto, habr un ciclo para llegar al estado de
aceptacin. Como se muestra en la figura
q
0
q
1

q
j
= q
k
q
j+1

q
k+1
q
n+1

El lazo tiene longitud de al menos 1. Las cadenas w = a
1
, a
2
, , a
j
, (a
j+1
,, a
k
)
m

a
k+1
,, a
n+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 uv
i
x e L para todo i > 0, con | v | > 1 y | ux | s n.
Este lema es utilizado para probar si un lenguaje es o no regular.
Ejemplo: sea
} 1 {
2
> = i a L
i
Toda cadena de L debe tener una longitud que sea un cuadrado perfecto.
Supongamos que cumple el lema del bombeo, entonces
uvx a
n
=
2
Se cumple que n
2
= |uvx| < |uv
2
x| <= n
2
+ n < (n+1)
2
Es decir, |uv
2
x| 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 = {a
m
b
m
| m>=0}. L es infinito.
Si se cumple el lema del bombeo se tiene que a
n
b
n
= |uvx| con | v | > 1 y | ux | s n.
Dado que | ux | s n, | v | < n, y por tanto consta solo de aes. Entonces v = a
s
, para s>=1.
Si u = a
r
, x = a
n(s + r)
b
n
.
Por lo tanto |uv
2
x| = a
r
a
2s
a
n(s + r)
b
n
= a
n + s
b
n
.
Dado que s>=1, la cadena no puede pertenecer a L.
Teorema 7
Sea M un autmata finito de k estados.
1. L(M) = C si y solo si M acepta una cadena de longitud menor que k.
2. L(M) es infinito si y solo si M acepta una cadena de longitud n, donde k s n s 2k.
Demostracin.
1. Si M acepta una cadena de longitud menor que k, entonces L(M) = C. Si L(M) =
C, entonces existe w e L(M). Supongamos | w | > k. Por el lema del bombeo w =
uvx, y uv
i
x e L(M). En particular, ux e L(M). Si | ux | s k, quedara probado, el
proceso se puede repetir para esta cadena hasta llegar a una longitud s k.
2. Supongamos w e L(M) con k s | w | s 2k. Pero por el lema del bombeo w = uvx, y
uv
i
x e 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 uv
i
x e L(M). Entonces ux e L(M). Si | ux | s 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 E. De las leyes de De Morgan
(E
-
- L) (E
-
- K) = E
-
- (L K)
Por tanto
L K = E
-
- (E
-
- (L K))
= E
-
- ((E
-
- L) (E
-
- 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 E = {a, b} y L = {ww
I
| w e E
-
}. Probaremos que L no es regular. Sea L
1

= {a
n
b
2k
a
n
| n, k > 0} no regular, y L
2
= {a
k
b
n
a
m
| k, n, m > 0} regular. Obsrvese que L
2

L = L
1
. Si L fuera regular, lo sera L
1
. Por tanto L no puede ser regular.
Indistinguibilidad
Sea M = (Q, E, o, q
0
, F) un AFD. Definimos la relacin de indistinguibilidad ~ en Q
como:

q, q e Q, q ~ q x, e E* (o(q, x) e F o(q, x))

La relacin ~ es una relacin de equivalencia que induce una particin en Q y vamos
a definir un autmata a partir de M, obtenido mediante la agrupacin de estados
pertenecientes al mismo bloque de la particin.
Minimizacin
a
q
0

q
2

b
q
3
q
1

q
4

b
b
a
a
a
b
q
5

q
6

q
7

a
b
b
b
a
a
b
a
q
6
se elimina porque no es accesible.
La particin inicial es
t
0
= {{q
0
, q
1
, q
2
, q
3
, q
5
, q
7
},{q
4
}}.
Llamamos
B
1
= {q
0
, q
1
, q
2
, q
3
, q
5
, q
7
} y B
2
= {q
4
}.
a b
q
0
B
1
B
1
q
1
B
1
B
1
q
2
B
1
B
2
q
3
B
2
B
1
q
5
B
1
B
1
q
7
B
1
B
2
q
4
B
1
B
2
De tabla anterior se obtiene t
1

La particin es
t
1
= {{q
0
, q
1
, q
5
}, {q
2
, q
7
}, {q
3
}, {q
4
}}.
Llamamos
B
1
= {q
0
, q
1
, q
5
}, B
2
= {q
2
, q
7
}, B
3
= {q
3
} y B
4
= {q
4
}.
a b
q
0
B
2
B
3
q
1
B
2
B
3
q
5
B
1
B
1
q
2
B
1
B
4
q
7
B
1
B
4
q
3
B
4
B
1
q
4
B
1
B
2
De tabla anterior se obtiene t
2

La particin es
t
2
= {{q
0
, q
1
}, { q
5
}, {q
2
, q
7
}, {q
3
}, {q
4
}}.
Llamamos
B
1
= {q
0
, q
1
}, B
2
= {q
2
, q
7
}, B
3
= {q
3
} y B
4
= {q
4
} y B
5
=
{q
5
}.
Puede verse que t
3
es igual a t
2
. Por lo tanto el AFD ya
est minimizado.
a b
q
0
B
2
B
3
q
1
B
2
B
3
q
2
B
5
B
4
q
7
B
5
B
4
q
3
B
4
B
5
q
4
B
1
B
4
q
5
B
5
B
1
Diagrama de transiciones
B
1
b
B
5

b
a
a
b
b
a
b
a
B
2
B
3
a b
B
1
B
2
B
3
B
2
B
5
B
4
B
3
B
4
B
5
B
4
B
1
B
4
B
5
B
5
B
1
B
4

a
Tarea
q
0
b
b
a
a
b
b
a
b
a
a
b
a
a,b
a,b
q
1
q
2
q
3
q
4
q
6
q
5
q
7
Minimizar
Aplicaciones de los autmatas finitos
Reconocedor de nmeros enteros
cualquier otro
carcter
1,2, ..., 9
q
2
q
0
q
1
0,1,2, ..., 9
cualquier otro
carcter
cualquier otro
carcter
1. i = 1
2. ok = verdadero
3. long = longitud(s)
4. si s[i] en num entonces
i = i+1
mientras i<long y ok
si s[i] en num
i = i + 1
sino
ok = falso
fin si
fin mientras
sino
ok = falso

Anda mungkin juga menyukai