Está en la página 1de 34

2 Autmatas Finitos

2.1 AUTMATAS FINITOS DETERMINISTAS (AFD).

2.1.1 DEFINICIN DE AFD.


Un autmata finito determinista es una quntupla que denotaremos de manera genrica
por M=(Q,,q0,,F) donde:

Q es un conjunto finito cuyos elementos llamaremos estados.


es un alfabeto que llamamos alfabeto de entrada.
q0Q es un estado sealado que llamamos estado inicial.
F es un subconjunto de Q no vaco, cuyos elementos llamamos estados finales.
es una aplicacin de QQ , que llamamos funcin de transicin.

La funcin de transicin es la verdadera clave de la mquina. Obsrvese que es una


aplicacin, as cada pareja posible formada por un estado y un smbolo del alfabeto debe
tener una imagen y slo una, es decir (q,a)Q, cualquiera que sean qQ y a.

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.

Segn nuestra definicin M1 es un AFD.

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.

Si la palabra a procesar fuese aabbab, se enciende el estado p inicial y a continuacin


qprrrr. El estado que queda encendido es r que es final. Si la palabra a procesar fuese
abbb la secuencia de estados sera pqqqq.

2.1.2 REPRESENTACIN DE UN AFD.


Tenemos dos maneras de representar un AFD

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 el cruce de la fila marcada con el estado q y
la columna marcada con el smbolo a del alfabeto ponemos el estado (q,a).

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:

La mquina M1 del ejemplo se representa con una tabla

a b
p q r
q p q
*r r r
Tabla 2.2. Autmata finito determinista M1.

O bien se representa con un diagrama

Fig. 2.1 Autmata finito determinista M1.

Observemos que cada una de ambas representaciones contiene toda la informacin del
autmata.

2.1.3 DIAGRAMAS INCOMPLETOS: ESTADO DE ABSORCIN.


Con frecuencia nos encontramos AFDs como el M2 siguiente.

Fig. 2.2 autmata finito determinista M2.

21
Inmaculada Luengo
2. Autmatas Finitos 2.1 Autmatas Finitos Deterministas (AFD)

Si observamos con un poco de atencin vemos que la transicin (p,1) no est


representada, lo que contradice la definicin de AFD puesto que hemos afirmado que
es una aplicacin. Lo que ocurre en realidad es que la mquina no ha sido
completamente dibujada, por comodidad y claridad. Debemos entender que todas las
transiciones que falten en el diagrama de un AFD van a un nico estado no final, que
llamamos genricamente estado de absorcin. As el diagrama completo de M2 es:

Fig.2.3. Autmata finito determinista M2 con el estado de absorcin.

El estado s es el estado de absorcin y con frecuencia desaparece del grfico del


autmata, pero no debemos olvidar que est ah aunque no lo dibujemos.

2.1.4 EXTENSIN DE LA FUNCIN DE TRANSICIN


Se trata de definir una funcin que describa qu estado se alcanza desde un estado q si a
continuacin en vez de entrar un slo smbolo (en cuyo caso se alcanzara el estado
descrito por (q,a)), entrara una palabra *.

Definimos : Q * Q por recurrencia sobre la longitud de la palabra .

Si || = 0 entonces = y definimos q Q , (q , ) = q (si no hay entrada no


hay cambio de estado).
Supongamos definido (q , x ) para cada x , tal que |x| n.

Sea * tal que ||=n+1, entonces se puede escribir = xa con |x|=n y a.

( )
Ahora definimos q Q , (q , ) = (q , xa ) = (q , x ), a .

Ejemplo:

En nuestra mquina M1 sera

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.

2.1.5 PALABRA ACEPTADA POR UN AFD.


*
Decimos que es una palabra aceptada por el autmata finito determinista M si
desde el estado inicial entrando consecutivamente de izquierda a derecha los smbolos
de la palabra en cuestin, se alcanza un estado final. Expresado con smbolos si
(q 0 , ) F .

