0% found this document useful (0 votes)
21 views113 pages

Non Deterministic Automata: Costas Busch - RPI 1

This document discusses non-deterministic finite automata (NFA). It provides examples of NFAs that accept the languages {aa} and {ab, abab} and examples of strings that are accepted and rejected by these NFAs. The key aspects covered are that an NFA can have multiple possible state transitions on a given input symbol, it accepts a string if any computation path leads to consuming all the input and reaching an accepting state, and it rejects a string if no computation path does this or gets stuck with unconsumed input. Lambda transitions that don't consume input are also discussed.

Uploaded by

Rama Sushil
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)
21 views113 pages

Non Deterministic Automata: Costas Busch - RPI 1

This document discusses non-deterministic finite automata (NFA). It provides examples of NFAs that accept the languages {aa} and {ab, abab} and examples of strings that are accepted and rejected by these NFAs. The key aspects covered are that an NFA can have multiple possible state transitions on a given input symbol, it accepts a string if any computation path leads to consuming all the input and reaching an accepting state, and it rejects a string if no computation path does this or gets stuck with unconsumed input. Lambda transitions that don't consume input are also discussed.

Uploaded by

Rama Sushil
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/ 113

Non Deterministic Automata

Costas Busch - RPI 1


Nondeterministic Finite Accepter (NFA)

Alphabet = {a}

q1 a q2
a
q0
a
q3

Costas Busch - RPI 2


Nondeterministic Finite Accepter (NFA)

Alphabet = {a}

Two choices q1 a q2
a
q0
a
q3

Costas Busch - RPI 3


Nondeterministic Finite Accepter (NFA)

Alphabet = {a}

Two choices q1 a q2 No transition


a
q0
a
q3 No transition

Costas Busch - RPI 4


First Choice

a a

q1 a q2
a
q0
a
q3

Costas Busch - RPI 5


First Choice

a a

q1 a q2
a
q0
a
q3

Costas Busch - RPI 6


First Choice

a a

q1 a q2
a
q0
a
q3

Costas Busch - RPI 7


First Choice

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

Costas Busch - RPI 8


Second Choice

a a

q1 a q2
a
q0
a
q3

Costas Busch - RPI 9


Second Choice

a a

q1 a q2
a
q0
a
q3

Costas Busch - RPI 10


Second Choice

a a

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

Costas Busch - RPI 11


Second Choice

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

Costas Busch - RPI 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

Costas Busch - RPI 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 Costas Busch - RPI 14
Rejection example

q1 a q2
a
q0
a
q3

Costas Busch - RPI 15


First Choice

q1 a q2
a
q0
a
q3

Costas Busch - RPI 16


First Choice

a
“reject”
q1 a q2
a
q0
a
q3

Costas Busch - RPI 17


Second Choice

q1 a q2
a
q0
a
q3

Costas Busch - RPI 18


Second Choice

q1 a q2
a
q0
a
q3

Costas Busch - RPI 19


Second Choice

q1 a q2
a
q0
a
q3 “reject”

Costas Busch - RPI 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


Costas Busch - RPI 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


Costas Busch - RPI 22
Rejection example

a a a

q1 a q2
a
q0
a
q3

Costas Busch - RPI 23


First Choice

a a a

q1 a q2
a
q0
a
q3

Costas Busch - RPI 24


First Choice

a a a

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

Costas Busch - RPI 25


First Choice

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

Costas Busch - RPI 26


Second Choice

a a a

q1 a q2
a
q0
a
q3

Costas Busch - RPI 27


Second Choice

a a a

q1 a q2
a
q0
a
q3

Costas Busch - RPI 28


Second Choice

a a a

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

Costas Busch - RPI 29


Second Choice

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

Costas Busch - RPI 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


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

q1 a q2
a
q0
a
q3

Costas Busch - RPI 32


Lambda Transitions

q0 a q1  q2 a q3

Costas Busch - RPI 33


a a

q0 a q1  q2 a q3

Costas Busch - RPI 34


a a

q0 a q1  q2 a q3

Costas Busch - RPI 35


(read head does not move)

a a

q0 a q1  q2 a q3

Costas Busch - RPI 36


a a

q0 a q1  q2 a q3

Costas Busch - RPI 37


all input is consumed

a a

“accept”

q0 a q1  q2 a q3

String aa is accepted
Costas Busch - RPI 38
Rejection Example

a a a

q0 a q1  q2 a q3

Costas Busch - RPI 39


a a a

q0 a q1  q2 a q3

Costas Busch - RPI 40


(read head doesn’t move)

a a a

q0 a q1  q2 a q3

Costas Busch - RPI 41


a a a

q0 a q1  q2 a q3

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

a a a

“reject”

q0 a q1  q2 a q3

String aaa is rejected


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

q0 a q1  q2 a q3

Costas Busch - RPI 44


Another NFA Example

q0 a q1 b q2  q3


Costas Busch - RPI 45
a b

q0 a q1 b q2  q3


Costas Busch - RPI 46
a b

q0 a q1 b q2  q3


