Transcript NFA vs. DFA
NFA vs. DFA
CSC 361
NFA vs. DFA
1
NFAs vs. DFAs
NFAs can be constructed from DFAs
using transitions:
Called NFA-
Suppose M1 accepts L1, M2 accepts L2
CSC 361
Then an NFA can be constructed that accepts:
L1 U L2
(union)
L1L2
(concatenation)
L1*
(Kleene star)
NFA vs. DFA
2
Closure Properties of NFA-s
M1
M2
L(M)*
L(M1) U L(M2)
M
M1
M2
L(M1) L(M2)
CSC 361
NFA vs. DFA
3
NFA to DFA Conversion
CSC 361
NFA vs. DFA
4
DFA vs NFA
Deterministic vs nondeterministic
For every nondeterministic automata, there
is an equivalent deterministic automata
Finite acceptors are equivalent iff they both
accept the same language
L(M1) = L(M2)
CSC 361
NFA vs. DFA
5
DFA vs NFA
Deterministic vs nondeterministic
In DFA, label resultant state as a set of
states
For a set of |Q| states, there are exactly 2Q
subsets
CSC 361
{q1, q2, q3,…}
Finite number of states
NFA vs. DFA
6
Removing Nondeterminism
By simulating all moves of an NFA-λ in
parallel using a DFA.
λ-closure of a state is the set of states
reachable using only the λ-transitions.
CSC 361
NFA vs. DFA
7
NFA-λ
p2
λ
a
p1
λ
q1
p3
λ
λ
q2
p5
a
p4
t (q1, a) { p1, p2, p3, p4, p5}
CSC 361
NFA vs. DFA
8
λ – Closure
Selected λ closures
q1: {q1,q2}
p1: {p1,p2,p3}
q2: {q2}
CSC 361
NFA vs. DFA
9
Equivalence Construction
Given an NFA-λ M1, construct a DFA M2
such that L(M) = L(DM).
Observe that
CSC 361
A node of the DFA = Set of nodes of NFA-λ
Transition of the DFA =
Transition among set of nodes of NFA- λ
NFA vs. DFA
10
Special States to Identify
Start state of DFA =
- closure({q0})
Final/Accepting state of DFA =
All subsets of states of NFA-λ
that contain an accepting state
of the NFA-λ
Dead state of DFA =
CSC 361
NFA vs. DFA
11
Example
a
a
b
q1
q0
λ
a
q2
c
CSC 361
NFA vs. DFA
12
Example
Identify λ-closures
CSC 361
q0: {q0}
q1: {q1}
q2: {q1,q2}
NFA vs. DFA
13
Example
Identify transitions
Start with λ-closure of start state
{q0}: Where can you go on each input?
a: {q0,q1,q2}
So, {q0,q1,q2} is a state in the DFA
b, c: Nowhere, so {Φ} is in the DFA
Next slide…
Next, do the same for {q0,q1,q2} and {Φ}
Find destinations from any node in the set for each of the three
alphabet symbols
CSC 361
Subsequent slide…
NFA vs. DFA
14
All steps from {q0}
{q0}
a
{q0}
b
c
CSC 361
{q0,q1,q2}
NFA vs. DFA
15
All steps from {q0,q1,q2}
a
a
{q0}
{q0,q1,q2}
{q1}
c
b
c
b
{q1,q2}
a,b,c
CSC 361
NFA vs. DFA
16
All steps from {q1} and {q1,q2}
b
{q1}
a,c
c
b
{q1,q2}
CSC 361
a
{q1}
NFA vs. DFA
17
Equivalent DFA
a
a
{q0}
{q0,q1,q2}
b
b,c
a,c
b
{q1}
c
c
{q1,q2}
b
a
a,b,c
CSC 361
NFA vs. DFA
18
NFA vs. DFA
Theorem: Given any NFA N, then there exists a
DFA D such that N is equivalent to D
• Proven by constructing a general NFA and
showing that the closure exists among the possible
DFA states P(Q)
• Every possible transition goes to an element of P(Q)
CSC 361
NFA vs. DFA
19
Limitations of Finite Automata
Obvious: Can only accept languages
that can be represented in finite
memory!
Can this language be represented with
a FA?
L(M)=(aibi | i n)
How about this one?
CSC 361
L(M)=(aibi | i > 0)
NFA vs. DFA
20
Exercise: Convert this NFA
p2
λ
a
p1
λ
q1
p3
λ
λ
q2
p5
a
p4
CSC 361
NFA vs. DFA
21