Вы находитесь на странице: 1из 24

Teora de la

Computacin
Autmatas finitos
deterministas
1
Dra. Norka Bedregal Alpaca

Introduccin
Autmatas con salidas (Mquinas Secuenciales):

AUTMATAS

Mquina de Moore. Salida asociada al estado.


Mquina de Mealy. Salida asociada a la
transicin.

Autmatas reconocedores de lenguajes regulares


(Mquinas de Estado Finito):
Autmata Finito Determinista (AFD)
Autmata Finito No Determinista (AFND)E

2
Dra. Norka Bedregal Alpaca

Repaso

AUTMATAS

Introduccin:
Una mquina es un sistema que puede aceptar una
entrada, que puede producir una salida y que tiene una
memoria para llevar el registro de cierta informacin
acerca de las entradas anteriores.
La condicin interna de la mquina y de su memoria,
en un instante en particular, constituye el estado de la
mquina en ese instante.
Una Mquina de Estado Finito es capaz de recordar
y situarse en un estado que depende de la entrada y
del estado anterior

3
Dra. Norka Bedregal Alpaca

Mquina Estado Finito

AUTMATAS

Definicin:
Una mquina M, es un sextuplo M = (I, O, S, f, g, ),
donde:
I, alfabeto de entrada, es un conjunto finito de
smbolos.
O, alfabeto de salida, es un conjunto finito de
smbolos.
S, conjunto de estados, es un conjunto finito
f: S x I

S Funcin de estado siguiente

G: S x I

Funcin de salidas

, estado inicial, pertenece a S


4
Dra. Norka Bedregal Alpaca

Mquina Estado Finito


Ejemplo:

AUTMATAS

Sea M = (I, O, S, f, g, ), una mquina tal que:


I = {a, b}
O ={x, y, z}
S={0,1,2}
f: S x I

S:

definida por:

f(0,a)= 2
f(0,b)= 1
g: S x I

f(1,a)= 1
f(1,b)= 2

f(2,a)= 0
f(2,b)= 0

definida por:

g(0,a)= x

g(1,a)= z

g(2,a)= x

g(0,b)= y

g(1,b)= y

g(2,b)= x

=0

5
Dra. Norka Bedregal Alpaca

Mquina Estado Finito


Ejemplo (continuacin):

AUTMATAS

Tabla de transicin o tabla de estados


f

Diagrama de transicin o diagrama de estados


(b,y)

(a,z)
1

0
(a,x)

(b,x)
(a,x)

(b,y)
2

6
Dra. Norka Bedregal Alpaca

Autmatas Finitos

AUTMATAS

Un autmata finito es un conjunto de estados y un


control que se mueve de un estado a otro en
respuesta a entradas externas.
Los autmatas finitos se pueden clasificar en
funcin del tipo de control como:
Deterministas, el autmata nicamente puede
estar en un estado en un momento
determinado.
No Deterministas, el autmata puede estar en
varios estados simultneamente.
Ambos definen los mismos lenguajes (regulares),
sin embargo los No deterministas permiten describir
ms eficientemente determinados problemas.
7

AUTMATAS

Dra. Norka Bedregal Alpaca

Autmatas finitos
deterministas
(AFD)

8
Dra. Norka Bedregal Alpaca

Autmatas finitos deterministas

AUTMATAS

Un autmata de estado finito determinista (AFD), es una


mquina de estado finito:
A = (I, O, S, f, g, )
en la que el conjunto de smbolos de salida es O = {0, 1},
y donde el estado actual determina la ltima salida.
Aquellos estados para los cuales la ltima salida es 1,
reciben el nombre de estados de aceptacin.

Esta definicin intuitiva se puede formalizar a travs de


la utilizacin de una quntupla

9
Dra. Norka Bedregal Alpaca

Autmatas finitos deterministas


Definicin (AFD):

AUTMATAS

Un autmata finito es una quntupla


