Un autómata finito no determinístico (NDFA) es un modelo matemático formado por una quíntupla que incluye un conjunto de estados, un estado inicial, un conjunto de estados finales, un alfabeto y una función de transición que puede llevar a cero o más estados. Un NDFA reconoce un lenguaje si existe al menos un camino desde el estado inicial hasta un estado final a través de las transiciones dadas una cadena de entrada.
2. Autómatas Finitos No Determinísticos
(NDFA)
INFORMALMENTE:
Es un modelo matemático que se caracteriza
por:
Conjunto de entradas y salidas discretas
Conjunto finito de estados
De cada estado pueden salir o emerger cero (0), uno (1) o
más transiciones con un símbolo del alfabeto.
Un AFD ⊂ NDFA
3. Autómatas Finitos No Determinísticos
(NDFA)
FORMALMENTE:
Es un modelo matemático formado por una
quíntupla N={Σ ,S, s0,F, δ}, donde:
Σ=Conjunto de símbolos de transición o alfabeto (entradas)
S=Conjunto finito de estados de transición
s0=Estado único de inicio, donde s0 ∈ S
F=Conjunto finito de estados de finalización o aceptación,
donde F ⊆ S
δ=Función de transición, se define:
δ: S x Σ → P(S), ( ∀s∈S y ∀a∈ Σ)
δ(s,a)={t1,t2,…,tn} ∈ P(S) (puede llevar a cero o más estados)
4. Autómatas Finitos No Determinísticos
(NDFA)
Ejemplo 1:
q0
0
q1
1
q2
1,0
N={Σ ,S, s0,F, δ}
Σ={0,1}
S={q0,q1,q2}
s0=q0
F={q2}
P(S)={∅ ,{q0},{q1},{q2},{q0,q1},
{q0,q2}, {q1,q2},S}
Descripción:
De q0 salen 2 transiciones con 0
De q1 salen 1 transición con 1
De q2 no sale ninguna transición
7. Autómatas Finitos No Determinísticos
(NDFA)
0,1
0,1
0
q0
1
q1
1
q2
0,1
q3
0
q4
Ejemplo 2:
•Determinar los
elementos de la
quíntupla
•Determinar la
tabla de transición
8. Autómatas Finitos No
Determinísticos (NDFA)
Función de Transición Extendida δˆ
δˆ : S × Σ* → P( S )
Se define por las siguientes reglas:
1. ( ∀s ∈ S )( ∀a ∈ Σ )δˆ( s, a) = δ ( s, a) = Conjunto ⊆ P ( S )
ˆ
2. ( ∀s ∈ S ) ,λ − cadena vacía, δ ( s, λ ) = {s}
3. ( ∀s ∈ S ) ,( ∀a ∈ Σ ) , ∀x ∈ Σ* , δˆ( s, xa) = ∪ δ (q, a)
ˆ
(
)
3'. ( ∀s ∈ S ) ,( ∀a ∈ Σ ) , ( ∀x ∈ Σ ), δˆ( s, ax) =
*
q∈δ ( s , x )
∪ δˆ(q, x)
q∈δ ( s , a )
ˆ
Para el grafo del Ejemplo 1, calcular δ ( q0 ,101001)
9. Autómatas Finitos No
Determinísticos (NDFA)
Reconocimiento de Cadenas
Para N={Σ ,S, s0,F, δ}
La cadena ϖ∈ Σ* será válida para N, si y solo sí
i ) δˆ ( s0 , ω ) ∩ F ≠ φ
ii )
δ (s, a) ∩ F ≠ φ , x ∈ ∑ , a ∈ ∑ ∧ ω = xa
δ
*
s∈ ˆ ( s0 , x )
Lenguaje válido para un NDFA
Para N={Σ ,S, s0,F, δ}, un lenguaje L(N) es reconocido por N si y
solo sí:
ˆ
L( N ) = {ω ∈ Σ* / δ ( s0 , ω ) ∩ F ≠ φ}
L( N ) = {ω ∈ Σ* / x ∈ ∑* , a ∈ ∑ ∧ ω = xa,
δ ( s, ω ) ∩ F ≠ φ }
δ
s∈ ˆ ( s0 , x )
10. Autómatas Finitos No
Determinísticos (NDFA)
Reconocimiento de Cadenas
Para N={Σ ,S, s0,F, δ}
La cadena ϖ∈ Σ* será válida para N, si y solo sí
i ) δˆ ( s0 , ω ) ∩ F ≠ φ
ii )
δ (s, a) ∩ F ≠ φ , x ∈ ∑ , a ∈ ∑ ∧ ω = xa
δ
*
s∈ ˆ ( s0 , x )
Lenguaje válido para un NDFA
Para N={Σ ,S, s0,F, δ}, un lenguaje L(N) es reconocido por N si y
solo sí:
ˆ
L( N ) = {ω ∈ Σ* / δ ( s0 , ω ) ∩ F ≠ φ}
L( N ) = {ω ∈ Σ* / x ∈ ∑* , a ∈ ∑ ∧ ω = xa,
δ ( s, ω ) ∩ F ≠ φ }
δ
s∈ ˆ ( s0 , x )