Teoría de autómatas finitos deterministas y lenguajes regulares
1. Cap¶
³tulo 3
Teor¶ de aut¶matas y
³a o
lenguajes regulares.
Los lenguajes regulares son de¯nidos mediante expresiones regulares y son
aceptados por un tipo especial de m¶quina de estados ¯nitos llamada aut¶ma-
a o
ta.
Un aut¶mata puede verse c¶mo una caja negra que reciben una entrada y
o o
produce una salida. El autom¶ta se dice que es ¯nito ya que realiza un
a
n¶ mero ¯nito de instrucciones y determina la salida, en ese momento el
u
aut¶mata termina su ejecuci¶n.
o o
Existen dos tipos de a¶ tomatas ¯nitos: deterministas y no deterministas.
u
La diferencia r¶dica en que el determinista, dada la entrada, en cada paso
a
s¶lo tiene una opci¶n para continuar, mientras que el no determinista puede
o o
tener varias opciones. Para que la diferencia sea clara veamos los siguiente
ejemplos:
Ejemplo 1 Determinista: Mar¶a le dice a Beto que va a tirar un volado: si
³
cae sol, entonces ella gana y si cae aguila ella pierde.
Ejemplo 2 No Determinista: Ahora Mar¶a le propone a Beto que si cae sol
³
ella gana y si cae aguila entonces hay dos opciones, que ella acepte que ha
perdido o tira un nuevo volado con las mismas reglas.
En este cap¶³tulo estudiaremos primero los autom¶tas ¯nitos deterministas,
a
despu¶s los no deterministas y ¯nalmente veremos la relaci¶n entre los au-
e o
tom¶tas ¯nitos y las expresiones regulares.
a
Teor¶ de la Computaci¶n
³a o Maricela Quintana
23
ITESM-CEM Dept. C.C. Jes¶s S¶nchez
u a
2. ¶
3.1. AUTOMATAS FINITOS DETERMINISTAS.
3.1 Aut¶matas ¯nitos deterministas.
o
Un aut¶mata ¯nito determinista AFD, es una m¶quina abstracta que dada
o a
una entrada produce una salida. Esta m¶quina tiene un n¶mero ¯nito de
a u
estados, (m¶quina de estados ¯nitos) de forma que al ejecutarse la m¶quina
a a
est¶ en el estado inicial y cuando termina debe estar en un estado ¯nal o en
a
un estado inv¶lido o de error.
a
La m¶quina va del estado inicial al ¯nal mediante una serie de estados in-
a
termedios; el cambio de estado est¶ determinado por el estado en el que se
a
encuentra la m¶quina y el s¶
a ³mbolo a procesar de la entrada.
Figura~3.1: Un aut¶mata ¯nito determinista.
o
Un AFD es utilizado para determinar si una cadena dada como entrada per-
tenece al lenguaje que el autom¶ta reconoce. Es claro que el funcionamiento
a
del aut¶mata obedece a las reglas de cambio de estado; estas reglas son es-
o
peci¯cadas mediante una funci¶n de transici¶n ¶ diagrama de transiciones,
o o o
que podemos decir de¯ne a la m¶quina de estados.
a
3.1.1 Introducir el concepto de diagrama de transicio-
nes o m¶quina de estados.
a
Un aut¶mata ¯nito es el modelo matem¶tico de un sistema que cuenta con
o a
un n¶mero in¯nito de con¯guraciones internas o estados.
u
Un diagrama de transici¶n o una funci¶n de transici¶n especi¯ca lo que la
o o o
m¶quina debe hacer si su situaci¶n cumple con ciertas condiciones. La si-
a o
tuaci¶n de un AFD, que reconoce un lenguaje, est¶ formado por el estado
o a
Teor¶ de la Computaci¶n
³a o Maricela Quintana
24
ITESM-CEM Dept. C.C. Jes¶s S¶nchez
u a
3. CAP¶ ¶
³TULO 3. TEOR¶ DE AUTOMATAS Y LENGUAJES
³A
REGULARES.
en que el autom¶ta est¶ y el s¶
a a ³mbolo que se est¶ analizando de la entrada.
a
As¶ la funci¶n de transici¶n del AFD de la ¯gura 3.1 es:
³ o o
E a b c d
0 1 ; 3 ;
1 ; 2 3 1
2 ; 2 3 ;
3 ; ; ; ;
La lectura de las reglas del diagrama de transici¶n es como sigue:
o
² Si estas en el estado cero y el s¶
³mbolo a procesar es a,entonces ve al
estado uno.
² Si estas en el estado uno y el s¶
³mbolo a procesar es c, entonces ve al
estado tres.
Otra forma de representar el comportamiento del AFD es mediante un dia-
grama de transici¶n, ¶ste es un grafo donde los nodos representan estados, y
o e
las °echas transiciones entre estados ocasionadas por la lectura del caracter
etiquetado en el arco.
Al observar el diagrama de transici¶n podr¶
o ³amos preguntarnos >cu¶l es el es-
a
tado inicial? o >cu¶les son los estados ¯nales? En el rengl¶n correspondiente
a o
³mbolo a, >qu¶ signi¯ca ;? Para dar respuesta a estas
al estado dos, bajo el s¶ e
preguntas, no basta con tener la funci¶n de transici¶n, necesitamos los dem¶s
o o a
componentes del AFD.
3.1.2 Especi¯car cu¶les son los elementos que confor-
a
man a una m¶quina de estados.
a
Un aut¶mata ¯nito determinista (AFD) M es una tupla M = (S; §; ±; S0 ; F )
o
donde
² S es el conjunto ¯nito de estados.
² § es un alfabeto.
Teor¶ de la Computaci¶n
³a o Maricela Quintana
25
ITESM-CEM Dept. C.C. Jes¶s S¶nchez
u a
4. ¶
3.1. AUTOMATAS FINITOS DETERMINISTAS.
² ± es una funci¶n de transici¶n:
o o
± : S£§!S (3.1)
b
± : S £ §¤ ! S (3.2)
² S0 es el estado inicial.
² F µ S es el conjunto de estados ¯nales.
La forma de denotar el estado inicial en un diagrama de transici¶n es me-
o
diante una punta de °echa. Los estados ¯nales se especi¯can colocando un
circulo interno en el nodo (ver ¯gura 3.1).
Un AFD lee la entrada de izquierda a derecha; un s¶ ³mbolo a la vez. Una vez
que el s¶³mbolo ha sido procesado ya no tiene ning¶n efecto en el resto del
u
proceso. En cualquier paso de la ejecuci¶n, el resultado depende unicamente
o ¶
del estado actual y la cadena a procesar. A esta combinaci¶n estado-cadena"
o
se le llama descripci¶n instant¶nea.
o a
Una descripci¶n instant¶nea de un aut¶mata es un par (s; x) donde s repre-
o a o
senta el estado donde se encuentra el aut¶mata en un momento dado, y x es
o
una cadena conteniendo los caracteres de entrada a¶ n no le¶
u ³dos. Si x = ay y
±(Si ; a) = Sj tenemos que:
(Si ; ay) `M (Sj ; y) (3.3)
¤
³mbolo `M signi¯ca en un paso del autom¶ta. De manera similar `M y
El s¶ a
+
`M signi¯can en cero o m¶s pasos y en uno o m¶s pasos respectivamente.
a a
¤
Un AFD reconoce a la cadena w como parte del lenguje si: (S0 ; w) `M (Si ; ¸)
y (Si 2 F )
P
Ejemplo 3 Las cadenas sobre = fa; bg que tienen a la subcadena bb o no
tienen a la subcadena aa son aceptadas por el DFA M de la ¯gura 3.2.
P
M = fS = fS0 ,S1 ,S2 ,S3 ,S4 ,S5 g, = fa; bg, ±, S0 , F = fS0 ,S1 ,S4 ,S5 gg
a) funci¶n de transici¶n
o o
Teor¶ de la Computaci¶n
³a o Maricela Quintana
26
ITESM-CEM Dept. C.C. Jes¶s S¶nchez
u a
5. CAP¶ ¶
³TULO 3. TEOR¶ DE AUTOMATAS Y LENGUAJES
³A
REGULARES.
Figura~3.2: Un aut¶mata que acepta strings conteniendo bb o no conteniendo
o
aa.
E a b
0 1 4
1 2 4
2 2 3
3 2 5
4 1 5
5 5 5
b) Descripciones de las cadenas abbab, babab, aab,aabba
² (S0 ; abbab) `M (S1 ; bbab) `M (S4 ; bab) `M (S5 ; ab) `M (S5 ; b) `M
(S5 ; ¸)
² (S0 ; babab) `M (S4 ; abab) `M (S1 ; bab) `M (S4 ; ab) `M (S1 ; b) `M
(S4 ; ¸)
² (S0 ; aab) `M (S1 ; ab) `M (S2 ; b) `M (S3 ; ¸)
² (S0 ; aabba) `M (S1 ; abba) `M (S2 ; bba) `M (S3 ; ba) `M (S5 ; a) `M
(S5 ; ¸)
3.1.3 Explicar que una m¶quina de estados (aut¶mata)
a o
es util para generar lenguajes.
¶
Un aut¶mata puede ser usado para representar un lenguaje, si se considera
o
P
la entrada como una cadena de caracteres ¤ . La cadena x es aceptada por
Teor¶ de la Computaci¶n
³a o Maricela Quintana
27
ITESM-CEM Dept. C.C. Jes¶s S¶nchez
u a
6. ¶
3.1. AUTOMATAS FINITOS DETERMINISTAS.
un AFD M si ¤
(S0 ; w) `M (Si ; ¸) y Si 2 F (3.4)
P
Ejemplo 4 Queremos generar L sobre = f1; 2g de todas las palabras que
contienen s¶lo un uno (al inicio) y por lo menos un dos al ¯nal. Es decir que
o
12, 1222, 12222 son palabras que pertenecen al lenguaje. De manera similar,
el aut¶mata de la ¯gura 3.3 reconoce a L = abb¤ .
o
Figura~3.3: Un aut¶mata que reconoce abb¤
o
3.1.4 De¯nir los t¶rminos: lenguaje generado por un
e
aut¶mata y equivalencia entre aut¶matas.
o o
El lenguaje de un AFD M, denotado L(M) es el conjunto de cadenas sobre
P¤
aceptadas por M. L siempre es regular.
¤
L(M ) = fwj(S0 ; w) `M (Si ; ¸) y Si 2 F g (3.5)
Ejemplo 5 El lenguaje generado por el AFD de la ¯gura 3.4 es L(M ) = ab+
Dos aut¶matas M1 y M2 son equivalentes si aceptan el mismo lenguaje, esto
o
es, L(M1 ) = L(M2 ).
Ejemplo 6 Los autom¶tas de las ¯guras 3.3 y 3.4 reconocen los lenguajes
a
L1 = abb y L2 = ab , dado que abb¤ = ab+ los aut¶matas reconocen el
¤ +
o
mismo lenguaje y por lo tanto son equivalentes.
Teor¶ de la Computaci¶n
³a o Maricela Quintana
28
ITESM-CEM Dept. C.C. Jes¶s S¶nchez
u a
7. CAP¶ ¶
³TULO 3. TEOR¶ DE AUTOMATAS Y LENGUAJES
³A
REGULARES.
Figura~3.4: Aut¶mata que reconoce ab+
o
3.1.5 Establecer las caracter¶
³sticas particulares de un
aut¶mata determinista.
o
Un aut¶mata determinista produce como salida dos posibles respuestas: ca-
o
dena aceptada o rechazada. Un AFD por de¯nici¶n debe procesar toda la
o
entrada.
Ejemplo 7 Al procesar la entrada w=ababb en el AFD de la ¯gura 3.3 ocurra
lo siguiente
(S0 ; ababb) `M (S1 ; babb) `M (S2 ; abb) `M (;; abb)
En ese momento sabemos perfectamente que la salida sera: rechazada.
El tipo de determinismo de los aut¶matas mostrados es llamado determi-
o
nismo incompleto. En ¶stos cada con¯guraci¶n tiene a lo m¶s una acci¶n
e o a o
especi¯cada. Las transiciones de la m¶quina est¶n de¯nidas por una funci¶n
a a o
P
parcial ± : S £ ! S. En el momento en que es posible determinar que una
cadena es rechazada, el proceso termina. Si el procesamiento termina antes
de haber analizado toda la cadena de entrada, la cadena es rechazada.
Una especi¯caci¶n incompleta de un DFA es transformada f¶cilmente a un
o a
DFA equivalente a~ adiendo un estado de error. En este estado se entra cada
n
vez que la m¶quina llega a una con¯guraci¶n para la cual no se ha especi¯cado
a o
alguna acci¶n. En este punto, la m¶quina lee el resto de la cadena y termina.
o a
Ejemplo 8 Para convertir el DFA de la ¯gura 3.3 especi¯cado incompleta-
mente, debemos agregar el estado S3 y las transiciones siguientes:
±(S0 ; b) = S3 , ±(S1 ; a) = S3 , ±(S2 ; a) = S3 , ±(S3 ; a) = S3 , ±(S3 ; b) = S3
El estado S3 ser¶ el estado de error. As¶ el procesamiento de la entrada
a ³
ababb es:
(S0 ; ababb) `M (S1 ; babb) `M (S2 ; abb) `M (S3 ; abb) `M (S3 ; bb) `M
(S3 ; b) `M (S3 ; ¸)
Teor¶ de la Computaci¶n
³a o Maricela Quintana
29
ITESM-CEM Dept. C.C. Jes¶s S¶nchez
u a
8. ¶
3.2. AUTOMATAS NO-DETERMINISTAS.
3.2 Aut¶matas no-deterministas.
o
Los aut¶matas que se analizaron en la secci¶n anterior responden de manera
o o
¶
determinista a una entrada. Esto signi¯ca que siempre responden de manera
unica a una entrada. Los aut¶matas no-deterministas pueden responder de
¶ o
varias maneras a una entrada. Inclusive pueden cambiar de estado sin leer
ning¶n caracter de entrada. A ¶sto se le llama transici¶n vac¶ (o transici¶n
u e o ³a o
¸) .
3.2.1 Especi¯car las caracter¶
³sticas de aut¶mata no-
o
determin¶
³stico
Un aut¶mata ¯nito no determinista (AFN) M es una tupla M = (S; §; ±; S0 ; F )
o
donde
² S es el conjunto ¯nito de estados.
² § es un alfabeto.
² ± es una funci¶n de transici¶n:
o o
± : S £ (§ [ f¸g) ! S ¤ (3.6)
² S0 es el estado inicial.
² F µ S es el conjunto de estados ¯nales.
Note que a diferencia de los aut¶matas deterministas, la regla de transi-
o
ci¶n de los AFN indica que un caracter (o ninguno) puede llevarnos de un
o
¶
estado a varios otros. Esto implica que hay varios caminos de ejecuci¶n que el
o
aut¶mata debe seguir. Si en alguno de los caminos de ejecuci¶n el aut¶mata
o o o
acepta una cadena de entrada, la cadena es aceptada. Es decir:
^
L(M ) = fx 2 §¤ j ± (S0 ; x) F 6= ;g (3.7)
Teor¶ de la Computaci¶n
³a o Maricela Quintana
30
ITESM-CEM Dept. C.C. Jes¶s S¶nchez
u a
9. CAP¶ ¶
³TULO 3. TEOR¶ DE AUTOMATAS Y LENGUAJES
³A
REGULARES.
3.2.2 Introducir el concepto de transiciones m¶ltiples
u
y transiciones nulas.
Un AFN permite varias transiciones posibles a partir de un mismo s¶³mbolo.
Adem¶s, puede haber transiciones nulas (o instant¶neas) no ocasionadas por
a a
s¶
³mbolos.
Ejemplo 9 Suponga que tenemos
X
M = (Q; ; ±; q0 ; fq2 ; q4 g) (3.8)
donde
± 0 1
q0 fq0 ; q3 g fq0 ; q1 g
q1 ; fq2 g
q2 fq2 g fq2 g
q3 fq4 g ;
q4 fq4 g fq4 g
^
Encontremos ± (q0 ; 01001) viendo las descripciones instant¶neas de la eje-
a
cuci¶n:
o
(q0 ; 01001) ` (fq0 ; q3 g; 1001) ` (fq0 ; q1 g [ ;; 001) ` (fq0 ; q3 g [ ;; 01)
` (fq0 ; q3 g [ fq4 g; 1) ` (fq0 ; q1 g [ ; [ fq4 g; ¸)
^
Por lo que ± (q0 ; 01001) = fq0 ; q1 ; q4 g: En esta corrida hubo varios cami-
nos de ejecuci¶n representados por la uni¶n de diferentes estados actuales.
o o
Note que un ; signi¯ca un camino que no puede continuar. La cadena es
aceptada por el aut¶mata pues
o
fq0 ; q1 ; q4 g fq2 ; q4 g = fq4 g 6= ;
Una transici¶n instant¶nea puede ser usada, aprovechando los m¶ ltiples
o a u
caminos de ejecuci¶n, para unir funcionalidades de aut¶matas.
o o
Ejemplo 10 En la ¯gura siguiente podemos ver el uso de las transiciones
vac¶ para obtener, en el primer caso, un aut¶mata que reconoce L(M1 ) [
³as o
L(M2 ), y en el segundo caso L(M1 )L(M2 ):
Teor¶ de la Computaci¶n
³a o Maricela Quintana
31
ITESM-CEM Dept. C.C. Jes¶s S¶nchez
u a
10. ¶
3.2. AUTOMATAS NO-DETERMINISTAS.
λ λ
L(M1)
λ
L(M1) L(M2)
λ L(M2) λ
Figura~3.5: Uso de transiciones vac¶
³as.
3.2.3 Describir las facilidades que proporcionan este
tipo de aut¶matas para el dise~o de ciertos ti-
o n
pos de lenguajes, as¶ como las di¯cultades que
³
presentan para su automatizaci¶n.
o
Los AFN tienen un poder de representaci¶n mayor que los AFD, pues con
o
pocos estados es posible representar un funcionamiento complejo. Sin em-
bargo el poder de expresi¶n es el mismo, pues cualquier AFN tiene un AFD
o
equivalente.
Puede resultar dif¶ construir un programa que simule un AFN pues se
³cil
necesita guardar un espacio de estados enorme. Es por ello que normalmente
son convertidos a su AFD equivalente.
3.2.4 Explicar c¶mo puede convertirse un aut¶mata
o o
no-determin¶³stico a uno determin¶
³stico.
Primero hay que ver c¶mo quitar las transiciones nulas para transformar un
o
AFN-2 a su equivalente AFN. Primero hay que calcular
[
b
± : S £ (§ f¸g)¤ ! S (3.9)
utilizando la notaci¶n de cerradura-¸(q), que es el conjunto de v¶rtices p tales
o e
que hay un camino de ¸ entre q y p.
Teor¶ de la Computaci¶n
³a o Maricela Quintana
32
ITESM-CEM Dept. C.C. Jes¶s S¶nchez
u a