Ejemplo de AFN Ej. Diseña un AFN que acepte todas las cadenas que contengan dos ceros consecutivos o dos unos consecutivos. Solución AFN q 4 0 1 q 2 0 1 q 1 q 0 q 3 q 0 q 0 q 0 q 0 q 0 q 0 q 3 q 1 q 3 q 3 q 1 0 0 1 0 0 1 0 0 q 4 q 4 0 1 1 1 Ejemplo:
Ejemplo de AFN
Ej. Diseña un AFN que acepte todas las cadenas que contengan dos ceros consecutivos o dos unos consecutivos.
Solución AFN
q4
0
1
q2
0
1q1q0
q3
q0 q0 q0 q0 q0 q0
q3 q1 q3 q3 q1
00
10010
0
q4 q4
0
1 1
1
Ejemplo:
Equivalencia de los AFD’s y los AFN’s
• AFD AFN⊆Dado que todo AFD es un AFN, es claro que la clase de lenguajes aceptado por los AFN´s incluye los aceptados por los AFD.
• AFN AFN⊆Teorema. Sea L un lenguaje aceptado por un AFN. Entonces existe un AFD que acepta L.
• Demostración
Sea M= (K, Σ, δ, q0, F) un AFN que acepta el lenguaje L.
Definamos un DFA. M´= (K’, Σ’, δ’, q0’, F’) de tal manera que:
1) Los estados de M´son todos subconjuntos del conjunto de estados de M. Esto es:
K´ = 2k = P(K)
Los nombres de dichos conjuntos se generarán de la siguiente manera:
[q1,…, qi] es un solo estado del AFD correspondiendo a un conjunto de estados en 1 AFN.
Equivalencia de los AFD’s y los AFN’s
2) F´es el conjunto de todos los estados en K´ que contenga estado que pertenezca a F.
3) q’0 = [q0]
4)Definimos δ’ como:
δ’([q1, q2,…., qi] , a) = [P1, P2,…, Pi]
Si y sólo si
δ({q1, q2,…., qi} , a) = {P1, P2,…, Pi}
Equivalencia de los AFD’s y los AFN’s
Demostremos ahora por inducción sobre la longuitud de la cadena de entrada, que:
δ’(q´0 , x) = [q1, q2,…., qi] Si y solo si
δ(q0 , x) = {q1, q2,…., qi}
Demostración:1) Para |x| = 0 , x = ε
δ’(q´0 , ε) = [q0]
δ(q0 , ε) = {q0}2) H.I. , |x| = m
δ’(q´0 , x) = [r1, r2,…., rn]
δ(q0 , x) = {r1, r2,…., rn}3) Demostrar para |w| = |xa| = m+1
δ’(q´0 , xa) = δ’( δ’(q´0 , x) a)
Equivalencia de los AFD’s y los AFN’s
Por definición de δ’ tenemos:δ’ ([r1, r2,…., ri] , a) = [P1, P2,…, Pi] δ ({r1, r2,…., ri} , a) = {P1, P2,…, Pi}
Así tenemos que:δ’( δ’(q´0 , x) a) = δ ({r1, r2,…., ri} , a) = {P1, P2,…, Pi} LQQD
∴ AFN = AFD
Problema. Sea M = ({q0, q1}, {0,1}, q0, {q,})un AFN , donde:
q0 {q0,q1} {q,}
q1 {q0, q1}
Construya un AFD que acepte L(M) q0
q1
1
1
10
0
Autómata Finito No-Deterministico con Movimiento - ε
Ejemplo:
Definición: Un autómata finito no- determinístico con movimientos – consiste en un quíntuplo (K, q0, F) en donde K , q0 y F se definen de la misma manera que el autómata finito no – determinístico, y con:
δ : K x ( Σ ∪ {ε}) → 2K
La intención es que q, a) consista de todos los estados Pj, tales que existe una transición etiquetada a, desde q hasta Pj. En donde a es el símbolo o cualquier símbolo en
q2v
2
q1q0Start
0
1
ε ε
Autómata Finito No-Deterministico con Movimiento - ε
Función de transición del ejemplo anterior:
0 1 2 e
q0 {q0} f f {q1}
q1 f {q1} f {q2}
q2 f f {q2} f
Def. denominamos CERRADURA – e(q) a todos aquellos vértices (estados) rj, tales que existe una ruta de p a q, consistente en transiciones e.
ej. CERRADURA
ej. CERRADURA – e(q0) = {q0, q1, q2}
Autómata Finito No-Deterministico con Movimiento - ε
Def. llamamos CERRADURA - ε q) al conjunto de todos los nodos p tales que existe una ruta de q a p etiquetada ε
Es fácil extender esta definición a la CERRADURA - ε(p) en donde P es un conjunto de estados:
Sea Uqεp CERRADURA – ε (q), definimos δ’ como: 1) δ’ (q, ε ) = CERRADURA - ε (q) 2) Para ε Σ*y a ε δ’q, a) = CERRADURA – ε (P)en donde P = {p | para algún r ε δ’(qy p ε (r,a)}
Autómata Finito No-Deterministico con Movimiento - ε
Es conveniente extender y ’ a conjuntos de estados de la manera siguiente:
• δ (R, a ) = UqεR δ (q, a )
• δ’ (R, w ) = UqεR δ’ (q, w )
Para conjuntos en estados R.
Definamos L(M) el lenguaje aceptado por un M= (Q, q0, F) (un AFN con MOVs - ), ser:
L(M) = δ’(q0 , ) ∩ F ≠
Equivalencias de entre un AFN y un AFN con movimientos - ε
Teorema. Si L es aceptado por un AFN con MOVs – εDemo. Sea M = (Q, S, d, q0, F) un AFN con MOVs - ε .Construya un M´= (Q, S,
d, q0, F´) donde:
F´= F ∪ {q0} si la CERRADURA - ε (q0) contiene algún estado de F.
F caso extraño
y δ’ (q0, x) = Ŝ (q, a) para q ε Q y a ε Σ
Resta demostrar por inducción sobre |x| que δ’(q0, x) = Ŝ (q0, x)Base : |x| = 1 x= a , a ε Σ. δ’(q0, a) = Ŝ (q0, a) por def. de δ´
Equivalencias de entre un AFN y un AFN con movimientos-ε
Inducción: |x| > 1 , Sea x = wa , a ε Σ entonces:
δ’(q0, wa) = δ’(δ’(q0, w) a)
Por Hipótesis de Inducción
δ’(q0, w) = Ŝ(q0, w)
Sea Ŝ (q0, ) = , por demostrar ´( , a) = Ŝ (q0, a).
´ a) = UqεR ´(q, a) = UqεR Ŝ (q, a)
Entonces por la regla 2 de la definición de Ŝ
δ’(q0, wa) = Ŝ (q0, wa)
Ejemplos
1.
q0 q1
q2 q3