Sei sulla pagina 1di 35

TALF.

Tema 4
n 1
Tema 4. Autmatas Finitos
4.1. Autmatas finitos.
4.1.1. Introduccin.
4.1.2. Mquinas secuenciales.
4.2. Autmatas finitos deterministas (A.F.D.).
4.2.1. Introduccin.
4.2.2. Definicin AFD. Representacin.
4.2.3. Extensin a palabras.
4.2.4. Lenguaje aceptado por un AFD.
4.2.5. Simulacin algortmica de un AFD
4.3. Minimizacin de Autmatas finitos.
4.3.1. Minimizacin por el conjunto cociente.
4.3.2. Minimizacin por tablas.
4.4. Autmatas finitos no deterministas (A.F.N.D.).
4.4.1. Introduccin.
4.4.2. Definicin AFND. Representacin.
4.4.3. Extensin a palabras.
4.4.4. Lenguaje aceptado por un AFND.
4.4.5. Simulacin algortmica de un AFND
4.5. Equivalencia entre A.F.D. y A.F.N.D.
TALF. Tema 4
n 2
4.1.1. Autmatas Finitos. Introduccin.
Autmatas con salidas:
Mquina de Moore. Salida asociada al estado.
Mquina de Mealy. Salida asociada a la transicin.
Autmatas reconocedores de lenguajes regulares:
Autmata Finito Determinista (AFD)
Autmata Finito No Determinista (AFND)
salidas:
reconoce , no reconoce cadenas de un lenguaje regular;
0 o 1
TALF. Tema 4
n 3
4.1.2. Mquinas secuenciales.
Dado en prcticas.
TALF. Tema 4
n 4
4.2. Autmatas Finitos Deterministas. Introduccin
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.
TALF. Tema 4
n 5
4.2. Autmatas finitos deterministas (AFD). Introduccin
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 q
0
.
q
0
a a a b a b a c c ... b
TALF. Tema 4
n 6
4.2. Autmatas finitos deterministas (AFD). Introduccin
Cmo procesa entradas un AFD?
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 q
i
de F, se
dice que acepta la cadena, en caso contrario la rechaza.
q
0
a a a b a b a c c ... b
q
3
q
2
q
i
TALF. Tema 4
n 7
4.2.2. Autmatas finitos deterministas(AFD). Definicin.
Un autmata finito es una quntupla M=(Q,,f,q
0
,F) :
Q es un conjunto finito llamado conjunto de estados.
es un conjunto finito de smbolos, llamado alfabeto
de entrada.
f es una aplicacin llamada funcin de transicin
f: Q Q
q
0
es un elemento de Q, llamado estado inicial.
F es un subconjunto de Q, llamado conjunto de estados
finales.
TALF. Tema 4
n 8
4.2.2. Representacin AFD.
Tablas 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 f(q,a).
El estado inicial se representa con
Los estados finales con un *
0 1
q
0
q
2
q
0
*
q
1
q
1
q
1
q
2
q
2
q
1
Ejemplo:
TALF. Tema 4
n 9
4.2.2. Representacin AFD.
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.
q
0
q
2
q
1

