Autómata Finito Determinista
Autómata Finito Determinista
Autómata Finito Determinista
1 Concepto de AFD
Capítulo 4. Gramáticas regulares.
Un AFD es una máquina de estados que tiene acceso a una
secuencia de símbolos de entrada (mediante una cabeza
Capítulo 5. Autómatas finitos deterministas lectora).
Un AFD se encuentra en cada momento en un estado
5.1. Concepto de AFD determinado y puede transitar a otro estado. Para ello se
realizan los siguientes pasos:
Definición. Lenguaje reconocido por un AFD. Se lee la cinta y se avanza la cabeza lectora.
En función del símbolo leído y del estado actual el
5.2. Equivalencia y Minimización de AFD autómata transita a otro estado
Accesibilidad. Equivalencia de estados. AFD Un AFD para el procesamiento cuando no le quedan más
símbolos en la entrada
mínimo. Equivalencia de autómatas. La parada puede ocurrir en un estado marcado como “final”
o uno que no este marcado como final
Capítulo 6. Autómatas finitos no deterministas “salida binaria”
Capítulo 7. Expresiones regulares 5.1.1 Definición
Capítulo 8. Propiedades de lenguajes regulares Un autómata finito determinista (AFD) es una quíntupla
A=(Q,,f,q0,F), donde:
Capítulo 9. Otros tipos de autómatas Q es un conjunto de estados
es el alfabeto de entrada
f:QQ es la función (total) de transición
q0 Q es el estado inicial
FQ es el conjunto de estados finales
1 2
Definición:
Ejemplo: (sencillo: Autómata que acepta las cadenas (01)n1):
Sea un autómata A=(Q,,f,q0,F). El diagrama de transición de
estados de dicho autómata es el grafo que cumple las siguientes
A=({q0,q1,q2,q3},{0,1},f,q0,{q2}), donde la función de
propiedades:
transición f está definida como sigue a continuación:
El conjunto de nodos del grafo es Q
f(q0,0)=q1 f(q0,1)=q2
f(q1,0)=q3 f(q1,1)=q0 El nodo correspondiente al estado inicial (y sólo él) está
f(q2,0)=q3 f(q2,1)=q3 marcado con una flecha
f(q3,0)=q3 f(q3,1)=q3 Los |F| nodos correspondientes a los estados finales (y
sólo ellos) están marcados mediante “*” o mediante un
Alternativamente, también podemos representar el autómata doble círculo
(no sólo la función de transición) mediante una tabla de Existe un arco desde el nodo qi al qj etiquetado mediante
transiciones: el símbolo a si y sólo si f(qi,a)=qj.
A 0 1
q0 q1 q2 Ejemplos:
q1 q3 q0 1. Grafo de transición para el mismo autómata del ejemplo
* q2 q3 q3 anterior:
q3 q3 q3 1
0 0,1
q0 q1 q2* q3
El hecho de que f sea una función total significa que está definida
1 0 0,1
para todo par (q,a) Q.
El determinismo del autómata proviene del hecho de que la 2. Grafos sencillos que no corresponden a autómatas finitos
imagen de la función de transición sea Q. Es decir, en cada deterministas:
momento (para cada símbolo de entrada y cada estado) sólo tiene carecen de transiciones para determinados estados y
definido una posible transición. símbolos del alfabeto
algunas transiciones no están etiquetadas
El nombre de finito proviene del hecho de que el autómata sólo
no tiene estado inicial (un AFD si puede carecer de
tiene un conjunto finito de estado distintos para recordar lo
estados finales)
procesado (no tiene ningún sistema de almacenamiento de
información adicional).
3 4
5.1.2 Lenguaje reconocido por un AFD El complemento del lenguaje aceptado por un autómata está
formado por el conjunto de palabras que hacen terminar al
Definición: autómata en un estado que no es final:
La función de transición extendida f*: Q*Q, se define L(A) ={x|x* y f*(q0,x) F}.
recursivamente de la siguiente manera:
f*(q,)=q, para todo q Q El lenguaje reconocido por un autómata incluye si y sólo si el
estado inicial es un estado final:
f*(q,ax)=f*(f(q,a),x), para todo q Q, a y x *
q0 F L(A)
Nota: la segunda parte también se puede definir como
f*(q,xa)=f(f*(q,x),a) Ejemplos:
1. Si Q=F, entonces L(A)=*=W()
Ejemplo: 2. El autómata más pequeño tal que L(A)={a,b}*:
Teniendo en cuenta el autómata del ejemplo anterior:
¿Qué valores tienen f*(q0,0101), f*(q0,(01)31)? A a b
¿Qué valor tienen f*(q0,(01)n1) para todo n0? * 0
q q0 q0
3. Si F=, entonces L(A)=.
Si x (01)n1, entonces f*(q0,x) q2 4. El autómata más pequeño tal que L(A)= (con ={a,b}):
Definición (palabra aceptada): A a b
Sea un autómata A=(Q,,f,q0,F). Se dice que el autómata A q0 q0 q0
acepta una palabra x* si y sólo si: f*(q0,x) F.
5. Para el autómata del primer ejemplo: L(A)={(01)n1|n0}
Definición (lenguaje reconocido): 6. Encontrar un AFD que acepte el lenguaje siguiente:
Sea un autómata A=(Q,,f,q0,F). El lenguaje reconocido (o L={x| x=aby e y{a,b}*}
aceptado) por dicho autómata está formado por el conjunto de Los cuatro estados del autómata se pueden denominar: “”,
palabras que acepta: “a”, “ab...” y “...”.
L(A)={x |x* y f*(q0,x) F}. 7. Encontrar un AFD que acepte el lenguaje siguiente:
L={x | x{0,1}* y x no contiene el substring 001}
Definición (AFDs equivalentes): El autómata tiene 4 estados, que podemos denominar “”,
Dos autómatas A1 y A2 se dicen equivalentes (A1A2), si “0”, “00” y “001”.
reconocen el mismo lenguaje: 8. Encontrar un AFD que acepte el lenguaje siguiente:
L(A1)=L(A2). L={x | x{a,b}* y el número de a’s es múltiplo de 3}
5 6
Ejemplos:
5.2 Equivalencia y minimización de AFD 1. (autómata inconexo, con vértices aislados en el diagrama de
transiciones)
Se puede construir diferentes autómatas que aceptan el mismo A1=({p,q,r},{a},f,p,{q,r}), con la siguiente tabla de
lenguaje. transiciones:
A1 a
→ Resulta interesante encontrar el autómata más sencillo que
reconozca un determinado lenguaje. p r
→ Minimización de AFD * q q
* r r
La minimización de un autómata pasa, normalmente, por la
minimización del conjunto de estados. Hay dos formas de reducir 2. (autómata inconexo, sin vértices aislados)
los estados: A2=({p,q,r},{a},f,p,{r}), con la siguiente tabla de transiciones:
eliminando estados inaccesibles,
combinando estados equivalentes. A2 a
p r
5.2.1 Accesibilidad q p
* r r
Definición (estado accesible):
Sea un AFD A=(Q,,f,q0,F). Se dice que un estado qi Q es Si eliminamos de un autómata todos aquellos estados que no sean
accesible desde otro estado qj Q si: x * tal que f*(qi,x)=qj. accesibles desde el estado inicial (es decir, si hacemos conexo un
autómata que no lo era), el lenguaje aceptado por el nuevo
Todo estado es accesible desde sí mismo ya que f*(q,)=q. autómata no cambiará.
7 8
Algoritmo (encontrar autómata conexo): 5.2.2 Equivalencia de estados
Trivial: considera el siguiente ejemplo
Definición (estados equivalentes):
A a b Dos estados p y q se dicen equivalentes (o indistinguibles),
p r q pEq, si: x*: f*(p,x)F f*(q,x)F.
* r r p Dos estados p y q se dicen equivalentes (o indistinguibles)
q r q respecto a palabras de longitud n o menor, pEnq, si:
s r t x* con |x|n: f*(p,x)F f*(q,x)F.
t s P Definición (estados distinguibles):
Dos estados p y q se dicen distinguibles si no son equivalentes.
El resultado del algoritmo es un autómata conexo que es igual
que A, con la única diferencia de que en el se han eliminado los Ejemplos:
estados inaccesibles desde el estado q0. 1. Ningún estado equivalente, todos distinguibles:
Lema 1: A a
El autómata A’ que se obtiene como resultado del algoritmo q0 q1
anterior es equivalente al autómata A y tiene un número de q1 q2
estados menor o igual a A. q2 q3
* q3 q0
Demostración:
Para cualquier palabra xL(A) y cualquier prefijo z de x 2. Estados equivalentes:
(x=zy) se cumple que f*(q0,z) es un estado accesible desde q0. A=({p,r,q,s,t},{0,1},f,p,{s,t}) con f definido por el siguiente
Luego la aceptación de x sólo pasa por estados accesibles grafo de transición:
desde q0. r 1
s
Por tanto, la eliminación de los estados inaccesibles no influye 0 0,1
en la aceptación de palabras, por lo que L(A’)=L(A).
p 0
Es obvio que la eliminación de estados inaccesibles no
incrementa el número de estados del autómata. 1
1
q t
0 0,1
9 10
Lema 2: Lema 4:
Las relaciones de indistinguibilidad de estados E (y En) son Sea un autómata A=(Q,,f,q0,F), y dos estados p y q Q.
relaciones de equivalencia. a : f(p,a)Enf(q,a) pEn+1q.
11 12
Los lemas anteriores permiten construir un algoritmo para Como ayuda, en cada paso de Q/Ei a Q/Ei+1, se puede escribir otra
encontrar el conjunto cociente a partir de Q/E0. tabla en la que se sustituyen los estados por las clases de Q/E i en
las columnas 2 y seguidas. Entonces, dos estados que pertenecen
Algoritmo: a la misma clase en Q/Ei, pertenecen también a la misma clase en
Dado un autómata A=(Q,,f,q0,F), obtener el conjunto cociente Q/Ei+1, sii para todo símbolo a se las transiciones llevan a la
Q/E: misma clase de Q/Ei.
1. Q/E0={F,Q-F}.
2. Generar Q/Ei+1 a partir de Q/Ei: Para el ejemplo anterior:
p y q pertenecen a la misma clase en Q/Ei+1 sii:
p y q pertenecen a la misma clase en Q/Ei, y - Q/E0={{p,r,q},{s,t}}
para todo a, f(p,a) y f(q,a) pertenecen a la - Paso de Q/E0 a Q/E1: se define {p,q,r}=C y {s,t}=D:
misma clase en Q/Ei A 0 1
3. Si Q/Ei+1=Q/Ei , entonces Q/E= Q/Ei. En otro caso, volver al p C C
paso 2. r C D
q C D Q/E1 = {{p},{r,q},{s,t}}
Ejemplo: * s D D
(ejemplo de antes) A=({p,r,q,s,t},{0,1},f,p,{s,t}) con la tabla * t D D
de transición:
- Paso de Q/E1 a Q/E2: se define {p}=B; {q,r}=C y {s,t}=D:
A 0 1
p r q A 0 1
r q s p C C
q q t r C D
* s s s q C D Q/E2 = {{p},{r,q},{s,t}}
* t t t * s D D
* t D D
- Q/E0={{p,r,q},{s,t}}
- estados que irán juntos en Q/E1:
pEr-no(x=1); pEq-no(x=1); rEq-¿?; sEt-¿?
- Q/E1={{p},{r,q},{s,t}}
- estados que irán juntos en Q/E2:
rEq-¿?; sEt-¿?
- Q/E2={{p},{r,q},{s,t}}= Q/E1=Q/E
NOTA:
13 14
Ejemplos: Lema 6:
1. Calcula el conjunto cociente para el siguiente AFD. Sea A=(Q,,f,q0,F) un AFD. El autómata A’=(Q/E,,f’,q0’,F’),
AFD 0 1 donde: 1. q0’ es el elemento de Q/E, tal que q0q0’
A B F 2. F’={s | sQ/E y ps: pF}
B G C 3. f’(si,a)=sj sii p si y q sj tal que f(p,a)=q
* C A C es equivalente a A.
D C G
E H F Idea de demostración:
F C G
G G E
H G C El autómata A’ tiene estados que corresponden a las
clases de equivalencias del autómata A.
2. Calcula el conjunto cociente para el AFD definido por el Se demuestra que cualquier transición en el autómata A
siguiente grafo: de un estado p a otro q tiene una transición equivalente en
1
r s el autómata A’ de la clase de equivalencias que contiene p
0
0 0 0,1 a la clase de equivalencias que contiene q.
p t 1 Por tanto, dada cualquier palabra x*, si A para con x
0 en un estado p, A’ para con x en la clase de equivalencias
1
1 que contiene p. Estos dos estado o ambos son finales o
q ambos no son finales.
15 16
5.2.3 AFD mínimo Lema 7:
El autómata A’ que es obtiene con el algoritmo anterior es
Es obvio que tanto la eliminación de estados inaccesibles como la equivalente al autómata A y no tiene ni estados inaccesibles ni
unificación de estados equivalentes pueden reducir el número de estados equivalentes.
estados de un autómata (como mucho lo mantienen).
Este lema sigue de forma directa de los lemas 1 y 6 y del propio
Algoritmo: algoritmo.
Dado A=(Q,,f,q0,F), obtener el AFD mínimo equivalente:
Teorema 1:
1. Eliminar todos los estados que no sean accesibles desde q0 Cualquier autómata A que no tiene estados inaccesibles desde el
2. Construir el conjunto cociente Q/E estado inicial ni estados equivalentes es mínimo (no existe
3. El autómata mínimo es A’=(Q/E,,f’,q0’,F’), donde: ningún autómata con un número de estados menor que reconoce
a. q0’ es el elemento de Q/E, tal que q0q0’ el lenguaje L(A)).
b. F’={s | sQ/E y p s tal que pF}
c. f’(si,a)=sj sii p si y q sj tal que f(p,a)=q Idea de demostración:
Sea el autómata A=(Q,,f,q0,F) con n estados.
Ejemplo: Supongamos que existiese un autómata A’=(Q’,,f’,q0’,F’)
1. Obtener el autómata mínimo equivalente al siguiente AFD: equivalente con menos estados (|Q’|<n).
AFD 0 1 2 Tiene que haber palabras x e y que llevan a diferentes
p r t q estados (p y q) en A y a un mismo estado en A’.
q q v p En A, p y q no son equivalentes, por tanto existe una palabra
r p u r w tal que f*(w,p) es final y f*(w,q) no es final (o vice versa).
* s q t u Por tanto, A acepta la palabra x.w y rechaza y.w.
* t t v u
Por otro lado considerando A’, las palabras x e y llevan al
* u t t v
* v u u t mismo estado, por tanto también las palabras x.w e y.w
llevan a un mismo estado. Es decir, A’ o rechaza ambas o
acepta ambas.
Eso contradice la hipótesis de que A’ y A son equivalentes,
por lo que A’ no puede existir.
17 18
Sean dos autómata A1=(Q1,,f1,q0_1,F1) y A2=(Q2,,f2,q0_2,F2) Ejemplo:
tales que Q1Q2=. Se llama suma de A1 y A2 al autómata 1. Decide si los dos autómatas siguientes son equivalentes.
A=A1+A2=(Q1Q2,,f,q0,F1F2), donde: A1 a b A2 a b
q0 es uno cualquiera de los estados q0_1 y q0_2 y p q s * z y x
{f1 (q, a), si q Q1 * q r q * y z y
f(q, a) {
⎝ f 2 (q, a), si q Q 2
* r q s x x x
s s s
Teorema 2: Teorema 3:
Sean A1 y A2 dos autómatas. A1A2, si sus respectivos estados Sean A1 y A2 dos autómatas. A1A2, sii sus autómatas mínimos
iniciales son equivalentes en el autómata A=A1+A2. son iguales salvo renombramiento de estados (son isomorfos).
19 20