0% found this document useful (0 votes)
22 views

Class 3

This document discusses non-deterministic finite automata (NFAs). It provides examples of NFA diagrams that accept or reject various strings using epsilon or lambda transitions. Key points covered include: NFAs can have multiple possible state transitions for a given input symbol, allowing them to accept a string if any computation path leads to acceptance. Strings are accepted if all input is consumed and the automaton reaches an accepting state, or rejected if no computation path results in acceptance.

Uploaded by

zohaibbigstar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views

Class 3

This document discusses non-deterministic finite automata (NFAs). It provides examples of NFA diagrams that accept or reject various strings using epsilon or lambda transitions. Key points covered include: NFAs can have multiple possible state transitions for a given input symbol, allowing them to accept a string if any computation path leads to acceptance. Strings are accepted if all input is consumed and the automaton reaches an accepting state, or rejected if no computation path results in acceptance.

Uploaded by

zohaibbigstar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 91

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
“reject” q3

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
q j   * qi , w  * (q0 , w)
qi
w
qk
q0 w
w qj

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

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


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

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


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

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


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

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

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

q0
qk qk  F
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
Convert NFA to DFA
M a
NFA
q0 a q1  q2
b

DFA M
q0 

83
Convert NFA to DFA
M a
NFA
q0 a q1  q2
b

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

84
Convert NFA to DFA
M a
NFA
q0 a q1  q2
b

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


85
Convert NFA to DFA
M a
NFA
q0 a q1  q2
b

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


86
Convert NFA to DFA
M a
NFA
q0 a q1  q2
b

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


87
Convert NFA to DFA
M a
NFA
q0 a q1  q2
b

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

 a, b
88
Convert NFA to DFA
M a
NFA
q0 a q1  q2
b
LM   L(M )
a
DFA M b

q0  a
q1, q2 
b

 a, b
89
Exampe
M a
NFA
q0 a q1  q2
b
 * (q0 , a )  {q1, q2 }

DFA M 

q0  a
q1, q2 

 q0 , a   q1, q2 
90
Example
M a
NFA
q0 a q1  q2
b

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

 a, b
91

You might also like