Ejemplos:

Las cadenas abb, baa, b, abbaaa son palabras aceptadas por M1. Las cadenas 01, 0001,
001001 son palabras aceptadas por M2.

2.1.6 LENGUAJE ACEPTADO POR UN AFD.


Es el conjunto de todas las palabras aceptadas, es decir:
{
L(M ) = * : (q 0 , ) F }

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 * }

2.1.7 EQUIVALENCIA DE AFDS.


Sean M y M dos AFDs, decimos que son equivalentes si L(M)=L(M`).

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:

Construir un AFD sobre el alfabeto ={0,1} cuyo lenguaje sea

L={cadenas que terminan en 00}

Un AFD para este lenguaje es

Fig, 2.4. AFD cuyo lenguaje es L={cadenas que terminan en 00}.

Antes de terminar esta seccin damos alguna definicin ms

2.1.8 ESTADOS INACCESIBLES.

Sea M=(Q,,,q0,F) un AFD. Un estado qQ decimos que es inaccesible, si no existe


ninguna palabra sobre el alfabeto de entrada que partiendo desde q0 llegue a q. Con
smbolos ser

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:

En el AFD M3 de la figura, el estado r es inaccesible por que no se puede alcanzar a


partir del estado inicial

Fig. 2.5. M3 con el estado r inaccesible.

2.1.9 AUTMATA CONEXO.


Un AFD decimos que es conexo si no tiene estados inaccesibles. Si un AFD no es
conexo basta eliminar los estados inaccesibles y todas sus transiciones (las de entrada y
las de salida) para obtener un nuevo AFD conexo equivalente al de partida.

Ejemplo:

El AFD M4 obtenido quitando a M3 el estado r y sus transiciones, es conexo

Fig. 2.6. M4 que es conexo y equivalente a M3.

25
Inmaculada Luengo
2. Autmatas Finitos 2.1 Autmatas Finitos Deterministas (AFD)

2.1.10 CONSTRUCCIN DE UN ANALIZADOR LXICO A PARTIR DE UN


AFD.
Daremos a continuacin un mtodo genrico de construccin de un trozo de programa
que nos vale como analizador de las palabras del lenguaje de un AFD dado, M=(Q, ,
q0, , F).
Como datos de entrada se introducen el alfabeto de entrada de la mquina y una
tabla M=(mij) de orden rc siendo r=|Q| y c=|| +1 donde la filas se rotulan con el
nombre de los estados del autmata, las c primeras columnas se rotulan con los
smbolos del alfabeto de entrada y la ltima con fdc (fin de cadena); en la posicin
(i,j) se escribe mij = (qi , a j ) para i=1,,r y j=1,,(c-1), es decir las (c-1) primeras

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:

La matriz correspondiente a nuestra mquina M1 es:

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.

en la rutina anterior basta sustituir la inicializacin de la variable ESTADO en la


primera lnea del algoritmo por ESTADO:=p, puesto que en nuestro autmata el estado
inicial es p.

Si nuestro AFD est incompleto en la matriz de entrada del analizador podemos


suprimir la fila correspondiente al estado de absorcin y en las casillas correspondientes
a transiciones que lleguen a dicho estado escribimos una "e".

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.

2.1.11 MINIMIZACIN DE UN AFD.


Dado un AFD se trata de construir otro equivalente pero que sea mnimo en cuanto al
nmero de estados.

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.

Para obtener Q/E se va calculando Q/E0, Q/E1,... hasta que Q/Er=Q/Er+1=Q/E.


Lo hacemos por recurrencia sobre r.
Para r=0, como (p,)=p, dos estados p y q pueden ser equivalentes de orden 0
slo si ambos son estados finales (p,qF) o si ambos son estados no finales
(p,qF) as el conjunto cociente de la relacin de equivalencia E0 ser
Q/E0 = {F, F }.
Supongamos que hemos calculado el conjunto cociente para la relacin de
equivalencia de estados de orden r,
Q/Er={C1,C2,,Ci,,Ck}.
Queremos construir Q/Er+1.
Para cada CiQ/Er ocurre uno de los dos casos excluyentes siguientes:
i) Para todo a, existe un j tal que (Ci, a)Cj , entonces incluimos Ci en
Q/Er+1.
ii) Existe a tal que para todo j=1,,k, (Ci,a) Cj, entonces hacemos
Ci=Ci1Ci2 de manera que para cada uno de los dos subconjuntos creados

28
Inmaculada Luengo
2. Autmatas Finitos 2.1 Autmatas Finitos Deterministas (AFD)

existan j y k tales que (Ci1,a) Cj y (Ci2, a) Ck e incluimos Ci1 y Ci2 en


Q/Er+1 eliminando Ci.

Ejemplo:

Sea el AFD M4 dado por la tabla

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.

Vamos a minimizarlo. Primero observamos que no es conexo y que 'u' es un estado


inaccesible. Eliminamos dicho estado y sus transiciones y nos queda

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

Q/E0={F, F }={[r,s],[p,q,t]}={C01, C02}.

Veamos si los estados r y s son equivalentes de orden 1. Consideramos


(C01, a) = ([r,s],a) = {r,s} C01
(C01,b) = ([r,s],b) ={t} C02
29
Inmaculada Luengo
2. Autmatas Finitos 2.1 Autmatas Finitos Deterministas (AFD)

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

C02 = C021 C022 con C021={p,q} y C022={t}

de manera que (C021, a)={r}C1 y (C022, a)={t}C2. Tenemos ahora el conjunto


cociente Q / E1 = {C 01 ,C 021 ,C 022 } que renombramos C11 = {r , s}, C12 = {p , q} y

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

luego el conjunto cociente es Q/E1=Q/E2 y hemos terminado.

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.

El AFDmn equivalente tiene slo tres estados y su tabla es

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.

Grficamente la maquina M4 y su equivalente mnimo son

Fig 2.7. Diagrama de M4 y de su equivalente mnimo.

2.2 AUTMATA FINITO NO DETERMINISTA (AFND).

2.2.1 DEFINICIN DE AFND.

El tipo de autmata que vamos a definir a continuacin es esencialmente muy parecido


al que definimos como AFD. La diferencia fundamental es que ahora permitiremos que
desde un estado, con un smbolo del alfabeto se alcance no un nico estado, sino un
31
Inmaculada Luengo
2. Autmatas Finitos 2.2 Autmatas Finitos no Deterministas (AFND)

subconjunto de estados (incluido el vaco). Formalmente un autmata finito no


determinista M es una quntupla (Q, , q0 ,, F) donde

Q es un conjunto finito a cuyos elementos llamamos estados


es un alfabeto que llamamos alfabeto de entrada
q0 es un estado sealado que llamamos estado inicial
F es un subconjunto de Q, no vaco, cuyos elementos llamamos estados finales
es una aplicacin de QP(Q), que llamamos funcin de transicin

Obsrvese que ahora, desde un estado, con un smbolo de entrada se alcanza un


conjunto de estados. Con smbolos (q,a) = AQ.

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)=

Segn nuestra definicin M5 es un AFND.

2.2.2 REPRESENTACIN DE UN AFND.


Tenemos dos maneras de representar un AFND

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:

La mquina M5 del ejemplo se representa con una tabla

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

Fig. 2.8. Diagrama de M5.

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).

2.2.3 EXTENSIN DE LA FUNCIN DE TRANSICIN.


Se trata, como ya hicimos con los AFD, de definir una funcin que describa qu estados
se alcanzan desde un estado q si a continuacin en vez de entrar un slo smbolo (en
cuyo caso se alcanzaran los estados descritos por (q,a)), entrara una palabra *.
Antes de continuar convenimos que para AQ escribiremos

( A, a ) = (r , a )
r A

Definimos Q *


P(Q ) , por recurrencia sobre la longitud de la palabra .

Si ||=0 entonces = y definimos (q , ) = q para cada estado (si no hay entrada


no hay cambio de estado).
Supongamos definido (q , x ) para cada x* tal que |x|n.

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 )

Para las palabras de longitud 1 se tiene


( )
(q , a ) = (q , a ) = (q , ), a = (q , a )
es decir la funcin de extensin a palabras y la funcin de transicin original coinciden
para palabras de longitud 1.

2.2.4 PALABRA ACEPTADA POR UN AFND.

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)

Las palabras 0, 01, 010101 son aceptadas por M5.

2.2.5 LENGUAJE ACEPTADO POR UN AFND.


Es el conjunto de todas las palabras aceptadas es decir

L(M)={* : (q0,) F }

Los autmatas finitos deterministas son un caso particular de los no deterministas en


que la imagen de cada par (q,a) es un conjunto unitario.

2.2.6 CONSTRUCCIN DE UN AFD EQUIVALENTE A UN AFND DADO.

Sea M = (Q, , q0, , F) un AFND que supondremos conocido. Queremos construir un


AFD, M, tal que L(M)=L(M). Antes de continuar debemos recordar que los autmatas
se caracterizan por su lenguaje asociado y que la tcnica que vamos a presentar
garantiza la existencia de un AFD equivalente, pero en ningn caso se da la unicidad, es
decir hay muchos AFDs equivalentes a M. Nosotros construiremos uno de ellos.

La idea para la construccin de la nueva mquina es que al ser Q un conjunto finito,


el nmero de sus subconjuntos tambin lo es. Si tenemos que para cierto estado qQ y
para cierto smbolo del alfabeto a, (q,a) = AP(Q), a fin de cuentas ese subconjunto
podra ser representado por un nico estado en la nueva mquina que queremos
construir. De modo que como conjunto de estados para M tomamos Q = P(Q), como
alfabeto de entrada tomamos por supuesto el mismo , como estado inicial tomamos
{q0}, como conjunto de estados finales tomamos todos los subconjuntos de Q que
contengan algn estado final, formalmente

F = {BP(Q) : BF }

y definimos la nueva funcin de transicin :QQ como sigue:

(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).

Con esta construccin queda demostrado que el no determinismo no aporta nada


nuevo al conjunto de los lenguajes que son abarcables por medio de los AFDs, es decir
{L* : M=AFD, L=L(M)}={ L* : M =AFND, L=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.

Y grficamente la nueva mquina equivalente es

36
Inmaculada Luengo
2. Autmatas Finitos 2.2 Autmatas Finitos no Deterministas (AFND)

Fig.2.9. Diagrama de M5.

Debemos hacer un par de observaciones. El estado marcado refleja la situacin de


todos los estados inactivos en la mquina original -todas las bombillas apagadas- y es el
estado de absorcin, por tanto si queremos dibujar el diagrama correspondiente no hace
falta que lo incluyamos. Por otra parte es un estado en s mismo y debemos recordar que
si ahora queremos minimizar el AFD obtenido es uno de los estados no finales y no
debemos olvidarnos de incluirlo. Lo ms cmodo es renombrar en este punto los
estados.

Fig, 2.10. M5 con los estados renombrados

2.3 AUTMATA FINITO NO DETERMINISTA CON -


TRANSICIONES (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-)

2.3.1 DEFINICIN DE AFND-.

Un autmata finito no determinista con -transiciones es una quntupla M=(Q,,q0,,F)


donde todos los elementos estn definidos como en los autmatas ya vistos, salvo la
funcin de transicin :Q({})P(Q). Es decir ahora no slo hay transiciones del
tipo (q,a) donde qQ y a, sino que tambin se definen transiciones del tipo
(q,)=AQ.

Ejemplo:

Si la mquina M5 aadimos las transiciones

(p,)={r} (q,)={p} (r,)= (s,)={q}

obtenemos una nueva mquina M6.

2.3.2 REPRESENTACIN DE UN AFND-

La forma de representacin es similar a lo visto hasta ahora

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.

2. Mediante un diagrama: Se dibuja un crculo por cada estado no final y un doble


crculo por cada estado final; se marca el estado inicial con una flecha que entra sin
etiquetar; si r(q,a) se dibuja una flecha con origen en q y final en r, rotulada a
(donde a es un smbolo del alfabeto o ).

Ejemplo:

Para la mquina M6 la tabla es

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

Fig. 2.11. Diagrama del AFND-,M6.

2.3.3 -CLAUSURA DE UN ESTADO

La -clausura de un estado p es el conjunto de estados a los que se puede llegar desde p


slo por caminos etiquetados .
Se debe observar que siempre p-cl(p) y por tanto -cl(p).

Ejemplo:

Vamos a escribir las -clausuras de cada uno de los estados de M6.

-cl(p)={p,r} -cl(q)={p,q,r} -cl(r)={r} -cl(s)={q,s}


Como ya hicimos anteriormente con los AFND para un subconjunto A de estados
escribimos

(A,a)=rA(r,a)

Es sencillo demostrar que -cl(-cl(A))=-cl(A).

39
Inmaculada Luengo
2. Autmatas Finitos 2.2 Autmatas Finitos no Deterministas con -transiciones (AFND-)

2.3.4 EXTENSIN DE LA FUNCIN DE TRANSICIN.


Se trata de nuevo de definir una funcin que describa qu estados se alcanzan desde un
estado q si en vez de entrar un slo smbolo, entrara una palabra *.

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 ))

es decir la funcin de extensin a palabras y la funcin de transicin original no tienen


por qu coincidir para palabras de longitud 1, es decir los smbolos del alfabeto.

2.3.5 PALABRA ACEPTADA POR UN AFND-.

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

2.3.6 LENGUAJE ACEPTADO POR UN AFND-.

Es el conjunto de todas las palabras aceptadas es decir

{
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-)

2.3.7 CONSTRUCCIN DE UN AFND EQUIVALENTE A UN AFND- DADO.

Sea M=(Q,,q0,,F) un AFND- que supondremos conocido. Queremos construir un


AFND M tal que L(M) = L(M).

Antes de continuar debemos de nuevo recordar que esta construccin garantiza la


existencia de un AFND equivalente, pero en ningn caso se garantiza la unicidad, es
decir hay muchos AFNDs equivalentes a M; nosotros construiremos uno de ellos.

La idea para la construccin de la nueva mquina es que desde cualquier estado q de la


mquina original, cuando se lee en cinta un smbolo a del alfabeto, se alcanzan los
nuevos estados en tres tiempos: los que se alcanzan desde q por transiciones (la -
clausura de q); los que se alcanzan por la lectura del smbolo ledo, que son

(-cl(q),a) y los que se alcanzan a partir de stos por las transiciones , que son -

cl(( cl(q),a)) en definitiva un subconjunto de estados, concretamente (q , a ) .


Adems si ocurre que desde q0 se llega a algn estado final por caminos etiquetados , o
lo que es lo mismo si -cl(q0)F, una de las palabras aceptadas es ; en tal caso, para
que la nueva mquina acepte el estado inicial debe ser final. De modo que tomamos
M=(Q,, q0,,F), siendo

F si cl (q 0 ) F =
F' =
F {q 0 } si cl (q 0 ) F

y la nueva funcin de transicin como sigue: :QP(Q),

' (q , a ) = (q , a ) = cl ( ( cl (q ), a ))

Ahora M es un AFND y afirmamos que L(M)=L(M).

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:

Construimos un AFND equivalente a M6

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

Tabla 2.11. Autmata M5(izquierda) y su equivalente sin -transiciones (derecha).

2.4 EQUIVALENCIA DE AUTMATAS FINITOS Y GRAMTICAS

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 )}

Se demuestra por separado cada uno de los trminos de la doble inclusin.

42
Inmaculada Luengo
2. Autmatas Finitos 2.4 Equivalencia de Autmatas Finitos y Gramticas Regulares

2.4.1 GRAMTICA REGULAR EQUIVALENTE A UN AF DADO.


Sea M =(Q,,q0,,F) un autmata conocido (debe ser un autmata sin -transiciones).
Queremos construir una gramtica G = (T,N,S,P) tal que L(M) = L(G).

Tomamos como alfabeto de terminales el alfabeto de entrada del autmata, ; como


conjunto de smbolos no terminales tomamos Q; como axioma para la gramtica
tomamos q0, el estado inicial del autmata; por ltimo traducimos las transiciones del
autmata en reglas para la gramtica de la forma siguiente:
si (p,a) = q y qF aadimos la regla p:=aq
si (p,a) = q y qF aadimos las reglas p:=aq y p:=a
si q0F aadimos la regla q0:=.

Ejemplo:

Sea M7 el AFND dado por la tabla

0 1
p q,r
*q q q,s
r s
*s p
Tabla 2.12. Tabla de M7.

Una gramtica equivalente es G ={{0,1},{p,q,r,s},p,P}, siendo P las reglas

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

2.4.2 AUTMATA FINITO EQUIVALENTE A UNA GRAMTICA DADA.


Suponemos que la gramtica G=(T,N,S,P) es conocida (debe ser una gramtica regular
a la derecha). Queremos construir un autmata M = (Q,,q0,,F) tal que L(G)= L(M).

Como conjunto de estados tomamos N {f} donde f es un smbolo que no pertenece al


alfabeto de no terminales; como alfabeto de entrada se toma el alfabeto de terminales de
la gramtica, T; como estado inicial se toma el estado representado por el axioma S de
la gramtica; como conjunto de estados finales tomamos F={f}; por ltimo definimos
las transiciones traduciendo las reglas de la gramtica de la forma siguiente:
Si A:=aB es una regla, definimos la transicin (A,a)=B.
Si A:=a es una regla, definimos la transicin (A,a)=f.
Si S:= es una regla, definimos la transicin (S,)=f.

Ejemplo:

Sea la gramtica G1={{0,1},{A,B,C,D},A,P}, siendo P las reglas

A:= 0B / 0 / 0C
B:= 0B / 0 /1B / 1 / 1D
C:= 1D / 1
D:= 1A

Para construir un AF equivalente tomamos Q={A,B,C,D,f}, ={0,1}, estado inicial A,


estado final f y la tabla

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

2.5 EXPRESIONES 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 .

Son expresiones regulares

es una expresin regular que representa al lenguaje .


es una expresin regular y representa al lenguaje {}.
a, a es una expresin regular y representa a {a}.
Si y son expresiones regulares + es una expresin regular y representa a
L()L().
Si y son expresiones regulares es una expresin regular y representa a
L()L().
Si es una expresin regular, * es una expresin regular y representa a L()*.
Si es una expresin regular, + es una expresin regular y representa a L()+.
Si es una expresin regular, () es una expresin regular y representa a L().
Cualquier combinacin finita de expresiones regulares unidas mediante los
operadores definidos (concatenacin, unin, clausura positiva y cierre de Kleene)
es una expresin regular.

Ejemplos:

r1 = (01)* = {(01)k: k0}


r2 = (01)*+0+10 = {(01)k: k0}{0,10}
r3 = (ab*+b*a)ab+ = {aab, aabb, aabbb...., baab, bbab....}

45
Inmaculada Luengo
2. Autmatas Finitos 2.6 Equivalencia de Expresiones Regulares y 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.

2.6.1 AUTMATA FINITO EQUIVALENTE A UNA EXPRESIN REGULAR


DADA.
Lo que se quiere comprobar principalmente es que dada una expresin regular existe
siempre un autmata cuyo lenguaje es el denotado por la expresin regular, es decir que
L(ER)L(AF). La demostracin es constructiva, el autmata obtenido es con -
transiciones y normalmente tiene muchos estados. Es conveniente combinar la intuicin
con el mtodo que se explica a continuacin.

La construccin se hace por recurrencia sobre el nmero k de operadores de la expresin


regular y demostrando que dada una expresin regular cualquiera siempre existe un AF,
con slo un estado final, cuyo lenguaje es el dado por la expresin regular.

Si k=0 la expresin regular slo puede ser de uno de los tres siguientes tipos:

i) r = , un AF cuyo lenguaje sea r es

ii) r = un AF cuyo lenguaje sea r es

iii) r = a, un AF cuyo lenguaje sea r es

Supongamos, por hiptesis de recurrencia, que si la expresin regular contiene un


nmero menor o igual a k de operadores, existe un AF con un solo estado final para
el lenguaje denotado por la expresin regular.

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.

a) Si el ltimo operador es la concatenacin entonces podemos escribir r = r1r2


donde r1 y r2 tienen menos de k+1 operadores. Entonces, por hiptesis de
induccin, existen dos AF, M1y M2 tales que L(M1) = r1 y L(M2) = r2.

Fig. 2.12. Autmatas tales que L(M1)=r1 y L(M2)=r2.

Un autmata que acepta L(r) sera

Fig 2.13. AF cuyo lenguaje es r1r2

b) Si el ltimo operador de r es una unin r = r1+r2, un autmata que acepta L(r)


ser

Fig 2.14. AF cuyo lenguaje es r1+r2

c) Si el ltimo operador de r es un cierre de Kleene r = (r1)* un autmata que


acepta L(r) ser:

Fig 2.15. AF cuyo lenguaje es (r1)*.


47
Inmaculada Luengo
2. Autmatas Finitos 2.6 Equivalencia de Expresiones Regulares y Autmatas Finitos

d) Si el ltimo operador de r es una clausura positiva r=(r1)+ un autmata que


acepta L(r) ser:

Fig 2.16. AF cuyo lenguaje es (r1)+.

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

Fig. 2.17. Construccin de un AF cuyo lenguaje es r = 0*+1+0.

Por ltimo un AF cuyo lenguaje es L(r) es

48
Inmaculada Luengo
2. Autmatas Finitos 2.6 Equivalencia de Expresiones Regulares y Autmatas Finitos

Fig. 2.18. Un AF cuyo lenguaje es r = 0*+1+0.

Como puede verse el autmata construido aplicando directamente el mtodo


estudiado tiene muchos estados y muchas -transiciones, an cuando la expresin
regular sea relativamente simple. Normalmente se puede construir otro autmata
equivalente ms simple, por ejemplo

Fig. 2.19. Otro AF con menos estados cuyo lenguaje es tambin r = 0*+1+0

2.6.2 EXPRESIN REGULAR EQUIVALENTE A UN AUTMATA FINITO


DADO.
Suponemos que M es un autmata finito dado, sin transiciones . Buscamos una
expresin regular r tal que L(M) = r.

Para cada estado qQ definimos

{
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 )

donde las sumas representan uniones como en las expresiones regulares.

Cuando tengamos una ecuacin del tipo

xq =Axq+B

donde A es el conjunto de todas las palabras que partiendo de q llegan de nuevo a q y B


es el conjunto de todas las palabras que van de q a un estado final sin volver a pasar por
q. Entonces podemos escribir

xq = A*B

Debemos resolver el sistema usando las propiedades de las operaciones con lenguajes
hasta despejar x q0 = L(M ) .

Ejemplo:

Sea el AFND M7 cuya tabla era

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.

las ecuaciones lineales M3 de son

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

También podría gustarte