0% found this document useful (0 votes)
14 views78 pages

Mahi 3

The document describes non-deterministic finite automata (NFAs) with the following key points: 1. An NFA for the language {aa} over the alphabet {a} is presented, showing how the string "aa" is accepted through one computation path and rejected through another. 2. The concept of lambda transitions is introduced, with an example NFA showing how the string "aa" is accepted using lambda transitions without moving the read head. 3. Finally, another example NFA is presented accepting the language of all strings of the form "ab" over the alphabet {a,b}, demonstrating how lambda transitions allow accepting multiple such strings.

Uploaded by

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

Mahi 3

The document describes non-deterministic finite automata (NFAs) with the following key points: 1. An NFA for the language {aa} over the alphabet {a} is presented, showing how the string "aa" is accepted through one computation path and rejected through another. 2. The concept of lambda transitions is introduced, with an example NFA showing how the string "aa" is accepted using lambda transitions without moving the read head. 3. Finally, another example NFA is presented accepting the language of all strings of the form "ab" over the alphabet {a,b}, demonstrating how lambda transitions allow accepting multiple such strings.

Uploaded by

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

Non Deterministic Automata

Linz: Nondeterministic Finite Accepters, page 51

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 a
q1 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

•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 q0
a 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

• The input cannot be consumed

21
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


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
a No transition:
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 q0
a 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 doesn’t 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

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

•Extreme 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
It holds q j   * qi , w

if and only if

there is a walk from qi to q j


with label w

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 )


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

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


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

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


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

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


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


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

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

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

and there is some qk  F (final state)


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

q0 qk qk  F
w
w qj

78

You might also like