2. Autómata finito no determinista
Un autómata finito no determinista (abreviado AFND) es
un autómata finito que, a diferencia de los autómatas finitos
deterministas (AFD), posee al menos un estado q ∈ Q, tal que
para un símbolo a ∈ Σ del alfabeto, existe más de una transición
δ(q,a) posible.
En este ejemplo, δ(q0,b)=q0 y δ(q0,b)=q1.
3. En un AFND puede darse cualquiera de estos dos casos:
• Que existan transiciones del tipo δ(q,a)=q1 y δ(q,a)=q2,
siendo q1 ≠ q2;
• Que existan transiciones del tipo δ(q, ε), siendo q un estado
no-final, o bien un estado final pero con transiciones hacia
otros estados. Cuando se cumple el segundo caso, se dice
que el autómata es un autómata finito no determinista con
transiciones vacías o transiciones ε (abreviado AFND-ε).
Estas transiciones permiten al autómata cambiar de estado
sin procesar ningún símbolo de entrada. Considérese una
modificación al modelo del autómata finito para permitirle
ninguna, una o más transiciones de un estado sobre el
mismo símbolo de entrada.
4. La máquina comienza en el estado inicial especificado y lee una
cadena de caracteres pertenecientes al alfabeto. El autómata
utiliza la función de transición de estados T para determinar el
siguiente estado, usando el estado actual y el símbolo que acaba
de leer o la cadena vacía.
Sin embargo, el estado siguiente de un AFND no sólo depende
del evento de entrada actual, sino que también en un número
arbitrario de los eventos de entrada posterior. Hasta que se
producen estos acontecimientos posteriores no es posible
determinar en qué estado se encuentra la máquina.
5. Un NFA es un 5-tupla (Q, Σ, δ, q0, F), donde:
• Q es un conjunto finito de estados
• Σ es un conjunto finito (alfabeto) de símbolos
de entrada
• δ : Q × Σε → P (Q) es la función de transición
• q0 ∈ Q, es el estado de inicio
• F ⊆ Q es el conjunto de aceptar o estados
finales.
6. Todo AFND (QN, Σ, q0, δN, FN) puede convertirse en un AFD (QD,
Σ, q0, δD, FD) equivalente, que mantiene el alfabeto Σ y el estado
inicial q0 originales. La conversión implica pasar por un AFD
intermedio con estados y transiciones redundantes, que al no ser
accesibles a partir del estado inicial, son eliminados para obtener
el AFD definitivo.
Cuando el autómata ha terminado de leer, y se encuentra en un
estado de aceptación, se dice que el AFND acepta la cadena, de
lo contrario se dice que la cadena de caracteres es rechazada.
Tanto para un AFND como para un autómata finito determinista
(AFD) se puede aceptar el mismo lenguaje. Por lo tanto, es
posible convertir un AFND existente en un AFD para el desarrollo
de una máquina tal vez más simple.
7. El ejemplo siguiente muestra un AFND M, con un alfabeto binario que determina si
la entrada contiene un número par de 0s o un número par de 1s. Entonces M = (Q, Σ,
T, s0, F) donde:
• Σ = {0, 1},
• Q = {s0, s1, s2, s3, s4}
• E({s0}) = { s0, s1, s3 }
• F = {s1, s3}
• La función de transición T puede ser definida por esta tabla de transición de
estados: