You are on page 1of 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 (q,a)=p (r,a)=r (p,b)=r (q,b)=q (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 q *r a b p q r r

p q 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 *.

: Q * Q por recurrencia sobre la longitud de la palabra . Definimos (q , ) = q (si no hay entrada no Si || = 0 entonces = y definimos q Q ,
hay cambio de estado).

(q , x ) para cada x , tal que |x| n. Supongamos definido


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

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

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 , ) F . 0

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.


(q , ) F L(M ) = * : 0

Es el conjunto de todas las palabras aceptadas, es decir:

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 , ) q q inaccesible si * , 0

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 p q r q p r b r q r fdc e e 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 q r r s s s s s e aceptar e q e

Tabla 2.2. Tabla del analizador lxico del autmata M3 completo.

o bien 0 1 fdc p q r q e e r q e 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 p r q *r *s t u r s r t u b q q t t q 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 p r q *r *s t r s r t b q q 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}

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 [r,s] [p,q] [t] {r,s}C1 {r}C1 {t}C22 [p,q,t] {r,t}C1,C2

b qC2 {q}C21 {q}C21

Tabla 2.6. Tabla para la minimizacin de M4.

El AFDmn equivalente tiene slo tres estados y su tabla es a b [p,q O bien *[r,s] [t] a [r,s] [r,s] [t] b [p,q] [t] [p,q]

*C1 C1 C3 C2 C1 C2 C3 C3 C2

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} (r,0)= (s,0)={p} Segn nuestra definicin M5 es un AFND. (q,1)={q,s} (r,1)={s} (s,1)=

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 r *s q

q,s s

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 diferentedigamos, 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 .

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


no hay cambio de estado).

(q , x ) para cada x* tal que |x|n. Supongamos definido


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 p *q r *s 0 q,r q 1 p *q,r 0 q,r q 1

q,s

q,s s

q *q,s *p,q

q p,q q,r

q,s q,s 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 r

p q,r *q 38 q

q,s p

Inmaculada Luengo

2. Autmatas Finitos

2.2 Autmatas Finitos no Deterministas con -transiciones (AFND-)

r *s

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} escribimos (A,a)=rA(r,a) Es sencillo demostrar que -cl(-cl(A))=-cl(A). -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

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 *.
:Q*P(Q) y definimos como siempre (q,) por recurrencia sobre la Ser ahora

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

(q , x ) para cada palabra x tal que |x|n. Supongamos definido


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

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


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
si cl (q 0 ) F = F F' = F {q 0 } si cl (q 0 ) F

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

(q , a ) = cl ( ( cl (q ), a )) ' (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 r -clausura p, r p, q, r r s 0 1

p q,r *q r *s q p s

p p,q,r s *q r *s p,q,r p,q,r,s p,r s

q,s p

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 r *s q q,s s

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
A

B,C,f B,f B,D,f D,f A

B C D *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

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

(q ,) F x q = * :

}
49

es decir el conjunto de todas las palabras que desde q alcanzan algn estado final.
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 Si qF escribimos

xq = xq =

a r ( q ,a )

ax ax

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

p q,r *q r *s q q,s s

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

You might also like