You are on page 1of 81

Non-Deterministic

Finite Automata
Nondeterministic Finite Accepter (NFA)

Alphabet set = {a}

q1 a q2
a
q0
a
q3

Courtesy Costas Busch - RPI 3


Nondeterministic Finite Accepter (NFA)

Alphabet set = {a}

q1 a q2 No transition
a
q0
a
q3 No transition

Courtesy Costas Busch - RPI 4


Nondeterministic Finite Accepter (NFA)

Alphabet set = {a}

Two choices q1 a q2
a
q0
a
q3

Courtesy Costas Busch - RPI 5


First Choice

a a

q1 a q2
a
q0
a
q3

Courtesy Costas Busch - RPI 6


First Choice

a a

q1 a q2
a
q0
a
q3

Courtesy Costas Busch - RPI 7


First Choice

a a

q1 a q2
a
q0
a
q3

Courtesy Costas Busch - RPI 8


First Choice

a a
All input is consumed

q1 a q2 “accept”
a
q0
a
q3

Courtesy Costas Busch - RPI 9


Second Choice

a a

q1 a q2
a
q0
a
q3

Courtesy Costas Busch - RPI 10


Second Choice

a a

q1 a q2
a
q0
a
q3

Courtesy Costas Busch - RPI 11


Second Choice

a a

q1 a q2
a
q0
a
No transition:
q3
the automaton hangs

Courtesy Costas Busch - RPI 12


Second Choice

a a
Input cannot be consumed

q1 a q2
a
q0
a
q3 “reject”

Courtesy Costas Busch - RPI 13


An NFA accepts a string:
when there is a computation of the NFA
that accepts the string

AND
all the input is consumed and the automaton
is in a final state

Courtesy Costas Busch - RPI 14


Example

aa is accepted by the NFA:

“accept”
q1 a q2 q1 a q2
a a
q0 q0
a a
q3 q3 “reject”
because this
computation
accepts aa
Courtesy Costas Busch - RPI 15
Rejection example

q1 a q2
a
q0
a
q3

Courtesy Costas Busch - RPI 16


First Choice

q1 a q2
a
q0
a
q3

Courtesy Costas Busch - RPI 17


First Choice

a
“reject”
q1 a q2
a
q0
a
q3

Courtesy Costas Busch - RPI 18


Second Choice

q1 a q2
a
q0
a
q3

Courtesy Costas Busch - RPI 19


Second Choice

q1 a q2
a
q0
a
q3

Courtesy Costas Busch - RPI 20


Second Choice

q1 a q2
a
q0
a
q3 “reject”

Courtesy Costas Busch - RPI 21


An NFA rejects a string:
when there is no computation of the NFA
that accepts the string:

• All the input is consumed and the


automaton is in a non final state

OR

• The input cannot be consumed


Courtesy Costas Busch - RPI 22
Example

a is rejected by the NFA:

“reject”
q1 a q2 a
q1 q2
a a
q0 q0
a a
q3
“reject” q3

All possible computations lead to rejection


Courtesy Costas Busch - RPI 23
Rejection example

a a a

q1 a q2
a
q0
a
q3

Courtesy Costas Busch - RPI 24


First Choice

a a a

q1 a q2
a
q0
a
q3

Courtesy Costas Busch - RPI 25


First Choice

a a a

q1 a q2
a
q0 No transition:
a
the automaton hangs
q3

Courtesy Costas Busch - RPI 26


First Choice

a a a
Input cannot be consumed

q1 a q2 “reject”
a
q0
a
q3

Courtesy Costas Busch - RPI 27


Second Choice

a a a

q1 a q2
a
q0
a
q3

Courtesy Costas Busch - RPI 28


Second Choice

a a a

q1 a q2
a
q0
a
q3

Courtesy Costas Busch - RPI 29


Second Choice

a a a

q1 a q2
a
q0
a
No transition:
q3
the automaton hangs

Courtesy Costas Busch - RPI 30


Second Choice

a a a
Input cannot be consumed

q1 a q2
a
q0
a
q3 “reject”

Courtesy Costas Busch - RPI 31


aaa is rejected by the NFA:

“reject”
q1 a q2 q1 a q2
a a
q0 q0
a a
q3 q3 “reject”

All possible computations lead to rejection


Courtesy Costas Busch - RPI 32
Language accepted: L  {aa}

q1 a q2
a
q0
a
q3

Courtesy Costas Busch - RPI 33


Lambda Transitions

q0 a q1  q2 a q3

Courtesy Costas Busch - RPI 34


a a

q0 a q1  q2 a q3

Courtesy Costas Busch - RPI 35


a a

q0 a q1  q2 a q3

Courtesy Costas Busch - RPI 36


(read head does not move)

a a

q0 a q1  q2 a q3

Courtesy Costas Busch - RPI 37


a a

q0 a q1  q2 a q3

Courtesy Costas Busch - RPI 38


all input is consumed

a a

“accept”

q0 a q1  q2 a q3

String aa is accepted
Courtesy Costas Busch - RPI 39
Rejection Example

a a a

q0 a q1  q2 a q3

Courtesy Costas Busch - RPI 40


a a a

q0 a q1  q2 a q3

Courtesy Costas Busch - RPI 41


(read head doesn’t move)

a a a

q0 a q1  q2 a q3

Courtesy Costas Busch - RPI 42


a a a

q0 a q1  q2 a q3

