slides

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