Automata Theory CS411-2015F-05 Deterministic Finite Automata vs. Non-Deterministic Finite Automata David Galles Department of Computer Science University of San Francisco 05-0: YANFAE 1 All strings over {a,b} that begin or end with aa 1 Yet Another NFA Example 05-1: YANFAE 1 All strings over {a,b} that begin or end with aa a,b 0 a 1 a 2 3 a 4 a,b a,b 1 Yet Another NFA Example a 5 05-2: NFA → DFA Can we create a DFA for the same langauge? All strings over {a,b} that begin or end with aa 05-3: NFA → DFA Can we create a DFA for the same langauge? All strings over {a,b} that begin or end with aa a,b 0 a a 1 2 b b a b 3 b a 4 b a 5 05-4: LN F A vs LDF A What is the relationship between LN F A and LDF A ? LDF A ⊆ LN F A Why? 05-5: LN F A vs LDF A What is the relationship between LN F A and LDF A ? LDF A ⊆ LN F A Every DFA is also an NFA 05-6: LN F A vs LDF A What is the relationship between LN F A and LDF A ? LDF A ⊂ LN F A ? LDF A ⊆ LN F A ∧ LN F A ⊆ LN F A (LN F A = LDF A )? Given any NFA M , can we create a DFA M ′ such that L[M ] = L[M ′ ]? 05-7: LN F A vs LDF A What is the relationship between LN F A and LDF A ? LDF A ⊆ LN F A ∧ LN F A ⊆ LN F A (LN F A = LDF A ) Given any NFA M , we can create a DFA M ′ such that L[M ] = L[M ′ ] 05-8: NFA → DFA NFA for all strings over {a,b} containing aba a 0 b 1 a,b a 2 3 a,b Trace abab 05-9: NFA → DFA NFA for all strings over {a,b} containing aba a 0 b 1 a 2 a,b 3 a,b Trace abab q0, abab q0, bab q0, ab q0, b q0, ε q1, bab q2, ab q1, b q2,ε Reject q3, b q3,ε Accept Reject NFA → DFA 05-10: NFA for all strings over {a,b} containing aba a 0 b 1 a 2 3 a,b a,b Trace abab q0 a a q0 q1 b b q0 q2 a a a q0 q1 q3 b b b q0 Reject q2 Reject q3 Accept NFA → DFA 05-11: NFA for all strings over {a,b} containing aba a 0 b 1 a 2 3 a,b a,b Trace abab q0 a a q0 q1 b b q0 q2 a a a q0 q1 q3 b b b q0 Reject q2 Reject q3 Accept NFA → DFA 05-12: NFA for all strings over {a,b} containing aba a b 0 a 1 2 3 a,b a,b Trace abab q0 q0 a q0 q1 b q0 a q1 q0 b q2 q2 q3 q3 NFA → DFA 05-13: NFA for all strings over {a,b} containing aba a 0 a,b b 1 a 2 3 a,b Build Equivalent DFA NFA → DFA 05-14: NFA for all strings over {a,b} containing aba a b 0 a 1 2 3 a,b a,b Build Equivalent DFA a b 0 a 0,1 b 0,2 a b b 0,1,3 0,2,3 0,3 a b a a b 05-15: NFA → DFA What about ǫ-transitions? ε 0 a 1 b 2 3 a 4 ε ε a 5 b 6 NFA → DFA 05-16: What about ǫ-transitions? ε 0 a 1 b 2 ε 3 a a 4 5 b 6 ε a {0,2,3} b {0,3} a {1,4} a b b b {5} a a {} b {0,6,3} a,b 05-17: NFA → DFA Example 6= Proof! Need to show, given any NFA M , we can create a DFA M ′ such that L[M ] = L[M ′ ] Constructive Proof 05-18: Proof: LN F A ⊆ LDF A Given NFA M = (K, Σ, ∆, s, F ) Create DFA M ′ = (K ′ , Σ′ , δ ′ , s′ , F ′ ) Such that L[M ′ ] = L[M ] 05-19: Proof: LN F A ⊆ LDF A NFA M = (K, Σ, ∆, s, F ) DFA M ′ = (K ′ , Σ′ , δ ′ , s′ , F ′ ) K′ = Σ′ = δ′ = s′ = F′ = 05-20: Proof: LN F A ⊆ LDF A NFA M = (K, Σ, ∆, s, F ) DFA M ′ = (K ′ , Σ′ , δ ′ , s′ , F ′ ) K ′ = 2K Σ′ = Σ δ ′ = {((q1 , a), q2 ) : q1 ∈ K ′ , a ∈ Σ, q2 = ǫ-closure ({q : (q3 ∈ q1 ) ∧ ((q3 , a), q) ∈ ∆}) s′ = ǫ-closure(s) F ′ = {Q : Q ∈ 2K ∧ Q ∩ F 6= ∅} 05-21: Example: LN F A ⊆ LDF A a 0 1 a 2 a,b K = {q0 , q1 , q2 } Σ = {a, b} ∆ = ((q0 , a), q0 ), ((q0 , a), q1 ), ((q0 , b), q0 ), ((q1 , a), q2 )} s = q0 F = {q2 } 05-22: Example: LN F A ⊆ LDF A K′ = {{}, {q0 }, {q1 }, {q2 }, {q0 , q1 }, {q0 , q2 }, {q1 , q2 }, {q0 , q1 , q2 }} Σ′ = {a, b} δ ′ = {(({}, a), {}), (({}, b), {}), (({q0 }, a), {q0 , q1 }), (({q0 }, b), {q0 }), (({q1 }, a), {q2 }), (({q1 }, b), {}), (({q2 }, a), {}), (({q2 }, b), {}), (({q0 , q1 }, a), {q0 , q1 , q2 }), (({q0 , q1 }, b), {q0 }), (({q0 , q2 }, a), {q0 , q1 }), (({q0 , q2 }, b), {q0 }), (({q1 , q2 }, a), {q2 }), (({q1 , q2 }, b), {}), (({q0 , q1 , q2 }, a), {q0 , q1 , q2 }), (({q0 , q1 , q2 }, b), {q0 }) s′ = {q0 } F ′ = {{q2 }, {q0 , q2 }, {q1 , q2 }, {q0 , q1 , q2 }} 05-23: Example: LN F A ⊆ LDF A a,b {} b b {0} a b b {1} {0,1} a {0,1,2} a {2} a b a a,b {0,2} {1,2} b
© Copyright 2024 Paperzz