No transition:
the automaton hangs
Courtesy Costas Busch - RPI 43
Input cannot be consumed

a a a

“reject”

q0 a q1  q2 a q3

String aaa is rejected


Courtesy Costas Busch - RPI 44
Language accepted: L  {aa}

q0 a q1  q2 a q3

Courtesy Costas Busch - RPI 45


Another NFA Example

q0 a q1 b q2  q3


Courtesy Costas Busch - RPI 46
a b

q0 a q1 b q2  q3


Courtesy Costas Busch - RPI 47
a b

q0 a q1 b q2  q3


Courtesy Costas Busch - RPI 48
a b

q0 a q1 b q2  q3


Courtesy Costas Busch - RPI 49
a b

“accept”

q0 a q1 b q2  q3


Courtesy Costas Busch - RPI 50
Another String

a b a b

q0 a q1 b q2  q3


Courtesy Costas Busch - RPI 51
a b a b

q0 a q1 b q2  q3


Courtesy Costas Busch - RPI 52
a b a b

q0 a q1 b q2  q3


Courtesy Costas Busch - RPI 53
a b a b

q0 a q1 b q2  q3


Courtesy Costas Busch - RPI 54
a b a b

q0 a q1 b q2  q3


Courtesy Costas Busch - RPI 55
a b a b

q0 a q1 b q2  q3


Courtesy Costas Busch - RPI 56
a b a b

q0 a q1 b q2  q3


Courtesy Costas Busch - RPI 57
a b a b

“accept”

q0 a q1 b q2  q3


Courtesy Costas Busch - RPI 58
Language accepted

L  ab, abab, ababab, ...



 ab

q0 a q1 b q2  q3


Courtesy Costas Busch - RPI 59
Another NFA Example

0
q0 q1 0, 1 q2
1

Courtesy Costas Busch - RPI 60
Language accepted

L(M ) = {λ, 10, 1010, 101010, ...}


= {10} *
0
q0 q1 0, 1 q2
1 (redundant
state)

Courtesy Costas Busch - RPI 61
Remarks:
•The  symbol never appears on the
input tape

•Simple automata:

M1 M2
q0 q0

L(M1 ) = {} L(M 2 ) = {λ}


Courtesy Costas Busch - RPI 62
Formal Definition of NFAs
M  Q, ,  , q0 , F 

Q : Set of states, i.e. q0 , q1, q2 


 : Input aplhabet, i.e. a, b
: Transition function

q0 : Initial state

F : Final states
Courtesy Costas Busch - RPI 63
Transition Function 

 q , x   q1, q2,, qk 

q1
x resulting states with
q x
q1 following one transition
x
with symbol x

qk
Courtesy Costas Busch - RPI 64
Transition Function 

 q0 , 1  q1

0
q0 q1 0, 1 q
2
1

Courtesy Costas Busch - RPI 65
 (q1,0)  {q0 , q2}

0
q0 q1 0, 1 q
2
1

Courtesy Costas Busch - RPI 66
 (q0 ,  )  {q0 , q2}

0
q0 q1 0, 1 q
2
1

Courtesy Costas Busch - RPI 67
 (q2 ,1)  

0
q0 q1 0, 1 q
2
1

Courtesy Costas Busch - RPI 68
Activity
Time
Is the Transition Function for NFA infinite?
Define its Domain X Range..
Extended Transition Function  *

 * q0 , a   q1

q4 q5
a a
q0 a q1 b q2  q3

Courtesy Costas Busch - RPI 70
 * q0 , aa   q4 , q5 

q4 q5
a a
q0 a q1 b q2  q3

Courtesy Costas Busch - RPI 71
 * q0 , ab   q2 , q3 , q0 

q4 q5
a a
q0 a q1 b q2  q3

Courtesy Costas Busch - RPI 72
Special case:

for any state q

q   q ,  
*

Courtesy Costas Busch - RPI 73


Formally
q j   * qi , w : there is a walk from qi to q j
with label w

qi w qj

w  1 2  k
1 2 k
qi qj

Courtesy Costas Busch - RPI 74


The Language of an NFA M
F  q0 ,q5 
q4 q5
a a
q0 a q1 b q2  q3

 * q0 , aa   q4 , q5 aa  L(M )


F
Courtesy Costas Busch - RPI 75
F  q0 ,q5 
q4 q5
a a
q0 a q1 b q2  q3

 * q0 , ab   q2 , q3 , q0  ab LM 


F
Courtesy Costas Busch - RPI 76
F  q0 ,q5 
q4 q5
a a
q0 a q1 b q2  q3

 * q0 , abaa   q4 , q5 aaba L(M )


F
Courtesy Costas Busch - RPI 77
F  q0 ,q5 
q4 q5
a a
q0 a q1 b q2  q3

 * q0 , aba   q1 aba  LM 


F
Courtesy Costas Busch - RPI 78
q4 q5
a a
q0 a q1 b q2  q3

LM   ab  *  ab  * {aa }

Courtesy Costas Busch - RPI 79


Formally
The language accepted by NFA M is:
LM   w1, w2 , w3 ,...

where  * (q0 , wm )  {qi , q j ,..., qk ,}

and there is some qk  F (final state)

Courtesy Costas Busch - RPI 80


w LM   * (q0 , w)
qi
w

q0
qk qk  F
w
w qj

Courtesy Costas Busch - RPI 81

You might also like