1
0
0
1
0, 1
TALF. Tema 4
n 10
4.2.2. Representacin AFD.
Determinismo porque:
No existen transiciones
qeQ , ae - una nica f(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 cual llegan todas las transiciones no definidas.
Ejemplo:
0 1
q
0
q
1
q
2
*
q
1
- -
q
2
q
1
-
1
q
0
q
2
q
1

0, 1
1
M
1
0
0
0, 1
M M M
0 1
q
0
q
1
q
2
*
q
1
M M
q
2
q
1
M
TALF. Tema 4
n 11
4.2.3. AFD. Extensin de f a palabras.
Si M=(Q,,f,q
0
,F) es un AFD se define la funcin de
transicin asociada a palabras como la funcin
f: Q
*
Q
dada por:
f(q,)=q
f(q,a)=f(q,a)
f(q,ax)=f(f(q,a),x)
donde xe
*
y ae
TALF. Tema 4
n 12
4.2.4. Lenguaje aceptado por un AFD.
Una cadena xe
*
es aceptada por un autmata M=(Q,,f,q
0
,F)
si y solo si f(q
0
,x)eF. 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)={xe
*
/ f(q
0
,x)eF}
TALF. Tema 4
n 13
4.2.5. Simulacin algortmica de un AFD
Entrada: cadena de entrada x que termina con un carcter fin de cadena o fin
de archivo (FDC).
Salida: La respuesta ACEPTADA si el autmata reconoce x NO ACEPTADA
en caso contrario
Mtodo: aplicar f al estado al cual hay una transicin desde el estado q a un
carcter de entrada c
Funcin reconocer()
q=q
0
c= leer_carcter()
Mientras c != FDC
q=f(q,c)
c= leer_carcter()
fmientras
Si q e F entonces
Devolver(ACEPTADA)
Sino
Devolver(NO ACEPTADA)
fsi
TALF. Tema 4
n 14
4.2.5. Simulacin algortmica de un AFD. Ejemplo.
Ejemplo:AFD que reconozca el nombre de variables empezando
por letra y seguida de letras o dgitos.
q
0
q
2
q
1

