You are on page 1of 58

Nondeterministic Finite

Automata (NFA)

Ashim Dey
Lecturer, CSE, CUET

1
Slide courtesy: Prof. Dr. M. Moshiul Hoque, CSE, CUET
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
DFA vs. NFA
DFA:  returns a single  NFA:  returns a set of states
state  Violets that rule
 In an NFA a state may have
Every state of a DFA zero, one or many exiting
always has exactly one arrows for each alphabet
exiting transition arrow symbol
for each symbol in the  NFA has an arrow with label 
alphabet  NFA may have arrows labeled
with members of alphabet/.
Labels on the  Zero, one, or many arrows
transition arrows are may exit from each state with
symbols from the label 
alphabet 3
DFA vs. NFA
Parallel computation
tree

reject

Accept/reject accept 4
Nondeterminism – (2)
Start in one start state.
Accept if any sequence of choices leads
to a final state.
Intuitively: the NFA always “guesses
right.”

5
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.

6
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
7
Formal NFA
A NFA is a 5-tuple, A = (Q, S, , q0, F)

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.
8
Transition Function of an NFA
The transition function is a function
that takes a state in Q & an input
symbol in S as arguments & returns a
subset of Q.
δ(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) 9
Example
An NFA accepting all strings that end in 01

0,1
Start 0 1
q0 q1 q2

Input: 00101

q0 q0 q0 q0 q0 q0

q1 q1 q1
(Stuck)
q2 (Stuck) q2 Accepted

0 0 1 0 1 10
Example
Let A be the language consisting of all
strings over {0,1} containing a 1 in the
third position from the end (000100 is
in A but 0011 is not).
0,1
Start 1 0, 1 0, 1
q0 q1 q2 q3

11
Example
NFA that has an input alphabet {0} consisting
of a single symbol. It accepts all strings of the
form 0k where k is a multiple of 2 or 3 (accept:
, 00, 0000, 000000 but not 0, 00000)

12
Example

Accept: , a, baba, baa q1


Reject: b, bb, babba

q2 q3
a, b

13
Transition Table
NFA A= ({q0,q1,q2},{0,1},  ,q0,{q2})

0,1
Start 0 1
q0 q1 q2

0 1
q0 {q0,q1} {q0}
q1 Ø {q2}
*q2 Ø Ø
14
Transition Table
Accept all strings that contains either
101 or 11 as a substring (010110)
0,1 0,1
Start 1 0,  1
q1 q2 q3 q4

1. Q = {q1, q2, q3, q4} 


0 1
2. S = {0, 1} q1 {q1} {q1, q2} 
3.  q2 {q3}  {q3}
q3  {q4} 
*q4 {q4} {q4} 
4. Start state: q1
5. F = {q4} 15
Language of an NFA
A string w is accepted by an NFA if
δ(q0, w) contains at least one final
state.
The language of the NFA is the set of
strings it accepts.

16
Example: Language 1 2 3
4 5 6
of an NFA 7 8 9

For our chessboard NFA we saw that


rbb is accepted.
If the input consists of only b’s, the set
of accessible states alternates between
{5} and {1,3,7,9}, so only even-length,
nonempty strings of b’s are accepted.
What about strings with at least one r?

17
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.
Worst case: DFA-2n states
NFA- n states.
18
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.
19
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.
20
Subset Construction
Given, NFA: N = (QN, Σ, N, q0, FN)
Goal: DFA, D = (QD, Σ, D, {q0}, FD)
L(D) = L(N)
States
QD is the set of subsets of QN
- QD is the power set of QN
- If QN has n states, QD will have 2n states
Inaccessible states can be thrown away, so
effectively, the number of states D << 2n
21
Subset construction
Final States
FD is the set of subsets S of QN such
that S  FN   . That is FD is all sets
of N’s states that include at least one
accepting state of N.
Transition Function
The transition function δD is defined by:
δD({q1,…,qk}, a) is the union over all i =
1,…,k of δN(qi, a).
22
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.
23
Subset Construction: Example 1
Example: We’ll construct the DFA
equivalent of our “chessboard” NFA.

1 2 3

4 5 6

7 8 9

24
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. 25
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

26
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

27
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

28
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

29
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

30
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

31
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}.

32
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.
33
Example 2
0,1
Start 0 1
q0 q1 q2