M = (Q, , , q0, F)
donde:
Q es un conjunto finito llamado conjunto de estados.
es un conjunto finito de smbolos, llamado alfabeto
de entrada.
es una aplicacin llamada funcin de transicin
: Q

q0 es un elemento de Q, llamado estado inicial.


F es un subconjunto de Q, llamado conjunto de
estados finales.
10
Dra. Norka Bedregal Alpaca

AUTMATAS

Autmatas finitos deterministas

11
Dra. Norka Bedregal Alpaca

Representacin de un AFD
Tabla de transicin:

AUTMATAS

Es una representacin clsica de una funcin con


dos argumentos.
En las filas se colocarn los estados y en las
columnas los smbolos del alfabeto de entrada.
Cada interseccin fila (estado q) -columna (carcter
a) corresponde al estado (q,a).
El estado inicial se representa con
Los estados finales con un *
Ejemplo:

12
Dra. Norka Bedregal Alpaca

Representacin de un AFD

AUTMATAS

Diagramas de transicin:
Es un grafo en el que los vrtices representan los
distintos estados y los arcos las transiciones entre los
estados.
Cada arco va etiquetado con el smbolo que
corresponde a dicha transicin.
El estado inicial se representa con
Los estados finales con un con doble crculo.
Ejemplo:
Para el autmata definido por la tabla anterior:

13
Dra. Norka Bedregal Alpaca

Representacin de un AFD
Determinismo:

AUTMATAS

No existen transiciones
q Q , a , una nica (q,a):
Una sla arista etiquetada con a para cada
smbolo;
Para cada entrada en la tabla un solo estado
La indeterminacin en el caso que falten transiciones
para algunas entradas se resuelve incluyendo un
nuevo estado, llamado de absorcin o muerto.
Al estado de absorcin llegan todas las transiciones
no definidas.

14
Dra. Norka Bedregal Alpaca

Representacin de un AFD
Ejemplo:

AUTMATAS

Dado el autmata definido por la tabla de transicin:

Introduciendo un estado de absorcin M:

15
Dra. Norka Bedregal Alpaca

AFD: Extensin de f a palabras.

AUTMATAS

Se trata de definir una funcin que describa qu estado


se alcanza desde un estado q si en lugar de ingresar un
slo smbolo (en cuyo caso se alcanzara el estado
descrito por (q,a)), se ingresara una palabra *.

Definicin (Extensin a palabras):


Si M = ( Q, , , q0, F ) es un AFD se define ( por
recurrencia) la funcin de transicin asociada a palabras
como la funcin:
: Q * Q
dada por:
1. Si || = 0 entonces = y se define q Q,
( q, ) = q
es decir, si no hay entrada no hay cambio de estado
16
Dra. Norka Bedregal Alpaca

AFD: Extensin de f a palabras.

AUTMATAS

2. Se supone definida ( q, a ) para cada a *, tal que


|a| n:
( q, a ) = ( q, a )
3. Sea * tal que || = n + 1, entonces se puede
escribir = ax con |x| = n , x * a .
Se define q Q:
(q, ) = (q, ax) = ( (q, a) , x )

17
Dra. Norka Bedregal Alpaca

AFD: Extensin de f a palabras.


Ejemplo:

AUTMATAS

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

Segn la definicin M1 es un AFD.


Se puede construir la tabla de transicin y el diagrama de
transicin de estados

18
Dra. Norka Bedregal Alpaca

AFD: Extensin de f a palabras.


Ejemplo (continuacin):

AUTMATAS

Siendo:

19
Dra. Norka Bedregal Alpaca

AFD: Extensin de f a palabras.


Ejemplo (continuacin):

AUTMATAS

En la mquina M1 sera

En el diagrama se pueden seguir los arcos desde q, con


los smbolos bab consecutivamente y observar que se
termina en el estado r.
20
Dra. Norka Bedregal Alpaca

10

Cmo procesa entradas un AFD?

AUTMATAS

Cmo procesa entradas un AFD?