letra
letra|digito
digito
letra|digito
letra digito
q
0
q
1
q
2
*
q
1
q
1
q
1
q
2
q
2
q
2
TALF. Tema 4
n 15
4.2.5. Simulacin algortmica de un AFD. Ejemplo.
Funcin reconocer_id() //Por el diagrama
estado=0
s= leer_simbolo()
Mientras s != FDC
Caso estado sea
0: Si s=letra entonces estado=1
sino
Si s=digito entonces estado=2
sino
Error() //salir a la rutina de error lxico
fsi
fsi
1: Si s=letra or digito entonces estado=1
sino
Error() //salir a la rutina de error lxico
fsi
2: Si s=letra or digito entonces estado=2
sino
Error() //salir a la rutina de error lxico
fsi
fcaso
s= leer_simbolo()
fmientras
Si estado=1 entonces
Devolver(SI)
Sino
Devolver(NO)
fsi
TALF. Tema 4
n 16
4.2.5. Simulacin algortmica de un AFD. Ejemplo.
Funcin reconocer_id() //por la tabla
estado=0
s= leer_simbolo()
Mientras s != FDC
Caso s sea
letra: entrada=letra
digito: entrada=digito
otro: Error() //salir a la rutina de error lxico
fcaso
estado= f(estado,entrada)
s= leer_simbolo()
fmientras
Si estado=1 entonces
Devolver(SI)
Sino
Devolver(NO)
fsi
TALF. Tema 4
n 17
4.3.1. Minimizacin de Autmatas finitos por el conjunto cociente.
Algoritmo para construir el conjunto cociente Q/E
n
1. Q/E
1
= {c
1
=q
i
eF, c
2
=q
j
eQ-F}
2. Sea Q/E
i
={c
1
, c
2
, ..., c
j
}. Q/E
i+1
se construye:
p y q estn en la misma clase si y solo si p,qec
k
y aeE
se verifica que f (p,a) y f (q,a) estn en la misma clase c
m
de Q/E
i
3. Si Q/E
i
=Q/E
i+1
entonces Q/E
i
=Q/E , en caso contrario
aplicar el paso 2. partiendo de Q/E
i+1
TALF. Tema 4
n 18
4.3.1. Minimizacin de Autmatas finitos por el conjunto cociente.
Dado el AFD M=(Q,,f,q
0
,F)
existe un nico AFD equivalente mnimo
(Autmata del conjunto cociente)
M
m
=(Q
m
, E, f
m
, q
0m
, F
m
)
Donde
Q
m
=Q/E
aeE, f
m
(c
i
,a)=c
j
si -pec
j
, qec
i
/f(q,a)=p
q
0m
=c
0
si q
0
ec
0
y c
0
e Q
m
F
m
= {c
i
/ -pec
i
y peF}
TALF. Tema 4
n 19
4.3.1. Minimizacin de AFD por el conjunto cociente. Ejemplo
Ejemplo: M=( {0,1},{q
0
,q
1
,q
2
,q
3
,q
4
}, f, q
0
,{q
4
})
f 0 1
q
0
q
1
q
2
q
1
q
1
q
3
q
2
q
1
q
2
q
3
q
1
q
4
*q
4
q
1
q
2
q
0
q
2
q
1
0
q
3
0
1
1
1
0
1
q
4
0
0
1
TALF. Tema 4
n 20
4.3.1. Minimizacin de AFD por el conjunto cociente. Ejemplo
Conjunto cociente
1. Conjunto inicial Q/E
1
=({q
0
,q
1
, q
2
,q
3
},{q
4
})
2. Q/E
i
2.1. Q/E
2
=({q
0
,q
1
,q
2
},{q
3
}, {q
4
})
3. Q/E
2
= Q/E
1
paso 2
2.2. Q/E
3
=({q
0
,q
2
},{q
1
},{q
3
},{q
4
})
4. Q/E
3
= Q/E
2
paso 2
2.3. Q/E
4
=({q
0
,q
2
},{q
1
},{q
3
},{q
4
})
5. Q/E
4
= Q/E
3
= Q/E
f 0 1
q
0
q
1
q
2
q
1
q
1
q
3
q
2
q
1
q
2
q
3
q
1
q
4
*q
4
q
1
q
2
TALF. Tema 4
n 21
4.3.1. Minimizacin de AFD por el conjunto cociente. Ejemplo
Autmata mnimo equivalente: M
m
=({0,1},{c
0
,c
1
,c
2
,c
3
},f
m
,q
om
)
Q
m
=(c
0
={q
0
,q
2
}, c
1
={q
1
}, c
2
={q
3
}, c
3
={q
4
})
f
m
0 1
c
0
c
1
c
0
c
1
c
1
c
2
c
2
c
1
c
3
*c
3
c
1
c
0
f 0 1
q
0
q
1
q
2
q
1
q
1
q
3
q
2
q
1
q
2
q
3
q
1
q
4
*q
4
q
1
q
2
c
2
c
1
c
0
1
0
1
0
1
0
c
3
0
1
TALF. Tema 4
n 22
4.3.1. Minimizacin de Autmatas finitos por tablas.
Dado en prcticas.
TALF. Tema 4
n 23
4.4.1. Autmatas Finitos No Deterministas. Introduccin
Un autmata finito es no determinista si:
No - f(q,a) para algn ae desde algn q eQ
- mas de una f(q,a) desde q eQ con ae
- f(q,)
q
0
q
2
q
1

a a
a
b
={a,b}
q
0
q
2
q
1

a a
b
b
={a,b}
q
0
q
2
q
1

a
b
b
={a,b}
TALF. Tema 4
n 24
4.4.2. Definicin AFND.
Un autmata finito no determinista (AFND) es un modelo
matemtico definido por la quntupla M=(Q, ,f, q
0
, F) en el que:
Q es un conjunto finito llamado conjunto de estados.
es un conjunto finito de smbolos, llamado alfabeto de
entrada.
f es una aplicacin llamada funcin de transicin definida como:
f: Q ( {}) P(Q)
donde P(Q) es el conjunto de las partes de Q, es decir, conjunto de
todos los subconjuntos que se pueden formar con elementos de Q
q
0
es un elemento o estado de Q, llamado estado inicial.
F es un subconjunto de Q, llamado conjunto de estados finales.
TALF. Tema 4
n 25
4.4.2. Representacin.
Tablas de transicin.
Diagramas de transicin.
0 1
q
0
{q
0
,q
1
} {q
0
}
q
1
{q
1
} C
*
q
2
C {q
2
}
2
C
{q
1
,q
2
}
{q
2
}