δD({q0, q2}, 0) = δN({q0, 0) U δN({q2, 0) = {q0, q1} U  = {q0, q1}


δD({q0, q2}, 1) = δN({q0, 1) U δN({q2, 1) = {q0} U  = {q0}

0 1
Ø Ø Ø
{q0} {q0,q1} {q0}
{q1} Ø {q2}
*{q2} Ø Ø
{q0,q1} {q0,q1} {q0,q2}
*{q0,q2} {q0,q1} {q0}
*{q1,q2} Ø {q2}
*{q0,q1,q2} {q0,q1} {q0,q2} 34
Example 2
0 1
NFA N Accepts all A A A
strings that end in 01 B E B
N’s set of states: {q1, C A D
q2, q3} =03 *D A A
Subset construction: E E F
DFA need 23 = 8 *F E B
states *G A D
Assign new names: A *H E F
for  , B for {q0} 35
Example 2
1 0
Start 0 1
B E F
0
0 1 1
A A A
B E B
•From 08 states, starting in
C A D
start state B, can only
*D A A
reach states B, E and F
E E F
other 05 states are
*F E B
inaccessible from B
*G A D
*H E F 36
Example 3
N = (Q, {a, b}, , 1, {1})
1
Q = {1, 2, 3} = 03 states
DFA states = 08
{, {1}, {2}, {3}, {1, 2},
{1, 3}, {2, 3}, {1, 2, 3}} 2 3
a, b

37
a b 
   
{1}  {2} {3}
{2} {2, 3} {3} 
{3} {1, 3}  
{1, 2} {2, 3} {2, 3} 
{1, 3} {1, 3} {2} 
{2, 3} {1, 2, 3} {3} 
{1, 2, 3} {1, 2, 3} {2, 3} 

a, b
a b {2}
 {1} {1, 2}

a
b b a

a
{2, 3} {1, 2, 3}
{3} {1, 3} a
a b
38
Example 3
Simplified: no arrows point at states {1} & {1, 2}
May be removed without affecting the performance

a, b
a
a b
{1, 3}
{3}

b b b a

a
{2} {2, 3} {1, 2, 3}
a
b

39
Dead States & DFA’s Missing
Some Transitions
 A DFA to have a transition from any state, on any input
symbol, to exactly one state.
 Sometimes, it is more convenient to design the DFA to
“die” in situations where we know it is impossible for any
extension of the input sequence to be accepted.
 If we use subset construction to convert a NFA to a DFA,
the automation looks almost the same, but it includes a
dead state.
 That is, a non-accepting state that goes to itself on every
possible input symbol.
 Dead state:  (empty set of states)
40
Dead States & DFA’s Missing
Some Transitions
 In general, we can add a dead state to any automaton that
has no more than one transition for any state & input
symbol.
 Then add a transition to the dead state from each other
state q, on all input symbols for which q has no other
transition.
 The result will be a DFA in the strict sense
 Thus, we shall sometimes refer to an automaton as a DFA if
it has at most one transition out of any state on any
symbol, rather than if it has exactly one transition

41
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.
Useful in proving equivalence: finite
automata = regular expressions
42
Example: Uses of -transitions
-NFA that accepts decimal numbers
consisting of:
-an optional +/- sign
-A string of digits
-Another string of digits. Either this string
of digits or the string (2) can be empty,
but at least one of the two strings of
digits must be nonempty.
43
An -NFA Accepting decimal numbers
0, 1,….,9 0, 1,….,9

Start q0
, +, - q1
. q2 q3

q5
0, 1,….,9

.
-NFA q4

E= ({q0, q1, q2, q4, q5}, {., +, -, 0, 1,…., 9}, , q0, {q5})
 +, - . 0, 1,…., 9
q0 {q1} {q1}  
q1   {q2} {q1, q4}
q2    {q3}
q3 {q5}   {q3}
q4   {q3} 
44
*q5    
Example: Uses of -transitions

-transitions help to recognize keywords: web, ebay

1 2
e
3
b
4
S
9

Start
0 5 6 7 8
b a y

45
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 F {D} ∅ ∅
0

46
Closure of States
CL(q) = set of states you can reach from
state q following only arcs labeled ε.
Example: CL(A) = {A}; ε
CL(E) = {B, C, D, E}. 1 B 1 C 1 D
A ε ε 0
0 E F
0

Closure of a set of states = union of the


closure of each state. 47
Extended Delta
˄
 Basis: δ (q, ε) = CL(q).
˄
 Induction: δ(q, xa) is computed as
follows:
˄
1. Start with δ(q, x) = S.
2. Take the union of CL(δ(p, a)) for all p in S.
˄
 Intuition: δ (q, w) is the set of states
you can reach from q following a path
labeled w.
And notice that δ(q, a) is not 48
that set of states, for symbol a.
ε
Example: 1 B 1 C 1 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.

49
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. 50
Picture of ε-Transition Removal

a
Transitions
on ε
Transitions
on ε
51
Picture of ε-Transition Removal
To here, and performs
Text goes
the subset construction
from here
a

a
Transitions
on ε
Transitions
on ε
52
Picture of ε-Transition Removal
To here, with no
subset construction

a
We’ll go
from here a

a
Transitions
on ε
Transitions
on ε
53
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.

54
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.
55
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.

56
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} ε
B ∅ {C} {D} 1 1 1
C ∅ {D} ∅ C ∅ {D} B C D
* D ∅ ∅ ∅ * D ∅ ∅ A ε ε 0
0 E F
E {F} ∅ {B, C} * E {F} {C, D} 0
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. 57
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!

58

You might also like