Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Automatas PDF
Automatas PDF
Ejemplos:
19
Inmaculada Luengo
2. Autmatas Finitos 2.1 Autmatas Finitos Deterministas (AFD)
Sea M1 = (Q, , , q0,F) donde Q={p,q,r}, ={a,b}, Sea p el estado inicial, F={r} y
definida como sigue:
(p,a)=q (p,b)=r
(q,a)=p (q,b)=q
(r,a)=r (r,b)=r
Tabla 2.1. Funcin de transicin de M1.
Para visualizarlo de alguna forma imaginemos una especie de circuito electrico con
tantas bombillas como estados, las correspondientes a los estados finales de color verde,
las dems amarillas. Sobre una cinta de entrada escribimos una palabra con smbolos del
alfabeto de entrada. Al poner a funcionar la mquina se enciende la bombilla
correspondiente al estado inicial. A partir de ese momento se procesa el smbolo actual
en la cinta de entrada transitando al estado definido en cada momento por la funcin de
transicin hasta que la palabra de la entrada haya sido leido completa.
Con un diagrama:
Cada estado no final se representa con un crculo; cada estado final se representa
con un doble crculo; se seala el estado inicial con una flecha entrando, sin
20
Inmaculada Luengo
2. Autmatas Finitos 2.1 Autmatas Finitos Deterministas (AFD)
etiqueta; por cada transicin (q,a)=t se dibuja una flecha dirigida del estado de
partida q al de llegada llegada t etiquetada a
Ejemplos:
a b
p q r
q p q
*r r r
Tabla 2.2. Autmata finito determinista M1.
Observemos que cada una de ambas representaciones contiene toda la informacin del
autmata.
21
Inmaculada Luengo
2. Autmatas Finitos 2.1 Autmatas Finitos Deterministas (AFD)
( )
Ahora definimos q Q , (q , ) = (q , xa ) = (q , x ), a .
Ejemplo:
22
Inmaculada Luengo
2. Autmatas Finitos 2.1 Autmatas Finitos Deterministas (AFD)
( )
(q ,ba ) = (q ,b ), a = (q , a ) = p
( )
(q ,bab ) = (q ,ba ),b = ( p ,b ) = r
En el diagrama se pueden seguir los arcos desde q, con los smbolos bab
consecutivamente y se observa que terminamos en el estado r.
Ejemplos:
Las cadenas abb, baa, b, abbaaa son palabras aceptadas por M1. Las cadenas 01, 0001,
001001 son palabras aceptadas por M2.
Ejemplos:
El lenguaje de M2 son todas las cadenas de ceros y unos que empiezan por cero y tiene
al menos un uno
L(M ) = {x1y : x , y * }
Segn lo que hemos dicho hasta el momento los AFDs se caracterizan por las palabras
que aceptan y es menos importante la estructura interna de la mquina, el nmero de
23
Inmaculada Luengo
2. Autmatas Finitos 2.1 Autmatas Finitos Deterministas (AFD)
estados, cuntos estados finales tenga, etc Digamos que un AFD es principalmente
una especie de filtro de todas las cadenas posibles sobre el alfabeto de entrada. Los
AFDs tienen muchas utilidades, en particular a nosotros nos interesa especialmente su
utilidad como analizadores lxicos. Cuando, por ejemplo, en un programa necesitamos
una expresin algebraica del tipo (a+b)*c/(d+e) debe estar correctamente escrita y de
comprobarlo se encarga precisamente un analizador construido a partir de un autmata.
Lo ms normal es que tengamos un lenguaje de inters L sobre un alfabeto y
construyamos un AFD cuyo lenguaje sea precisamente L.
Ejemplo:
q inaccesible si * , (q 0 , ) q
Los estados que no son inaccesibles decimos que son accesibles. Si eliminamos los
estados inaccesibles y todas sus transiciones el AFD obtenido es equivalente al dado.
24
Inmaculada Luengo
2. Autmatas Finitos 2.1 Autmatas Finitos Deterministas (AFD)
Ejemplo:
Ejemplo:
25
Inmaculada Luengo
2. Autmatas Finitos 2.1 Autmatas Finitos Deterministas (AFD)
columnas son exactamente la tabla del autmata, sin marcar el estado inicial ni los
finales, y la ltima columna se rellena de la siguiente manera: si la fila corresponde a un
estado final qiF, entonces mic="aceptar", pero si qiF, entonces mic="e".
Un algoritmo genrico, debe tratar de emular el funcionamiento del AFD, para
ello se inicializa una variable 'estado' con el estado inicial de la mquina concreta que
tengamos y a partir de ah se manda leer de la entrada, clasificar el smbolo ledo, y en
caso de que sea vlido cambiar de estado segn lo que diga la matriz introducida. Si
cuando se ha acabado de leer la palabra completa, es decir cuando el smbolo actual en
la cinta de entrada es la marca de 'fin de cadena', no se ha alcanzado un estado final, la
palabra leda no es del lenguaje del AFD y en la tabla se lee 'e' (recurdese como se
construy la columna de la matriz de entrada rotulada con 'fdc') y debe dar un mensaje
de error; si la palabra ha logrado llegar a un estado final el estado que se alcance ser
'Aceptar'. Este modelo es vlido para cualquier AFD. Pasamos estas ideas a un
algoritmo genrico:
ESTADO:=q0
REPETIR
LEER siguiente smbolo
CASO smbolo DE
SI smbolo, ENTRADA:=smbolo
SI smbolo es la marca de fin de cadena, ENTRADA:="fdc"
SI smbolo no es ninguno de los anteriores, salir a la rutina de ERROR
FIN CASO
ESTADO:= Tabla(ESTADO, ENTRADA)
SI ESTADO:="e" ENTONCES salir a la rutina de ERROR
26
Inmaculada Luengo
2. Autmatas Finitos 2.1 Autmatas Finitos Deterministas (AFD)
FIN SI
HASTA ESTADO:="aceptar"
Ejemplo:
a b fdc
p q r e
q p q e
r r r aceptar
Tabla 2.2. Tabla del analizador lxico del autmata M1.
Ejemplo:
La matriz asociada a M3 es
0 1 fdc
p q s e
q r q e
r s s aceptar
s s s e
Tabla 2.2. Tabla del analizador lxico del autmata M3 completo.
o bien
0 1 fdc
p q e e
q r q e
r e e aceptar
27
Inmaculada Luengo
2. Autmatas Finitos 2.1 Autmatas Finitos Deterministas (AFD)
Tabla 2.3. Tabla del analizador lxico del autmata M3 sin el estado de absorcin.
Sea (Q, , q0, , F) un AFD. Definimos una relacin de equivalencia en Q: Dos estados
p,qQ son equivalentes,
pEq, si *, se tiene ((p,)F(q,)F)
El conjunto de estados del AFD mnimo es el conjunto cociente de esta relacin de
equivalencia de estados Q/E.
Para el clculo de este conjunto cociente definimos:
Dos estados p,qQ son equivalentes de orden r (r0),
pErq, si * tal que ||r se tiene ((p,)F(q,)F)
Para cada r la relacin Er es de equivalencia. De las definiciones anteriores se tiene
pEqpErq, r0.
28
Inmaculada Luengo
2. Autmatas Finitos 2.1 Autmatas Finitos Deterministas (AFD)
Ejemplo:
a b
p r q
q r q
*r s t
*s r t
t t q
u u p
Tabla 2.4. Tabla del autmata M4.
a b
p r q
q r q
*r s t
*s r t
t t q
Tabla 2.5. Tabla del autmata M4 sin el estdo inaccesible u.
Cuidamos de que estn todas las transiciones (el AFD debe estar completo antes de
minimizarlo).
Consideramos ahora el cociente
vemos que se ajusta al punto i) anterior, luego esa clase entera pasa a ser una clase
tambin en Q/E1.
Veamos ahora lo que ocurre con la clase C02 de Q/E0. Consideramos
(C02, a) = ([p,q,t],a) = {r,t}
(C02, b) = ([p,q,t],b) = {q} C2
como (C02,a) C01 y (C2,a) C02, estos tres estados no son equivalentes de
orden 1. Estamos en el caso descrito en el punto ii) por lo que tenemos que dividir
esa clase en dos subclases que s verifiquen la propiedad mencionada. La divisin
correcta es
C13 = {t} (con el primer subndice indicamos siempre a que cociente pertenece, en
este caso a Q/E1).
Estudiamos ahora el conjunto Q/E2. La clase C11 pasa tal cual (comprobarlo), la
clase C13 tambin porque es una clase unitaria y no se puede subdividir ms. En
cuanto a la clase C12 = {p,q} ser
(C12,a) = {r}C1
(C12,b) = {q}C2
Este proceso se suele escribir ordenadamente en una tabla cuyas filas son clases y cuyas
columnas van rotuladas con los smbolos del alfabeto de entrada. En el cruce de fila y
columna se pone el conjunto imagen de la clase completa con el smbolo
correspondiente. Si est contenido en alguna de las clases actuales se mantiene y si no
est contenido en ninguna se subdivide y se vuelve a empezar. En nuestro caso quedara
algo as
30
Inmaculada Luengo
2. Autmatas Finitos 2.1 Autmatas Finitos Deterministas (AFD)
a b
[r,s] {r,s}C1 qC2
[p,q,t] {r,t}C1,C2
[p,q] {r}C1 {q}C21
[t] {t}C22 {q}C21
Tabla 2.6. Tabla para la minimizacin de M4.
a b a b
*C1 C1 C3 [p,q [r,s] [p,q]
C2 C1 C2 O bien *[r,s] [r,s] [t]
C3 C3 C2 [t] [t] [p,q]
Tabla 2.7. AFD mnimo equivalente a M4.
Ejemplo:
Sea M5= (Q,,q0,,F) siendo Q={p,q,r,s}, ={0,1,2}, sea p el estado inicial, F={q,s} y
la funcin de transicin dada por
(p,0)={q,r} (p,1)=
(q,0)={q} (q,1)={q,s}
(r,0)= (r,1)={s}
(s,0)={p} (s,1)=
Con una tabla: se ponen tantas filas como estados, y tantas columnas como
smbolos forman el alfabeto. Marcamos el estado inicial con una flecha de entrada
y cada uno de los estados finales con un asterisco. En cruce de la fila marcada con
el estado q y la columna marcada con el smbolo a del alfabeto ponemos el
conjunto de estados dado por (q,a).
Con un diagrama: Cada estado no final se representa con un circulo; cada estado
final se representa con un doble circulo; se seala el estado inicial con una flecha
32
Inmaculada Luengo
2. Autmatas Finitos 2.2 Autmatas Finitos no Deterministas (AFND)
entrando, sin etiqueta; si (q,a)=A, por cada estado rA se dibuja una flecha
dirigida del estado de partida q al de llegada r etiquetada a.
Ejemplo:
0 1
p q,r
*q q q,s
r s
*s p
Tabla 2.8. Tabla de transiciones de M5.
Y con un diagrama
Observemos que este AFND presenta dos puntos de no determinismo: uno en 'p' con 0
que pasa a 'q' y a 'r', y otro en 'q' con uno que pasa a 'q' y a 's'. Observemos tambin que
tanto la tabla como el diagrama contienen toda la informacin del autmata.
Podemos visualizarlo casi como un AFD: bombillas que se vern encendidas cuando el
estado en cuestin est activo, las bombillas de estado final de un color diferente-
digamos, verde- y una palabra que ser procesada smbolo a smbolo en la cinta de
entrada. Al comenzar se enciende slo el estado inicial; a partir de ese momento y a
diferencia de lo que sucede en los AFDs, en cada momento podra verse encedido un
solo estado, varios o incluso apagarse todos, precisamente debido a que las transiciones
33
Inmaculada Luengo
2. Autmatas Finitos 2.2 Autmatas Finitos no Deterministas (AFND)
ahora son conjuntos de estados. (En los AFDs en todo momento se encuentra
exactamente un estado activo).
( A, a ) = (r , a )
r A
Definimos Q *
P(Q ) , por recurrencia sobre la longitud de la palabra .
Sea * tal que ||=n+1, entonces se puede escribir =xa con |x|=n y a.
Ahora definimos qQ ,
( )
(q , xa ) = (q , x ), a = (r , a )
r ( q ,x )
Sea * decimos que es una palabra aceptada por el AFND si partiendo del estado
inicial logra alcanzar alguno de los estados finales, es decir si
(q0 , ) F
Ejemplo:
34
Inmaculada Luengo
2. Autmatas Finitos 2.2 Autmatas Finitos no Deterministas (AFND)
L(M)={* : (q0,) F }
F = {BP(Q) : BF }
(A,a)=(A,a)=qA(q,a)
35
Inmaculada Luengo
2. Autmatas Finitos 2.2 Autmatas Finitos no Deterministas (AFND)
es decir la unin de todos los estados que se alcanzan en la mquina dada desde los
estados que estn en A, con el smbolo a. Ahora M=(Q, , {q0}, , F) es un AFD y
afirmamos que L(M)=L(M).
Ejemplo:
Vamos a construir un AFD equivalente a M5. Aunque hemos dicho de forma genrica
que el conjunto de estados para la mquina nueva es P(Q), la mayora de las veces
muchos de estos nuevos estados van a ser inaccesibles por lo que podremos eliminarlos.
Lo que se hace es ir aadiendo estados a partir del estado inicial que en este caso es {p},
segn vayan apareciendo al definir la nueva tabla de transiciones. As, al comenzar, es
una tabla abierta, no sabemos cuntos de los nuevos estados sern accesibles. (Por
comodidad no escribimos las llaves de conjunto).
Las tablas de M5 y M5 son respectivamente
0 1
0 1 p q,r
p q,r *q,r q q,s
*q q q,s
r s q q q,s
*s p *q,s p,q q,s
*p,q q,r q,s
Tabla 2.9. M5 (izquierda) y M5 (derecha), AFD equivalente a M5.
36
Inmaculada Luengo
2. Autmatas Finitos 2.2 Autmatas Finitos no Deterministas (AFND)
Una de las caractersticas de los autmatas vistos hasta ahora es que sin lectura de un
smbolo del alfabeto no hay transicin. El tipo de mquina que vamos a definir a
continuacin elimina esta restriccin permitiendo cambios de estado sin lectura.
37
Inmaculada Luengo
2. Autmatas Finitos 2.2 Autmatas Finitos no Deterministas con -transiciones (AFND-)
Ejemplo:
1. Con una tabla: Se ponen tantas filas como estados rotuladas con los nombres de
los estados; tantas columnas como smbolos tenga el alfabeto de entrada rotuladas
con los nombres de los smbolos y se aade una columna rotulada . En el cruce de
fila y columna se escribe el conjunto (q,a), como es habitual.
Ejemplo:
0 1
p q,r r
*q q q,s p
38
Inmaculada Luengo
2. Autmatas Finitos 2.2 Autmatas Finitos no Deterministas con -transiciones (AFND-)
r s
*s p
Tabla 2.10. Tabla para el AFND-,M6.
Y el diagrama
Ejemplo:
(A,a)=rA(r,a)
39
Inmaculada Luengo
2. Autmatas Finitos 2.2 Autmatas Finitos no Deterministas con -transiciones (AFND-)
Ser ahora :Q*P(Q) y definimos como siempre (q,) por recurrencia sobre la
longitud de .
Si ||=0 entonces =, definimos qQ, (q,)=-cl(q) (desde q, sin entrada de
ningn smbolo, se alcanzan todos los estados de la -cl(q)).
Supongamos definido (q , x ) para cada palabra x tal que |x|n.
Sea * tal que ||=n+1, entonces se puede escribir =xa con |x|=n. Ahora
definimos qQ
(q,xa)=-cl(( (q,x),a)).
Para las palabras de longitud 1 se tiene
(( ))
(q , a ) = (q , a ) = cl (q , ), a = cl ( ( cl (q ), a ))
Sea * decimos que es una palabra aceptada por el AFND- si desde el estado
inicial y leyendo la palabra completa alguno de los estados que se alcanzan es final, es
decir si
(q0 , ) F
{
L(M ) = * : (q0 , ) F }
Los AFND son un caso particular de AFND- en que todos las imgenes (q,) son el
conjunto vaco.
40
Inmaculada Luengo
2. Autmatas Finitos 2.2 Autmatas Finitos no Deterministas con -transiciones (AFND-)
(-cl(q),a) y los que se alcanzan a partir de stos por las transiciones , que son -
F si cl (q 0 ) F =
F' =
F {q 0 } si cl (q 0 ) F
' (q , a ) = (q , a ) = cl ( ( cl (q ), a ))
Con esta construccin queda demostrado que las transiciones no aportan nada nuevo
al conjunto de los lenguajes que son abarcables por medio de los AFNDs-, es decir
41
Inmaculada Luengo
2. Autmatas Finitos 2.2 Autmatas Finitos no Deterministas con -transiciones (AFND-)
{L * : M = AFND , L = L(M )}
= {L * : M = AFND , L = L(M )}
= {L * : M = AFD , L = L(M )}
Los tres tipos de Autmatas vistos, a los que a partir de ahora llamaremos simplemente
Autmatas Finitos, son equivalentes en cuanto a los lenguajes que pueden abarcar.
Ejemplo:
0 1 -clausura 0 1
p q,r r p, r p p,q,r s
*q q q,s p p, q, r *q p,q,r p,q,r,s
r s r r s
*s p s *s p,r
REGULARES.
Recordemos que una gramtica decimos que es regular lineal por la derecha si sus
reglas son de una de las tres formas siguientes S:= o A:=a o A:=aB siendo A,B y S
smbolos no terminales, S el axioma y a un smbolo terminal.
Lo que veremos a continuacin es que para cualquier autmata finito existe una
gramtica regular lineal a la derecha equivalente y, recprocamente, que dada una
gramtica regular lineal a la derecha existe un autmata finito equivalente. O lo que es
lo mismo
{L * : AF , L = L( AF )}= {L * : G3 , L = L(G3 )}
42
Inmaculada Luengo
2. Autmatas Finitos 2.4 Equivalencia de Autmatas Finitos y Gramticas Regulares
Ejemplo:
0 1
p q,r
*q q q,s
r s
*s p
Tabla 2.12. Tabla de M7.
p:= 0q / 0 / 0r
q:= 0q / 0 /1q / 1 / 1s
r:= 1s / 1
s:= 1p
Por la transicin (p,0) = q, introducimos las reglas p:= 0q / 0, por ser q estado final. Por
la transicin (p,0)=r, introducimos la regla p:= 0r, por ser r un estado no final.
Y as sucesivamente.
43
Inmaculada Luengo
2. Autmatas Finitos 2.4 Equivalencia de Autmatas Finitos y Gramticas Regulares
Ejemplo:
A:= 0B / 0 / 0C
B:= 0B / 0 /1B / 1 / 1D
C:= 1D / 1
D:= 1A
0 1
A B,C,f
B B,f B,D,f
C D,f
D A
*f
Tabla 2.12. Autmata equivalente a la gramtica G1.
Por la regla A:=0B hemos puesto la transicin (A,0)=B. Por la regla A:=0 hemos
puesto la transicin (A,0)=f. Y as sucesivamente.
44
Inmaculada Luengo
2. Autmatas Finitos 2.4 Equivalencia de Autmatas Finitos y Gramticas Regulares
Las expresiones regulares son una manera resumida de representar ciertos lenguajes
sobre un alfabeto. Sea un alfabeto, cada expresin regular representa un cierto
lenguaje sobre .
Ejemplos:
45
Inmaculada Luengo
2. Autmatas Finitos 2.6 Equivalencia de Expresiones Regulares y Autmatas Finitos
Lo que vamos a demostrar a continuacin es que los Lenguajes que pueden ser
expresados mediante una expresin regular, son todos y los nicos lenguajes que son
abarcables por los Autmatas Finitos.
Si k=0 la expresin regular slo puede ser de uno de los tres siguientes tipos:
46
Inmaculada Luengo
2. Autmatas Finitos 2.6 Equivalencia de Expresiones Regulares y Autmatas Finitos
Sea r una expresin regular con k+1 operadores. La construccin del AF la haremos
segn cual sea el ltimo operador que interviene en r.
Ejemplo:
Sea ={0,1} y sea r = 0*+1+0 y queremos construir un autmata cuyo lenguaje sea
exactamente el definido por la expresin regular r. El ltimo operador que interviene es
la suma
48
Inmaculada Luengo
2. Autmatas Finitos 2.6 Equivalencia de Expresiones Regulares y Autmatas Finitos
Fig. 2.19. Otro AF con menos estados cuyo lenguaje es tambin r = 0*+1+0
{
x q = * : (q ,) F }
es decir el conjunto de todas las palabras que desde q alcanzan algn estado final.
49
Inmaculada Luengo
2. Autmatas Finitos 2.6 Equivalencia de Expresiones Regulares y Autmatas Finitos
Queremos escribir de manera ms explicita xq, para cada estado del autmata dado.
Observemos que
i) xq si y slo si qF
ii) Si r(q,a) y wxr entonces awxq o lo que es lo mismo si r(q,a) entonces axr
xq.
Con estas dos propiedades en mente escribimos lo que llamamos la ecuacin lineal del
estado q
Si qF escribimos xq = ax r
a r ( q ,a )
Si qF escribimos xq = ax r +
a r ( q ,a )
xq =Axq+B
xq = A*B
Debemos resolver el sistema usando las propiedades de las operaciones con lenguajes
hasta despejar x q0 = L(M ) .
Ejemplo:
50
Inmaculada Luengo
2. Autmatas Finitos 2.6 Equivalencia de Expresiones Regulares y Autmatas Finitos
0 1
p q,r
*q q q,s
r s
*s p
Tabla 2.13. Tabla de M7.
xp = 0xq +0 xr
xq = 0 xq +1 xq+1 xs+
xr =1 xs
xs = 0xp+
Para resolver el sistema tenemos que proceder aplicando las propiedades de las
operaciones con lenguajes y lo que se acaba de explicar
xr = 1(0 xp +)=10 xp +1
xq = (0+1) xq +1(0 xp +)+= (0+1) xq +10 xp +1+=
= (0+1)*(10 xp +1+)
xp = 0(0+1)*(10 xp +1+)+0(10 xp +1)
= [0(0+1)*10+010] xp +0(0+1)*(1+)+01
= [0(0+1)*10+010]*[0(0+1)*(1+)+01]
sta ltima es una expresin regular para el lenguaje del autmata dado.
Hemos demostrado que las clases de las gramticas regulares, los autmatas finitos y las
expresiones regulares son equivalentes y hemos explicado tcnicas para construir
objetos de cada una de las clases equivalentes entre s. Queremos volver a sealar que
los objetos se caracterizan por los lenguajes que llevan asociados y que en ninguna de
las tres clases se da la unicidad. Presentamos un grfico que nos muestra estas
relaciones
51
Inmaculada Luengo
2. Autmatas Finitos 2.6 Equivalencia de Expresiones Regulares y Autmatas Finitos
Fig. 2.20. Relacin entre Gramticas regulares, Autmatas Finitos y Expresiones regulares.
52
Inmaculada Luengo