La entrada a un AF es un conjunto de smbolos
tomados del alfabeto de entrada , no hay lmite en
tamao de la cadena.
Existe un puntero que en cada momento apunta a
una posicin de la cadena de entrada.
El autmata est siempre en un estado de Q,
inicialmente se encuentra en el estado q0.

21
Dra. Norka Bedregal Alpaca

Cmo procesa entradas un AFD?

AUTMATAS

En cada paso el autmata lee un smbolo de la entrada


y segn el estado en el que se encuentre, cambia de
estado y pasa a leer otro smbolo.
As sucesivamente hasta que se terminen de leer
todos los smbolos de la cadena de entrada.
Si en ese momento el AF est en un estado qi de F, se
dice que acepta la cadena, en caso contrario la
rechaza.

22
Dra. Norka Bedregal Alpaca

11

Lenguaje aceptado por un AFD


Una cadena x * es aceptada por un autmata

AUTMATAS

M = ( Q, , , q0, F )
si y solo si (q0, x) F.
Es decir que, x * es una palabra (cadena) aceptada
por el autmata finito determinista M si partiendo
desde el estado inicial e ingresando consecutivamente
de izquierda a derecha los smbolos de la palabra, se
alcanza un estado final.
En otro caso la cadena es rechazada por el autmata.
El lenguaje aceptado o reconocido por un autmata es
el conjunto de las palabras de * que acepta:
L(M) = { x * / (q0, x ) F}
23
Dra. Norka Bedregal Alpaca

Lenguaje aceptado por un AFD


Ejemplo:

AUTMATAS

Las cadenas abb, baa, b, abbaaa son palabras aceptadas


por M1.

Ejemplo:
Considere el diagrama de la figura:

Se observa que la transicin (p,1) no est representada,


lo que contradice la definicin de un AFD
24
Dra. Norka Bedregal Alpaca

12

Lenguaje aceptado por un AFD

AUTMATAS

Es necesario crear un estado de absorcin y reconstruir


el diagrama, con lo que se obtiene el autmata M2:

Las cadenas 01, 0001, 001001 son palabras aceptadas


por M2.
El lenguaje de M2 son todas las cadenas de ceros y
unos que empiezan por cero y tienen al menos un uno
L(M) = {x1y : x, y * }
25
Dra. Norka Bedregal Alpaca

AUTMATAS

Lenguaje aceptado por un AFD


Ejercicio:
Considere el autmata definido por:
A = ( {q0, q1 , q2 ), {a, b}, , q0 , {q1} )
con:
(q0 , a) = q1
(q0, b) = q2
(q1 ,a) = q2
(q1, b) = q0
(q2,a) = q2
(q2,b) = q2

Diagrama de transicin

Lenguaje aceptado: L(A)

Tabla de transicin

= {x *: (q0 , x) F }?
26
Dra. Norka Bedregal Alpaca

13

Lenguaje aceptado por un AFD

AUTMATAS

Observacin:
Otra forma de encontrar el lenguaje aceptado por un
autmata es a travs de la nocin de configuracin
Definicin:
Una configuracin de un AFD M = ( Q, , , q0, F )
es un elemento de CM = Q *
Observaciones:
La idea es que la configuracin (q, x) indica que M
est en el estado q y le falta leer la cadena x de la
entrada.
Esta es informacin suficiente para predecir lo que
ocurrir en el futuro.
Hay que describir cmo un AFD lleva de una
configuracin a la siguiente.
27
Dra. Norka Bedregal Alpaca

Lenguaje aceptado por un AFD

AUTMATAS

Definicin:
La relacin lleva en un paso, denotada por |-,
subconjunto de CMCM se define de la siguiente
manera:
(q, ax) |- (q, x), donde a , sii

(q, a) = q

Definicin:
La relacin lleva en cero o ms pasos denotada por |-*
es la clausura reflexiva y transitiva de |Definicin:
El lenguaje aceptado por un AFD M = ( Q, , , q0, F ) se
define como
L(M) = {x *, tal que existe f F, (s, x) |-* (f, )}
28
Dra. Norka Bedregal Alpaca