Costas Busch - RPI 47
a b

q0 a q1 b q2  q3


Costas Busch - RPI 48
a b

“accept”
q0 a q1 b q2  q3


Costas Busch - RPI 49
Another String

a b a b

q0 a q1 b q2  q3


Costas Busch - RPI 50
a b a b

q0 a q1 b q2  q3


Costas Busch - RPI 51
a b a b

q0 a q1 b q2  q3


Costas Busch - RPI 52
a b a b

q0 a q1 b q2  q3


Costas Busch - RPI 53
a b a b

q0 a q1 b q2  q3


Costas Busch - RPI 54
a b a b

q0 a q1 b q2  q3


Costas Busch - RPI 55
a b a b

q0 a q1 b q2  q3


Costas Busch - RPI 56
a b a b

“accept”
q0 a q1 b q2  q3


Costas Busch - RPI 57
Language accepted

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



  ab

q0 a q1 b q2  q3


Costas Busch - RPI 58
Another NFA Example

0
q0 q1 0, 1 q2
1

Costas Busch - RPI 59
Language accepted

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


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

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

•Simple automata:

M1 M2
q0 q0

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


Costas Busch - RPI 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}
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
Costas Busch - RPI 63
Transition Function 

  q0 , 1   q1

0
q0 q1 0, 1 q
2
1

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

0
q0 q1 0, 1 q
2
1

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

0
q0 q1 0, 1 q
2
1

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

0
q0 q1 0, 1 q
2
1

Costas Busch - RPI 67
Extended Transition Function  *

 *  q0 , a    q1

q4 q5
a a
q0 a q1 b q2  q3

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

q4 q5
a a
q0 a q1 b q2  q3

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

q4 q5
a a
q0 a q1 b q2  q3

Costas Busch - RPI 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

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

 *  q0 , ab    q2 , q3 , q0  ab  L M 
F
Costas Busch - RPI 73
F   q0 ,q5 
q4 q5
a a
q0 a q1 b q2  q3

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


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

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


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

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

Costas Busch - RPI 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)

Costas Busch - RPI 77


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

q0
qk qk  F
w
w qj

Costas Busch - RPI 78


NFAs accept the Regular
Languages

Costas Busch - RPI 79


Equivalence of Machines

Definition for Automata:

Machine M1 is equivalent to machine M 2

if L M 1   L M 2 

Costas Busch - RPI 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
Costas Busch - RPI 81
We will prove:


Languages
Regular
accepted
Languages
by NFAs
Languages
accepted
by DFAs
NFAs and DFAs have the
same computation power
Costas Busch - RPI 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
Costas Busch - RPI 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
Costas Busch - RPI 84
Convert NFA to DFA
a
NFA M
q a
0 q  q 1 2
b

DFA M
 q0 

Costas Busch - RPI 85


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

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

Costas Busch - RPI 86


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

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


Costas Busch - RPI 87
Convert NFA to DFA
a
NFA M
q a
0 q  q 1 2
b

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


Costas Busch - RPI 88
Convert NFA to DFA
a
NFA M
q a
0 q  q 1 2
b

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


Costas Busch - RPI 89
Convert NFA to DFA
a
NFA M
q a
0 q  q 1 2
b

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

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

 q0  a
 q1, q2 
b

 a, b
Costas Busch - RPI 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 )
Costas Busch - RPI 92
If the NFA has states

q0 , q1, q2 ,...

the DFA has states in the powerset

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

Costas Busch - RPI 93


Procedure NFA to DFA

1. Initial state of NFA: q0

Initial state of DFA:  q0 

Costas Busch - RPI 94


Example
M a
NFA
q0 a q1  q2
b

DFA M
 q0 

Costas Busch - RPI 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
}
Costas Busch - RPI 96
Exampe
M a
NFA
q0 a q1  q2
b
 * (q0 , a )  {q1, q2 }

DFA M 

 q0  a
 q1, q2 

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

Repeat Step 2 for all letters in alphabet,


until
no more transitions can be added.

Costas Busch - RPI 98


Example
M a
NFA
q0 a q1  q2
b

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

 a, b
Costas Busch - RPI 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

Costas Busch - RPI 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
Costas Busch - RPI 101
Theorem
Take NFA M

Apply procedure to obtain DFA M

Then M and M are equivalent :

L M   L M  

Costas Busch - RPI 102


Proof

L M   L M 

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

Costas Busch - RPI 103


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

Take arbitrary: w L(M )

We will prove: w  L(M )

Costas Busch - RPI 104


w L(M )

M: q0 w qf

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

Costas Busch - RPI 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 )
Costas Busch - RPI 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 ,}

Costas Busch - RPI 107


Proof by induction on |v|

Induction Basis: v  a1

a1
M: q0 qi

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

Costas Busch - RPI 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 ,}

Costas Busch - RPI 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
Costas Busch - RPI 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
Costas Busch - RPI 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 )
Costas Busch - RPI 112
We have shown: L M   L M  

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

(proof is similar)

Costas Busch - RPI 113

You might also like