C
{q
0
,q
2
}
C
q
0
q
1
q
2

0
,2
0,1
0,2
1,2

TALF. Tema 4
n 26
4.4.3. funcin de transicin. Extensin a palabras.
Definicin -clausura:
Se llama -clausura de un estado al conjunto de estados a los que
puede evolucionar sin consumir ninguna entrada, lo denotaremos
como CL(q) o -clausura(q).
CL(q) se define recursivamente:
El estado q pertenece a la -clausura de q, qeCL(q).
Si el estado peCL(q) y hay una transicin del estado p al estado r
etiquetada con una transicin nula (), entonces r tambin est en
CL(q).
Si P_Q se llama -clausura de un conjunto de estados P a:
CL(P)= CL(q)
qeP
Algoritmo para el clculo de -clausura(P)
Procedimiento -clausura(P)
Viejos=C
Nuevos=P
Mientras viejos=nuevos hacer
Nuevos=viejos {q / f(p
i
,)=q, pieviejos}
Fmientras
-clausura(P)=nuevos
Fin_procedimiento
TALF. Tema 4
n 27
4.4.3. funcin de transicin. Extensin a palabras.
Si M=(Q,,f,q
0
,F) es un AFND se define la funcin de
transicin asociada a palabras como la funcin
f

: Q
*
P(Q) dada por:
f

(q
0
,)=CL(q
0
)
f

(P,)=P
f

(P,ax)= f

( CL( f(q,a)),x)
qeP
donde P_Q, xe
*
y ae
TALF. Tema 4
n 28
4.4.4. Lenguaje aceptado por un AFND.
Una cadena xe
*
es aceptada por un AFND M=(Q,,f,q
0
,F)
si y solo si
f

(q
0
,x) F=C
En otro caso se dice que la cadena es rechazada por el
autmata.
Dado un AFND M=(Q,,f,q
0
,F) se llama lenguaje aceptado o
reconocido por dicho autmata al conjunto de las palabras
de
*
que acepta,
L(M)={xe
*
/ f

(q
0
,x)F=C}
TALF. Tema 4
n 29
4.4.5. Simulacin algortmica de un AFND
Entrada: cadena de entrada x que termina con un carcter fin de cadena o fin
de archivo (FDC).
Salida: La respuesta ACEPTADA si el autmata reconoce x NO ACEPTADA en
caso contrario
Mtodo: aplicar f al estado al cual hay una transicin desde el estado q a un
carcter de entrada c
Funcin reconocer()
A=CL(q
0
)
c= leer_carcter()
Mientras c != FDC
A=CL ( f(q,c))
qeP
c= leer_carcter()
fmientras
Si A F=C entonces
Devolver(ACEPTADA)
Sino
Devolver(NO ACEPTADA)
fsi
TALF. Tema 4
n 30
4.5. Equivalencia entre AFND y AFD
A partir de un AFND con estados q
0
,q
m
, construiremos un AFD
equivalente (que acepta el mismo lenguaje) con estados Q
0
,Q
n
donde
q
0
, Q
0
, son los estados iniciales.
Premisas:
Se defini inductivamente el conjunto de estados C = -clausura(s):
s e C.
si t e C y - una transicin vaca de t a u entonces u e C.
Se define el conjunto de estados G = f(s , a) :
si - una transicin etiquetada con a entre s y t entonces t e G.
Estas definiciones se generalizan para conjuntos de estados
S = { ... t
i
... } :
Si u e -clausura(t
i
) entonces u e -clausura(S)
Si u e f(t
i
, a) entonces u e f(S , a).
(f(G,a) son los estados s alcanzables con a desde algn qeG)
TALF. Tema 4
n 31
4.5. Equivalencia entre AFND y AFD
Algoritmo de construccin de la tabla de transiciones del AFD:
1. se crea una nueva tabla T[estado,smbolo], inicialmente vaca.
2. se calcula Q
0
= -clausura(q
0
)
3. se crea una entrada en T para Q
0
.
4. para cada casilla vaca T[Q,a] :
1. se asigna T[Q,a] = -clausura(f(Q,a))
2. si no existe una entrada en T para el estado T[Q,a], se crea
la entrada.
5. se repite 4 mientras existan casillas vacas.
TALF. Tema 4
n 32
4.5. Equivalencia entre AFND y AFD. Ejemplo.
Ejemplo:
a b
0 1 1 2
1 2 1 3
2 0 4 C
3 4 1 C
*4 4 4 C
4
2
3
b
1
0
a
a, b
a
a,b