14

Lenguaje aceptado por un AFD


Ejemplo:

AUTMATAS

Considere el AFD que se describe formalmente como


M = ( Q, , , q0, F )
donde Q = {0, 1, 2, 3}, = {a, b}, q0 = 0, F = {0, 1, 2}, y la
funcin como sigue:

Dibuje el diagrama de transicin

29
Dra. Norka Bedregal Alpaca

AUTMATAS

Lenguaje aceptado por un AFD

El estado 3 se llama sumidero, porque una vez que se


cae l, el AFD no puede salir y no puede aceptar la
cadena.
Considere la cadena de entrada x = abbababb y
encuentre las configuraciones por las que pasa M al
recibir x como entrada

30

Dra. Norka Bedregal Alpaca

15

Lenguaje aceptado por un AFD

AUTMATAS

x = abbababb

Por lo tanto (0, x) |-* (2, ), y como 2 F, se tiene que


x L(M)
31
Dra. Norka Bedregal Alpaca

Equivalencia de AFD

AUTMATAS

Sean M y M dos AFD, se dice que son equivalentes si


L(M)=L(M).
Los AFD se caracterizan por las palabras que aceptan,
siendo menos importante la estructura interna de la
mquina, el nmero de estados, cuntos estados
finales tenga, etc

32
Dra. Norka Bedregal Alpaca

16

Importancia de los AFD

AUTMATAS

Un AFD es principalmente una especie de filtro de


todas las cadenas posibles sobre el alfabeto de
entrada.
Los AFD tienen muchas utilidades, en particular, como
analizadores lxicos.
Por ejemplo, para comprobar que en un programa, una
expresin algebraica del tipo (a+b)*c/(d+e) est
correctamente escrita, se utiliza un analizador
construido a partir de un autmata.
Lo usual es contar con un lenguaje de inters L sobre
un alfabeto y construir un AFD cuyo lenguaje sea
precisamente L.

33
Dra. Norka Bedregal Alpaca

Importancia de los AFD


Ejemplo:

AUTMATAS

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


sea:
L = {cadenas que terminan en 00}
Un AFD para este lenguaje puede ser:

34
Dra. Norka Bedregal Alpaca

17

Estados inaccesibles

AUTMATAS

Sea M = ( Q, , , q0, F ) un AFD.


Un estado q Q es un estado inaccesible, si no existe
ninguna palabra sobre el alfabeto de entrada que
partiendo desde q0 llegue a q.
Simblicamente se tendr:
q es inaccesible si * , (q0 , ) q

Observaciones:
Los estados que no son inaccesibles se denominan
accesibles.
Si se eliminan los estados inaccesibles y todas sus
transiciones, el AFD obtenido es equivalente al dado.
35
Dra. Norka Bedregal Alpaca

Estados inaccesibles
Ejemplo:

AUTMATAS

En el AFD de la figura, el estado r es inaccesible por que


no se puede alcanzar a partir del estado inicial

36
Dra. Norka Bedregal Alpaca

18

Autmata Conexo

AUTMATAS

Un AFD 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 obtenido quitando al AFD del ejemplo anterior el
estado r y sus transiciones, es conexo

37
Dra. Norka Bedregal Alpaca

Trabajo
Laboratorio:

AUTMATAS

Construccin de analizadores lxicos

38
Dra. Norka Bedregal Alpaca

19

Minimizacin de un AFD

AUTMATAS

Dado un AFD se trata de construir otro equivalente pero


que sea mnimo en cuanto al nmero de estados.

Equivalencia de estados:
Sea M = ( Q, , , q0, F ) un AFD.
Se define una relacin de equivalencia en Q.
Se dice que dos estados p, q Q son equivalentes:
p q, si

*, se tiene ((p, )) F (q, ) F)

Observacin:
El conjunto de estados del AFD mnimo es el conjunto
cociente Q/ de esta relacin de equivalencia de estados
39
Dra. Norka Bedregal Alpaca

