Nondeterministic Finite Automata: Nondeterminism Subset Construction
Nondeterministic Finite Automata: Nondeterminism Subset Construction
Automata
Nondeterminism
Subset Construction
1
Nondeterminism
• A nondeterministic finite automaton
has the ability to be in several states at
once.
• Transitions from a state on an input
symbol can be to any set of states.
2
Nondeterminism – (2)
• Start in one start state.
• Accept if any sequence of choices leads
to a final state.
• Intuitively: the NFA always “guesses
right.”
3
Example: Moves on a
Chessboard
• States = squares.
• Inputs = r (move to an adjacent red
square) and b (move to an adjacent
black square).
• Start state, final state are in opposite
corners.
4
Example: Chessboard – (2)
r b
1 2 3
1 2,4 5
2 4,6 1,3,5
4 5 6 3 2,6 5
4 2,8 1,5,7
7 8 9 5 2,4,6,8 1,3,7,9
6 2,8 3,5,9
r b b 7 4,8 5
1 2 1 5 8 4,6 5,7,9
4 3 1 * 9 6,8 5
5 3
7 7
9 Accept, since final state reached
5
Formal NFA
• A finite set of states, typically Q.
• An input alphabet, typically Σ.
• A transition function, typically δ.
• A start state in Q, typically q0.
• A set of final states F ⊆ Q.
6
Transition Function of an NFA
• δ(q, a) is a set of states.
• Extend to strings as follows:
• Basis: δ(q, ε) = {q}
• Induction: δ(q, wa) = the union over all
states p in δ(q, w) of δ(p, a)
7
Language of an NFA
• A string w is accepted by an NFA if
δ(q0, w) contains at least one final
state.
• That is, there exists a sequence of
valid transitions from q0 to a final state
given the input w.
• The language of the NFA is the set of
strings it accepts.
8
Example NFA
• Set of all strings with two consecutive
a’s or two consecutive b’s:
10
Equivalence of DFA’s, NFA’s
• A DFA can be turned into an NFA that
accepts the same language.
• If δD(q, a) = p, let the NFA have
δN(q, a) = {p}.
• Then the NFA is always in a set
containing exactly one state – the state
the DFA is in after reading the same
input.
11
Equivalence – (2)
• Surprisingly, for any NFA there is a DFA
that accepts the same language.
• Proof is the subset construction.
• The number of states of the DFA can be
exponential in the number of states of
the NFA.
• Thus, NFA’s accept exactly the regular
languages.
12
Subset Construction
• Given an NFA with states Q, inputs Σ,
transition function δN, state state q0, and
final states F, construct equivalent DFA
with:
• States 2Q (Set of subsets of Q).
• Inputs Σ.
• Start state {q0}.
• Final states = all those with a member of F.
13
Critical Point
• The DFA states have names that are
sets of NFA states.
• But as a DFA state, an expression like
{p,q} must be read as a single symbol,
not as a set.
• Analogy: a class of objects whose
values are sets of objects of another
class.
14
Subset Construction – (2)
• The transition function δD is defined by:
δD({q1,…,qk}, a) is the union over all i =
1,…,k of δN(qi, a).
• Example: We’ll construct the DFA
equivalent of our “chessboard” NFA.
15
Example: Subset Construction
r b r b
1 2,4 5 {1} {2,4} {5}
2 4,6 1,3,5 {2,4}
3 2,6 5 {5}
4 2,8 1,5,7
5 2,4,6,8 1,3,7,9
6 2,8 3,5,9
7 4,8 5
8 4,6 5,7,9
* 9 6,8 5 Alert: What we’re doing here is
the lazy form of DFA construction,
where we only construct a state
if we are forced to. 16
Example: Subset Construction
r b r b
1 2,4 5 {1} {2,4} {5}
2 4,6 1,3,5 {2,4} {2,4,6,8} {1,3,5,7}
3 2,6 5 {5}
4 2,8 1,5,7 {2,4,6,8}
5 2,4,6,8 1,3,7,9 {1,3,5,7}
6 2,8 3,5,9
7 4,8 5
8 4,6 5,7,9
* 9 6,8 5
17
Example: Subset Construction
r b r b
1 2,4 5 {1} {2,4} {5}
2 4,6 1,3,5 {2,4} {2,4,6,8} {1,3,5,7}
3 2,6 5 {5} {2,4,6,8} {1,3,7,9}
4 2,8 1,5,7 {2,4,6,8}
5 2,4,6,8 1,3,7,9 {1,3,5,7}
6 2,8 3,5,9 * {1,3,7,9}
7 4,8 5
8 4,6 5,7,9
* 9 6,8 5
18
Example: Subset Construction
r b r b
1 2,4 5 {1} {2,4} {5}
2 4,6 1,3,5 {2,4} {2,4,6,8} {1,3,5,7}
3 2,6 5 {5} {2,4,6,8} {1,3,7,9}
4 2,8 1,5,7 {2,4,6,8} {2,4,6,8} {1,3,5,7,9}
5 2,4,6,8 1,3,7,9 {1,3,5,7}
6 2,8 3,5,9 * {1,3,7,9}
7 4,8 5
* {1,3,5,7,9}
8 4,6 5,7,9
* 9 6,8 5
19
Example: Subset Construction
r b r b
1 2,4 5 {1} {2,4} {5}
2 4,6 1,3,5 {2,4} {2,4,6,8} {1,3,5,7}
3 2,6 5 {5} {2,4,6,8} {1,3,7,9}
4 2,8 1,5,7 {2,4,6,8} {2,4,6,8} {1,3,5,7,9}
5 2,4,6,8 1,3,7,9 {1,3,5,7} {2,4,6,8} {1,3,5,7,9}
6 2,8 3,5,9 * {1,3,7,9}
7 4,8 5
* {1,3,5,7,9}
8 4,6 5,7,9
* 9 6,8 5
20
Example: Subset Construction
r b r b
1 2,4 5 {1} {2,4} {5}
2 4,6 1,3,5 {2,4} {2,4,6,8} {1,3,5,7}
3 2,6 5 {5} {2,4,6,8} {1,3,7,9}
4 2,8 1,5,7 {2,4,6,8} {2,4,6,8} {1,3,5,7,9}
5 2,4,6,8 1,3,7,9 {1,3,5,7} {2,4,6,8} {1,3,5,7,9}
6 2,8 3,5,9 * {1,3,7,9} {2,4,6,8} {5}
7 4,8 5
* {1,3,5,7,9}
8 4,6 5,7,9
* 9 6,8 5
21
Example: Subset Construction
r b r b
1 2,4 5 {1} {2,4} {5}
2 4,6 1,3,5 {2,4} {2,4,6,8} {1,3,5,7}
3 2,6 5 {5} {2,4,6,8} {1,3,7,9}
4 2,8 1,5,7 {2,4,6,8} {2,4,6,8} {1,3,5,7,9}
5 2,4,6,8 1,3,7,9 {1,3,5,7} {2,4,6,8} {1,3,5,7,9}
6 2,8 3,5,9 * {1,3,7,9} {2,4,6,8} {5}
7 4,8 5
* {1,3,5,7,9} {2,4,6,8} {1,3,5,7,9}
8 4,6 5,7,9
* 9 6,8 5
22
Proof of Equivalence: Subset
Construction
• The proof is almost a pun.
• Show by induction on |w| that
δN(q0, w) = δD({q0}, w)
• Basis: w = ε: δN(q0, ε) = δD({q0}, ε) =
{q0}.
23
Induction
• Assume IH for strings shorter than w.
• Let w = xa; IH holds for x.
• Let δN(q0, x) = δD({q0}, x) = S.
• Let T = the union over all states p in S of
δN(p, a).
• Then δN(q0, w) = δD({q0}, w) = T.
• For NFA: the extension of δN.
• For DFA: definition of δD plus extension of δD.
• That is, δD(S, a) = T; then extend δD to w = xa.
24
NFA’s With ε-Transitions
• We can allow state-to-state transitions
on ε input.
• These transitions are done
spontaneously, without looking at the
input string.
• A convenience at times, but still only
regular languages are accepted.
25
Example: ε-NFA
ε 0 1 ε
A {E} {B} ∅
1 1 B ∅ {C} {D}
1 B C D
C ∅ {D} ∅
A ε ε 0 * D ∅ ∅ ∅
E {F} ∅ {B, C}
0 E F
0 F {D} ∅ ∅
26
Closure of States
• CL(q) = set of states you can reach
from state q following only arcs labeled
ε. ε
1 C 1
• Example: CL(A) = {A}; 1 B D
Extended Delta A ε ε 0
0 E F
˄ 0
• δ(A, ε) = CL(A) = {A}.
˄
• δ(A, 0) = CL({E}) = {B, C, D, E}.
˄
• δ(A, 01) = CL({C, D}) = {C, D}.
• Language of an ε-NFA ˄
is the set of
strings w such that δ(q0, w) contains a
final state.
29
Equivalence of NFA, ε-NFA
• Every NFA is an ε-NFA.
• It just has no transitions on ε.
• Converse requires us to take an ε-NFA
and construct an NFA that accepts the
same language.
• We do so by combining ε–transitions
with the next transition on a real input.
Warning: This treatment is a
bit different from that in the text. 30
Picture of ε-Transition Removal
a
Transitions
on ε
Transitions
on ε
31
Picture of ε-Transition Removal
To here, and performs
Text goes
the subset construction
from here
a
a
Transitions
on ε
Transitions
on ε
32
Picture of ε-Transition Removal
To here, with no
subset construction
a
We’ll go
from here a
a
Transitions
on ε
Transitions
on ε
33
Equivalence – (2)
• Start with an ε-NFA with states Q,
inputs Σ, start state q0, final states F,
and transition function δE.
• Construct an “ordinary” NFA with states
Q, inputs Σ, start state q0, final states
F’, and transition function δN.
34
Equivalence – (3)
• Compute δN(q, a) as follows:
1. Let S = CL(q).
2. δN(q, a) is the union over all p in S of
δE(p, a).
• F’ = the set of states q such that
CL(q) contains a state of F.
• Intuition: δN incorporates ε–transitions
before using a but not after.
35
Equivalence – (4)
• Prove by induction on |w| that
˄
CL(δN(q0, w)) = δ E(q0, w).
• Thus, the ε-NFA accepts w if and only if
the “ordinary” NFA does.
36
Interesting
closures: CL(B)
Example: ε-NFA-
= {B,D}; CL(E)
= {B,C,D,E}
to-NFA
0 1 ε 0 1
A {E} {B} ∅ A {E} {B}
B ∅ {C} {D} * B ∅ {C}
C ∅ {D} ∅ C ∅ {D}
* D ∅ ∅ ∅ * D ∅ ∅
E {F} ∅ {B, C} * E {F} {C, D}
F {D} ∅ ∅ F {D} ∅
Since closure of
ε-NFA E includes B and
Since closures of C; which have
B and E include transitions on 1
final state D. to C and D. 37
Summary
• DFA’s, NFA’s, and ε–NFA’s all accept
exactly the same set of languages: the
regular languages.
• The NFA types are easier to design and
may have exponentially fewer states
than a DFA.
• But only a DFA can be implemented in
linear time!
38