You are on page 1of 113

Non Deterministic Automata

1
Nondeterministic Finite Accepter (NFA)

Alphabet = {a}

q1 a q2
a
q0
a
q3

2
Nondeterministic Finite Accepter (NFA)

Alphabet = {a}

Two choices q1 a q2
a
q0
a
q3

3
Nondeterministic Finite Accepter (NFA)

Alphabet = {a}

Two choices q1 a q2 No transition


a
q0
a
q3 No transition

4
First Choice

a a

q1 a q2
a
q0
a
q3

5
First Choice

a a

q1 a q2
a
q0
a
q3

6
First Choice

a a

q1 a q2
a
q0
a
q3

7
First Choice

a a
All input is consumed
q1 a q2 “accept”
a
q0
a
q3

8
Second Choice

a a

q1 a q2
a
q0
a
q3

9
Second Choice

a a

q1 a q2
a
q0
a
q3

10
Second Choice

a a

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

11
Second Choice

a a
Input cannot be consumed
q1 a q2
a
q0
a
q3 “reject”

12
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

13
Example

aa is accepted by the NFA:

“accept”
q1 a q2 q1 a q2
a a
q0
a
q0
a
q3 q3 “reject”
because this
computation
accepts aa 14
Rejection example

q1 a q2
a
q0
a
q3

15
First Choice

q1 a q2
a
q0
a
q3

16
First Choice

a
“reject”
q1 a q2
a
q0
a
q3

17
Second Choice

q1 a q2
a
q0
a
q3

18
Second Choice

q1 a q2
a
q0
a
q3

19
Second Choice

q1 a q2
a
q0
a
q3 “reject”

20
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


21
Example

a 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


22
Rejection example

a a a

q1 a q2
a
q0
a
q3

23
First Choice

a a a

q1 a q2
a
q0
a
q3

24
First Choice

a a a

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

25
First Choice

a a a
Input cannot be consumed
q1 a q2 “reject”
a
q0
a
q3

26
Second Choice

a a a

q1 a q2
a
q0
a
q3

27
Second Choice

a a a

q1 a q2
a
q0
a
q3

28
Second Choice

a a a

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

29
Second Choice

a a a
Input cannot be consumed
q1 a q2
a
q0
a
q3 “reject”

30
aaa is rejected by the NFA:

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

All possible computations lead to rejection


31
Language accepted: L  {aa}

q1 a q2
a
q0
a
q3

32
Lambda Transitions

q0 a q1  q2 a q3

33
a a

q0 a q1  q2 a q3

34
a a

q0 a q1  q2 a q3

35
(read head does not move)

a a

q0 a q1  q2 a q3

36
a a

q0 a q1  q2 a q3

37
all input is consumed

a a

“accept”

q0 a q1  q2 a q3

String aa is accepted
38
Rejection Example

a a a

q0 a q1  q2 a q3

39
a a a

q0 a q1  q2 a q3

40
(read head doesn’t move)

a a a

q0 a q1  q2 a q3

41
a a a

q0 a q1  q2 a q3

No transition:
the automaton hangs
42
Input cannot be consumed

a a a

“reject”

q0 a q1  q2 a q3

String aaa is rejected


43
Language accepted: L  {aa}

q0 a q1  q2 a q3

44
Another NFA Example

q0 a q1 b q2  q3


45
a b

q0 a q1 b q2  q3


46
a b

q0 a q1 b q2  q3


47
a b

q0 a q1 b q2  q3


48
a b

“accept”
q0 a q1 b q2  q3


49
Another String

a b a b

q0 a q1 b q2  q3


50
a b a b

q0 a q1 b q2  q3


51
a b a b

q0 a q1 b q2  q3


52
a b a b

q0 a q1 b q2  q3


53
a b a b

q0 a q1 b q2  q3


54
a b a b

q0 a q1 b q2  q3


55
a b a b

q0 a q1 b q2  q3


56
a b a b

“accept”
q0 a q1 b q2  q3


57
Language accepted

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



 ab

q0 a q1 b q2  q3


58
Another NFA Example

0
q0 q1 0, 1 q2
1

59
Language accepted

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


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

60
Remarks:
•The  symbol never appears on the
input tape

•Simple automata:

M1 M2
q0 q0

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


61
•NFAs are interesting because we can
express languages easier than DFAs

NFA M1 DFA M2 a
q2
q0 a q1
a
q0 a q1

L( M1 ) = {a} L( M 2 ) = {a}
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
63
Transition Function 

 q0 , 1  q1

0
q0 q1 0, 1 q
2
1

64
 (q1,0)  {q0 , q2}

0
q0 q1 0, 1 q
2
1

65
 (q0 ,  )  {q0 , q2}

0
q0 q1 0, 1 q
2
1

66
 (q2 ,1)  

0
q0 q1 0, 1 q
2
1

67
Extended Transition Function  *

 * q0 , a   q1

q4 q5
a a
q0 a q1 b q2  q3

68
 * q0 , aa   q4 , q5 

q4 q5
a a
q0 a q1 b q2  q3

69
 * q0 , ab   q2 , q3 , q0 

q4 q5
a a
q0 a q1 b q2  q3

70
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

71
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
72
F  q0 ,q5 
q4 q5
a a
q0 a q1 b q2  q3

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


F
73
F  q0 ,q5 
q4 q5
a a
q0 a q1 b q2  q3

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


F
74
F  q0 ,q5 
q4 q5
a a
q0 a q1 b q2  q3

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


F
75
q4 q5
a a
q0 a q1 b q2  q3

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