Clculo del Conjunto Cociente


Para el clculo de este conjunto cociente se define:

AUTMATAS

Dos estados p,q Q son equivalentes de orden r (r0),


p r q, si *

tal que | | r se tiene

((p, ) ) F (q, ) F
Para cada r la relacin r es de equivalencia.
De las definiciones anteriores se tiene:
p q p r q

r0

Para obtener Q/ se calcula Q/ 0, Q/ 1 ,... hasta que


Q/ r = Q/ r+1 = Q/

40
Dra. Norka Bedregal Alpaca

20

Algoritmo para construir Q/ n

AUTMATAS

Se trabaja por recurrencia sobre r.


Para r = 0, como ( p, ) = p, dos estados p y q
pueden ser equivalentes de orden 0 en los siguientes
casos:
si ambos son estados finales ( p, q F)
si ambos son estados no finales ( p, q F) as el
conjunto cociente de la relacin de equivalencia
0 ser Q/ 0 = { F, Fc }.
Paso 1:
Q/ 0 = { c1 = qi F, c2 = qj Q-F}
Paso 2:
Sea Q/ r = {C1, C2, , Ci, , Ck}
41
Dra. Norka Bedregal Alpaca

Algoritmo para construir Q/ n

AUTMATAS

Se quiere construir Q/ r+1 , considerando que p y q


estn en la misma clase si se verifican dos
condiciones:
1. p, q Ck
2.

a se verifica que ( p, a) y ( q, a) estn en


la misma clase Cm de Q/ i

Paso 3:
Si Q/ i = Q/ i+1 entonces Q/ i = Q/ en caso contrario
aplicar el paso 2, partiendo de Q/ i+1

42
Dra. Norka Bedregal Alpaca

21

Minimizacin de un AFD: conjunto cociente

AUTMATAS

Dado el AFD , M = ( Q, , , q0, F ) existe un nico AFD


equivalente mnimo (Autmata del conjunto cociente):
Mm=(Qm, , m, q0m, Fm)

definido por:
Qm = Q /
a , m (ci, a) = cj si p cj, q Ci tal que
( q, a) = p
q0m = c0

si q0 c0 c0 Qm

Fm ={Ci , tal que p Ci p F }

43
Dra. Norka Bedregal Alpaca

Minimizacin de un AFD
Ejemplo:

AUTMATAS

Dado el autmata M=( {q0,q1,q2,q3,q4}, {0,1}, f, q0, {q4})


Encontrar su equivalente mnimo

44
Dra. Norka Bedregal Alpaca

22

Minimizacin de un AFD
Conjunto cociente

AUTMATAS

1. Conjunto inicial Q/E1 = ({q0,q1,q2,q3,} , {q4 })


2. Q/Ei
2.1. Q/E2 = ({q0,q1,q2} , {q3}, {q4 })
3. Q/E2 Q/E1 ir al paso 2
2.2. Q/E3 = ({q0,q2}, {q1},{q3},{q4})
4. Q/E3 Q/E2 ir al paso 2
2.3. Q/E4 = ({q0,q2}, {q1},{q3},{q4})
5. Q/E4 = Q/E3 = Q/E

45
Dra. Norka Bedregal Alpaca

Minimizacin de un AFD
Autmata mnimo equivalente:

AUTMATAS

Mm=(Qm, = {0,1}, m, q0m, Fm)


con
Qm= ( C0 = {q0,q2}, C1 = {q1}, C2 = {q3}, C3 ={q4} )
qom = C0
F m = C3

46
Dra. Norka Bedregal Alpaca

23

Minimizacin de un AFD
Ejercicio:

AUTMATAS

Compruebe que la minimizacin del autmata M4 es el


autmata AFD-min

47

AUTMATAS

Dra. Norka Bedregal Alpaca

FIN

48
Dra. Norka Bedregal Alpaca

24

Вам также может понравиться