5 - AFD
-
Upload
daniel-villanueva-montoya -
Category
Documents
-
view
216 -
download
0
description
Transcript of 5 - AFD
-
1Teora de la Computacin
Autmatas finitos deterministas
1
Dra. Norka Bedregal Alpaca
Dra. Norka Bedregal Alpaca
2
IntroduccinIntroduccin
Autmatas con salidas (Mquinas Secuenciales): 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
AUT
MAT
AS
-
2Introduccin: 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
Dra. Norka Bedregal Alpaca
3
RepasoRepasoAU
TM
ATAS
Dra. Norka Bedregal Alpaca
4
Mquina Estado FinitoMquina Estado Finito
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 SFuncin de estado siguiente G: S x I O Funcin de salidas , estado inicial, pertenece a S
AUT
MAT
AS
-
3Dra. Norka Bedregal Alpaca
5
Mquina Estado FinitoMquina Estado Finito
Ejemplo: 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(1,a)= 1 f(2,a)= 0f(0,b)= 1 f(1,b)= 2 f(2,b)= 0
g: S x I O definida por:g(0,a)= x g(1,a)= z g(2,a)= xg(0,b)= y g(1,b)= y g(2,b)= x
= 0
AUT
MAT
AS
Dra. Norka Bedregal Alpaca
6
Mquina Estado FinitoMquina Estado FinitoEjemplo (continuacin): Tabla de transicin o tabla de estados
Sf g
a b a b0 2 1 x y1 1 2 z y2 0 0 x x
Diagrama de transicin o diagrama de estados
0 1
2
(b,y)
(a,x)
(a,z)
(b,y)(b,x)
(a,x)
AUT
MAT
AS
-
4 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.
Dra. Norka Bedregal Alpaca
7
Autmatas FinitosAutmatas FinitosAU
TM
ATAS
Dra. Norka Bedregal Alpaca
8
Autmatas finitos deterministas
(AFD)
Autmatas finitos deterministas
(AFD)AUT
MAT
AS
-
5Un 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
Dra. Norka Bedregal Alpaca
9
Autmatas finitos deterministasAutmatas finitos deterministasAU
TM
ATAS
Definicin (AFD):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 Q q0 es un elemento de Q, llamado estado inicial. F es un subconjunto de Q, llamado conjunto de
estados finales.
Dra. Norka Bedregal Alpaca
10
Autmatas finitos deterministasAutmatas finitos deterministas
AUT
MAT
AS
-
6Dra. Norka Bedregal Alpaca
11
Autmatas finitos deterministasAutmatas finitos deterministasAU
TM
ATAS
Tabla de transicin: 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 *
Dra. Norka Bedregal Alpaca
12
Representacin de un AFDRepresentacin de un AFD
Ejemplo:
AUT
MAT
AS
-
7Dra. Norka Bedregal Alpaca
13
Representacin de un AFDRepresentacin de un AFDDiagramas 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:
AUT
MAT
AS
Determinismo: 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.
Dra. Norka Bedregal Alpaca
14
Representacin de un AFDRepresentacin de un AFD
AUT
MAT
AS
-
8Ejemplo:Dado el autmata definido por la tabla de transicin:
Dra. Norka Bedregal Alpaca
15
Representacin de un AFDRepresentacin de un AFD
Introduciendo un estado de absorcin M:
AUT
MAT
AS
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 * Qdada por:1. Si || = 0 entonces = y se define q Q,
( q, ) = qes decir, si no hay entrada no hay cambio de estado
Dra. Norka Bedregal Alpaca
16
AFD: Extensin de f a palabras.AFD: Extensin de f a palabras.
AUT
MAT
AS
-
92. 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 )
Dra. Norka Bedregal Alpaca
17
AFD: Extensin de f a palabras.AFD: Extensin de f a palabras.AU
TM
ATAS
Ejemplo: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
Dra. Norka Bedregal Alpaca
18
AFD: Extensin de f a palabras.AFD: Extensin de f a palabras.
AUT
MAT
AS
-
10
Ejemplo (continuacin):Siendo:
Dra. Norka Bedregal Alpaca
19
AFD: Extensin de f a palabras.AFD: Extensin de f a palabras.AU
TM
ATAS
Ejemplo (continuacin):En la mquina M1 sera
Dra. Norka Bedregal Alpaca
20
AFD: Extensin de f a palabras.AFD: Extensin de f a palabras.
En el diagrama se pueden seguir los arcos desde q, con los smbolos bab consecutivamente y observar que se termina en el estado r.
AUT
MAT
AS
-
11
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.
Dra. Norka Bedregal Alpaca
21
Cmo procesa entradas un AFD?Cmo procesa entradas un AFD?AU
TM
ATAS
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.
Dra. Norka Bedregal Alpaca
22
Cmo procesa entradas un AFD?Cmo procesa entradas un AFD?
AUT
MAT
AS
-
12
Una cadena x * es aceptada por un autmata 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}
Dra. Norka Bedregal Alpaca
23
Lenguaje aceptado por un AFDLenguaje aceptado por un AFDAU
TM
ATAS
Ejemplo:Las cadenas abb, baa, b, abbaaa son palabras aceptadas por M1.
Dra. Norka Bedregal Alpaca
24
Lenguaje aceptado por un AFDLenguaje aceptado por un AFD
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
AUT
MAT
AS
-
13
Es necesario crear un estado de absorcin y reconstruir el diagrama, con lo que se obtiene el autmata M2:
Dra. Norka Bedregal Alpaca
25
Lenguaje aceptado por un AFDLenguaje aceptado por un AFD
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 * }
AUT
MAT
AS
Dra. Norka Bedregal Alpaca
26
Diagrama de transicin
Lenguaje aceptado: L(A) = {x *: (q0 , x) F }?
Tabla de transicin
Lenguaje aceptado por un AFDLenguaje aceptado por un AFDEjercicio: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
AUT
MAT
AS
-
14
Dra. Norka Bedregal Alpaca
27
Lenguaje aceptado por un AFDLenguaje aceptado por un AFD
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.
AUT
MAT
AS
Dra. Norka Bedregal Alpaca
28
Lenguaje aceptado por un AFDLenguaje aceptado por un AFDDefinicin: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) = qDefinicin: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 comoL(M) = {x *, tal que existe f F, (s, x) |-* (f, )}
AUT
MAT
AS
-
15
Dra. Norka Bedregal Alpaca
29
Lenguaje aceptado por un AFDLenguaje aceptado por un AFDEjemplo:Considere el AFD que se describe formalmente comoM = ( Q, , , q0, F ) donde Q = {0, 1, 2, 3}, = {a, b}, q0 = 0, F = {0, 1, 2}, y la funcin como sigue:
AUT
MAT
AS
Dibuje el diagrama de transicin
Dra. Norka Bedregal Alpaca
30
Lenguaje aceptado por un AFDLenguaje aceptado por un AFD
AUT
MAT
AS
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
-
16
Dra. Norka Bedregal Alpaca
31
Lenguaje aceptado por un AFDLenguaje aceptado por un AFDAU
TM
ATAS
x = abbababb
Por lo tanto (0, x) |-* (2, ), y como 2 F, se tiene que x L(M)
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
Dra. Norka Bedregal Alpaca
32
Equivalencia de AFDEquivalencia de AFD
AUT
MAT
AS
-
17
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.
Dra. Norka Bedregal Alpaca
33
Importancia de los AFDImportancia de los AFDAU
TM
ATAS
Ejemplo:Construir un AFD sobre el alfabeto ={0,1} cuyo lenguaje sea:
L = {cadenas que terminan en 00}
Dra. Norka Bedregal Alpaca
34
Importancia de los AFDImportancia de los AFD
AUT
MAT
AS
Un AFD para este lenguaje puede ser:
-
18
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.
Dra. Norka Bedregal Alpaca
35
Estados inaccesiblesEstados inaccesiblesAU
TM
ATAS
Ejemplo:En el AFD de la figura, el estado r es inaccesible por que no se puede alcanzar a partir del estado inicial
Dra. Norka Bedregal Alpaca
36
Estados inaccesiblesEstados inaccesibles
AUT
MAT
AS
-
19
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
Dra. Norka Bedregal Alpaca
37
Autmata ConexoAutmata ConexoAU
TM
ATAS
Laboratorio:Construccin de analizadores lxicos
Dra. Norka Bedregal Alpaca
38
TrabajoTrabajo
AUT
MAT
AS
-
20
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
Dra. Norka Bedregal Alpaca
39
AUT
MAT
AS
Minimizacin de un AFDMinimizacin de un AFD
Para el clculo de este conjunto cociente se define: 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 r 0 Para obtener Q/ se calcula Q/ 0, Q/ 1 ,... hasta que
Q/ r = Q/ r+1 = Q/
Dra. Norka Bedregal Alpaca
40
Clculo del Conjunto CocienteClculo del Conjunto Cociente
AUT
MAT
AS
-
21
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}
Dra. Norka Bedregal Alpaca
41
Algoritmo para construir Q/ nAlgoritmo para construir Q/ nAU
TM
ATAS
Se quiere construir Q/ r+1 , considerando que p y q estn en la misma clase si se verifican dos condiciones:
1. p, q Ck2. a se verifica que ( p, a) y ( q, a) estn en
la misma clase Cm de Q/ iPaso 3:Si Q/ i = Q/ i+1 entonces Q/ i = Q/ en caso contrario aplicar el paso 2, partiendo de Q/ i+1
Dra. Norka Bedregal Alpaca
42
AUT
MAT
AS
Algoritmo para construir Q/ nAlgoritmo para construir Q/ n
-
22
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 }
Dra. Norka Bedregal Alpaca
43
Minimizacin de un AFD: conjunto cocienteMinimizacin de un AFD: conjunto cocienteAU
TM
ATAS
Ejemplo: Dado el autmata M=( {q0,q1,q2,q3,q4}, {0,1}, f, q0, {q4})Encontrar su equivalente mnimo
Dra. Norka Bedregal Alpaca
44
Minimizacin de un AFDMinimizacin de un AFD
AUT
MAT
AS
-
23
Conjunto cociente1. 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
Dra. Norka Bedregal Alpaca
45
Minimizacin de un AFDMinimizacin de un AFDAU
TM
ATAS
Autmata mnimo equivalente: Mm=(Qm, = {0,1}, m, q0m, Fm)
con
Qm= ( C0 = {q0,q2}, C1 = {q1}, C2 = {q3}, C3 ={q4} ) qom = C0 Fm = C3
Dra. Norka Bedregal Alpaca
46
Minimizacin de un AFDMinimizacin de un AFD
AUT
MAT
AS
-
24
Ejercicio:Compruebe que la minimizacin del autmata M4 es el autmata AFD-min
Dra. Norka Bedregal Alpaca
47
Minimizacin de un AFDMinimizacin de un AFDAU
TM
ATAS
Dra. Norka Bedregal Alpaca
48
FINFINAUT
MAT
AS