76
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)

77
w LM   * (q0 , w)
qi
w
qk qk  F
q0 w
w qj

78
NFAs accept the Regular
Languages

79
Equivalence of Machines

Definition for Automata:

Machine M1 is equivalent to machine M 2

if LM1   LM 2 

80
Example of equivalent machines
NFA M1
0
LM1   {10} *
q0 q1
1

DFA M2 0,1
0
LM 2   {10} *
q0 q1 1 q2
1
0
81
We will prove:


Languages
Regular
accepted
Languages
by NFAs
Languages
accepted
by DFAs
NFAs and DFAs have the
same computation power
82
Step 1

Languages
accepted  Regular
Languages
by NFAs

Proof: Every DFA is trivially an NFA

Any language L accepted by a DFA


is also accepted by an NFA
83
Step 2

Languages
accepted  Regular
Languages
by NFAs

Proof: Any NFA can be converted to an


equivalent DFA

Any language L accepted by an NFA


is also accepted by a DFA
84
Convert NFA to DFA
a
NFA M
q a q  q
0 1 2
b

DFA M
q0 

85
Convert NFA to DFA
a
NFA M
q a q  q
0 1 2
b

DFA M
q0  a
q1, q2 

86
Convert NFA to DFA
a
NFA M
q a q  q
0 1 2
b

DFA M
q0  a
q1, q2 
b


87
Convert NFA to DFA
a
NFA M
q a q  q
0 1 2
b

a
DFA M
q0  a
q1, q2 
b


88
Convert NFA to DFA
a
NFA M
q a q  q
0 1 2
b

b a
DFA M
q0  a
q1, q2 
b


89
Convert NFA to DFA
a
NFA M
q a q  q
0 1 2
b

b a
DFA M
q0  a
q1, q2 
b

 a, b
90
Convert NFA to DFA
a
NFA M
q a q  q
0 1 2
b
LM   L(M )
a
DFA M b

q0  a
q1, q2 
b

 a, b
91
NFA to DFA: Remarks

We are given an NFA M

We want to convert it
to an equivalent DFA M 

With LM   L(M )


92
If the NFA has states

q0 , q1, q2 ,...

the DFA has states in the powerset

, q0 , q1, q1, q2 , q3 , q4 , q7 ,....

93
Procedure NFA to DFA

1. Initial state of NFA: q0

Initial state of DFA: q0 

94
Example
M a
NFA
q0 a q1  q2
b

DFA M
q0 

95
Procedure NFA to DFA
2. For every DFA’s state {qi , q j ,..., qm }

Compute in the NFA


 * qi , a ,
 * q j , a ,  {qi , qj ,..., qm
}
...
Add transition to DFA
 {qi , q j ,..., qm }, a   {qi , qj ,..., qm
}
96
Exampe
M a
NFA
q0 a q1  q2
b
 * (q0 , a )  {q1, q2 }

DFA M 

q0  a
q1, q2 

 q0 , a   q1, q2 
97
Procedure NFA to DFA

Repeat Step 2 for all letters in alphabet,


until
no more transitions can be added.

98
Example
M a
NFA
q0 a q1  q2
b

b a
DFA M
q0  a
q1, q2 
b

 a, b
99
Procedure NFA to DFA
3. For any DFA state {qi , q j ,..., qm }

If some q j is a final state in the NFA

Then, {qi , q j ,..., qm }


is a final state in the DFA

100
Example
M a
NFA
q0 a q1  q2 q1  F
b
a
DFA M b

q0  a
q1, q2 
b q1, q2  F 
 a, b
101
Theorem
Take NFA M

Apply procedure to obtain DFA M

Then M and M are equivalent :

LM   LM 

102
Proof

LM   LM 

LM   LM  AND LM   LM 

103
First we show: LM   LM 

Take arbitrary: w L(M )

We will prove: w  L(M )

104
w L(M )

M: q0 w qf

w   1 2  k
1 2 k
M: q0 qf

105
We will show that if w L(M )

w   1 2  k
1 2 k
M: q0 qf

1 2 k
M:
{q0 } {q f ,}
w  L(M )
106
More generally, we will show that if in M:
(arbitrary string) v  a1a2 an
a1 a2 an
M: q0 qi qj ql qm

a1 a2 an
M:
{q0} {qi ,} {q j ,} {ql ,} {qm ,}

107
Proof by induction on |v|

Induction Basis: v  a1

a1
M: q0 qi

a1
M:
{q0 } {qi ,}

108
Induction hypothesis: 1 | v | k
v  a1a2 ak
a1 a2 ak
M: q0 qi qj qc qd

a1 a2 ak
M:
{q0} {qi ,} {q j ,} {qc ,} {qd ,}

109
Induction Step: | v | k  1
v  a1a2 ak ak 1  vak 1
   
v

a1 a2 ak
M: q0 qi qj qc qd

v
a1 a2 ak
M:
{q0} {qi ,} {q j ,} {qc ,} {qd ,}

v 110
Induction Step: | v | k  1
v  a1a2 ak ak 1  vak 1
   
v

a1 a2 ak ak 1
M: q0 qi qj qc qd qe

v
a1 a2 ak ak 1
M:
{q0} {qi ,} {q j ,} {qc ,} {qd ,} {qe ,}

v 111
Therefore if w L(M )

w   1 2  k
1 2 k
M: q0 qf

1 2 k
M:
{q0 } {q f ,}
w  L(M )
112
We have shown: LM   LM 

We also need to show: LM   LM 

(proof is similar)

113

You might also like