180 likes | 284 Views
Lecture 7 From NFA to DFA. DFA. For every string x , there is a unique path from initial state and associated with x . x is accepted if and only if this path ends at a final state. x. NFA.
E N D
DFA • For every string x, there is a unique path from initial state and associated with x. x is accepted if and only if this path ends at a final state. x
NFA • For any string x, there may exist none or more than one path from initial state and associated with x.
NFA DFA • Consider an NFA M=(Q, Σ, δ, s, F). • For x in Σ*, define [x] = {q in Q | there exists a path s q} • Define DFA M’=(Q’, Σ, δ’, s’, F’}: Q’ = { [x] | x in Σ* }, δ ([x], a) = [xa] for x in Σ* and a in Σ, s’ = [ε], F’ = { [x] | x in L(M) } x
Construction of M’ Special Case: M has no ε-move. • [ε] = {s} • Suppose [x] is known. How to get [xa] for a in Σ?
From [x] to [xa] a • [xa] = { p | there exists a path q p for some q in [x] } = { p | there exists q in [x], q p } = U path a edge δ(q,a) q in [x]
Construction of M’ • F’ = {[x] | x in L(M)} = {[x] | [x] ∩ F ≠ Ǿ }
Example 1 • Construct DFA to accept 00(0+1)* 0 0, 1 0 0 0 0 q s p s q p 1 1 Ǿ 1 0,1
Example 2 • Design DFA to accept (0+1)*11 0 0 1 1 0 s 1 1 s 1 q s p s p p q 0 1
Example 3 • Design DFA to accept 00(0+1)*11 0 0 0 1 1 t s p q r 0,1 Ǿ 1 1 1 0 1 q 1 q 1 0 0 s r q p t r 0 0
Example 4 • Construct DFA M for L(M)=ε. Is this a DFA? s 0,1 0 s Ǿ 1
Example 5 • Construct DFA M for L(M)=Ǿ. Is it a DFA? s 0 s 0,1 Ǿ 0,1 1
Construction of M’ • For q in Q, define ε-closure(q) = {p | there exists a path q p} • [ε] = {q | there is a path s q} = ε-closure(s) • Suppose [x] is known. How to get [xa] for a in Σ? ε path ε path
From [x] to [xa] a • [xa] = { p | there exists a path q p for some q in [x] } = { p | there exists q in [x], q r p } = { p | for some q in [x] and r in δ(q,a), p in ε-closure(r) } = U U ε-closure(r) path a ε edge path r in δ(q,a) q in [x]
Construction of M’ • F’ = {[x] | x in L(M)} = {[x] | [x] ∩ F ≠ Ǿ }
Example 6 • Construct DFA M for L(M)=(0+1)*. 0,1 ε ε s p q 0,1 0,1 s 0 p p q q 1
Example 7 • Convert the following NFA to DFA. 0 q 0 0 s ε q r 0 1 ε s 0 r s ε p p r p 1 1 1 0 0 q, r, p 1
0 0,1 0 0 0 0 1 1 1 1 e s a b c d 1 0 0 0 0 0 s,a s,a,b s,a,b,c s,a,b,c,d s,a,b,c,d,e s 1 5 s,b 2 =32 How many states? 1 s,c 4 How many final states? 2 = 16 1 s,d 1 No, it is minimum! Can we simplify it? s,e