b
b

a
TALF. Tema 4
n 33
4.5. Equivalencia entre AFND y AFD. Ejemplo.
1. se crea una nueva tabla T[estado,smbolo], inicialmente vaca.
2. se calcula Q
0
= -clausura(0) = {0,2}
3. se crea una entrada en T para Q
0
.
4. para cada casilla vaca T[Q,a] :
1. se asigna T[Q,a] = -clausura(f(Q,a))
-clausura(f(Q
0
={0,2},a))=-clausura(0,1)={0,1,2,3}=Q
1
2. si no existe una entrada en T para el estado T[Q,a], se crea
la entrada.
5. se repite 4 mientras existan casillas vacas.
a b
0 1 1 2
1 2 1 3
2 0 4 C
3 4 1 C
*4 4 4 C
a b
Q
0
Q
1
Q
1
a b
Q
0
TALF. Tema 4
n 34
4.5. Equivalencia entre AFND y AFD. Ejemplo
5. -clausura(f(Q
0
={0,2},b))=-clausura(1,4)={1,3,4}=Q
2
6. -clausura (f(Q
1
= {0,1,2,3} , a)) =
-clausura(0,1,2,4)={0,1,2,3,4}=Q
3
7. -clausura(f(Q
1
={0,1,2,3},b))=
-clausura(1,4)={1,3,4}=Q
2
8. -clausura(f(Q
2
={1,3,4},a))=-clausura(2,4)={2,4}=Q
4
9. -clausura(f(Q
2
={1,3,4},b))=-clausura(1,4)={1,3,4}=Q
2
10. -clausura(f(Q
3
={0,1,2,3,4},a))=-
clausura(0,1,2,4)={0,1,2,3,4}=Q
3
11. -clausura(f(Q
3
={0,1,2,3,4},b))=-clausura(1,4)={1,3,4}=Q
2
12. -clausura(f(Q
4
={2,4},a))=-clausura(0,4)={0,2,4}=Q
5
13. -clausura(f(Q
4
={2,4},b))=-clausura(4)={4}=Q
6
14. -clausura(f(Q
5
={0,2,4},a))=-clausura(0,2,4)={0,2,4}=Q
5
15. -clausura(f(Q
5
={0,2,4},b))=-clausura(1,4)={1,3,4}=Q
2
16. -clausura(f(Q
6
={4},a))=-clausura(4)={4}=Q
6
17. -clausura(f(Q
6
={4},b))=-clausura(4)={4}=Q
6
a b
Q
0
Q
1
Q
2
Q
1
Q
2
TALF. Tema 4
n 35
4.5. Equivalencia entre AFND y AFD. Ejemplo
El AFD equivalente es:
a b
Q
0
Q
1
Q
2
Q
1
Q
3
Q
2
*Q
2
Q
4
Q
2
*Q
3
Q
3
Q
2
*Q
4
Q
5
Q
6
*Q
5
Q
5
Q
2
*Q
6
Q
6
Q
6

Potrebbero piacerti anche