You are on page 1of 115

Non Deterministic Automata

Courtesy Costas Busch - RPI

Nondeterministic Finite Accepter (NFA)


Alphabet = {a}

q1 a

q2

q0

q3
Courtesy Costas Busch - RPI 2

Nondeterministic Finite Accepter (NFA)


Alphabet = {a}

Two choices a

q1 a

q2

q0

q3
Courtesy Costas Busch - RPI 3

Nondeterministic Finite Accepter (NFA)


Alphabet = {a}

Two choices a

q1 a

q2 No transition

q0

q3 No transition
Courtesy Costas Busch - RPI 4

First Choice
a a

q1 a

q2

q0

q3
Courtesy Costas Busch - RPI 5

First Choice
a a

q1 a

q2

q0

q3
Courtesy Costas Busch - RPI 6

First Choice
a a

q1 a

q2

q0

q3
Courtesy Costas Busch - RPI 7

First Choice
a a
All input is consumed a

q1 a

q2

accept

q0

q3
Courtesy Costas Busch - RPI 8

Second Choice
a a

q1 a

q2

q0

q3
Courtesy Costas Busch - RPI 9

Second Choice
a a

q1 a

q2

q0

q3
Courtesy Costas Busch - RPI 10

Second Choice
a a

q1 a

q2

q0

q3

No transition: the automaton hangs


11

Courtesy Costas Busch - RPI

Second Choice
a a
Input cannot be consumed a

q1 a

q2

q0

q3

reject

Courtesy 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

Courtesy Costas Busch - RPI

13

Example

aa is accepted by the NFA:


accept
a

q1

q2

q1 a

q2

q0

q0
q3

q3

reject

because this computation accepts aa

Courtesy Costas Busch - RPI

14

Rejection example
a

q1 a

q2

q0

q3
Courtesy Costas Busch - RPI 15

First Choice
a

q1 a

q2

q0

q3
Courtesy Costas Busch - RPI 16

First Choice
a
reject a

q1 a

q2

q0

q3
Courtesy Costas Busch - RPI 17

Second Choice
a

q1 a

q2

q0

q3
Courtesy Costas Busch - RPI 18

Second Choice
a

q1 a

q2

q0

q3
Courtesy Costas Busch - RPI 19

Second Choice
a

q1 a

q2

q0

q3 reject
Courtesy 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
Courtesy Costas Busch - RPI 21

Example

a is rejected by the NFA:


reject
a

q1 a

q2
a

q1 a

q2

q0

q0 q3

reject

q3

All possible computations lead to rejection


Courtesy Costas Busch - RPI 22

Rejection example
a a a

q1 a

q2

q0

q3
Courtesy Costas Busch - RPI 23

First Choice
a a a

q1 a

q2

q0

q3
Courtesy Costas Busch - RPI 24

First Choice
a a a

q1 a

q2
No transition: the automaton hangs

q0

q3

Courtesy Costas Busch - RPI

25

First Choice
a a a
Input cannot be consumed a

q1 a

q2

reject

q0

q3
Courtesy Costas Busch - RPI 26

Second Choice
a a a

q1 a

q2

q0

q3
Courtesy Costas Busch - RPI 27

Second Choice
a a a

q1 a

q2

q0

q3
Courtesy Costas Busch - RPI 28

Second Choice
a a a

q1 a

q2

q0

q3

No transition: the automaton hangs


29

Courtesy Costas Busch - RPI

Second Choice
a a a
Input cannot be consumed a

q1 a

q2

q0

q3

reject

Courtesy Costas Busch - RPI

30

aaa is rejected by the NFA:


reject
a

q1

q2

q1 a

q2

q0

q0
q3

q3

reject

All possible computations lead to rejection


Courtesy Costas Busch - RPI 31

Language accepted:

L ! {aa}

q1 a

q2

q0

q3
Courtesy Costas Busch - RPI 32

Lambda Transitions

q0 a

q1 P

q2 a

q3

Courtesy Costas Busch - RPI

33

a a

q0 a

q1 P

q2 a

q3

Courtesy Costas Busch - RPI

34

a a

q0 a

q1 P

q2 a

q3

Courtesy Costas Busch - RPI

35

(read head does not move)

a a

q0 a

q1 P

q2 a

q3

Courtesy Costas Busch - RPI

36

a a

q0 a

q1 P

q2 a

q3

Courtesy Costas Busch - RPI

37

all input is consumed

a a

accept

q0 a
String

q1 P

q2 a

q3

aa is accepted
Courtesy Costas Busch - RPI 38

Rejection Example

a a a

q0 a

q1 P

q2 a

q3

Courtesy Costas Busch - RPI

39

a a a

q0 a

q1 P

q2 a

q3

Courtesy Costas Busch - RPI

40

(read head doesnt move)

a a a

q0 a

q1 P

q2 a

q3

Courtesy Costas Busch - RPI

41

a a a

q0 a

q1 P

q2 a

q3

No transition: the automaton hangs


Courtesy Costas Busch - RPI 42

Input cannot be consumed

a a a

reject

q0 a
String

q1 P

q2 a

q3

aaa is rejected
Courtesy Costas Busch - RPI 43

Language accepted:

L ! {aa}

q0 a

q1 P

q2 a

q3

Courtesy Costas Busch - RPI

44

Another NFA Example

q0

q1 P

q2

q3

Courtesy Costas Busch - RPI

45

a b

q0

q1 P

q2

q3

Courtesy Costas Busch - RPI

46

a b

q0

q1 P

q2

q3

Courtesy Costas Busch - RPI

47

a b

q0

q1 P

q2

q3

Courtesy Costas Busch - RPI

48

a b

accept

q0

q1 P

q2

q3

Courtesy Costas Busch - RPI

49

Another String

a b a b

q0

q1

q2

q3

P
Courtesy Costas Busch - RPI 50

a b a b

q0

q1

q2

q3

P
Courtesy Costas Busch - RPI 51

a b a b

q0

q1

q2

q3

P
Courtesy Costas Busch - RPI 52

a b a b

q0

q1

q2

q3

P
Courtesy Costas Busch - RPI 53

a b a b

q0

q1

q2

q3

P
Courtesy Costas Busch - RPI 54

a b a b

q0

q1

q2

q3

P
Courtesy Costas Busch - RPI 55

a b a b

q0

q1

q2

q3

P
Courtesy Costas Busch - RPI 56

a b a b

accept

q0

q1

q2

q3

P
Courtesy Costas Busch - RPI 57

Language accepted

L ! _ab, abab, ababab, ...a ! _aba a




q0

q1 P

q2

q3

Courtesy Costas Busch - RPI

58

Another NFA Example

0
q0 1 q1
0, 1 q2

P
Courtesy Costas Busch - RPI 59

Language accepted

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

0
q0 1 q1
0, 1 q2
(redundant state)

P
Courtesy Costas Busch - RPI 60

Remarks: The P symbol never appears on the input tape Simple automata:

M1 q0 L(M1 ) = {}
Courtesy Costas Busch - RPI

M2
q0

L( M 2 ) = { }
61

NFAs are interesting because we can express languages easier than DFAs

NFA

M1
q1

DFA

M2
q2

q0

a
q0

q1

L( M1 ) = {a}
Courtesy Costas Busch - RPI

L( M 2 ) = {a}
62

Formal Definition of NFAs

M ! Q, 7, H , q0 , F

Q:

Set of states, i.e.

_q0 , q1, q2 a

7 : Input aplhabet, i.e. _a, ba H : Transition function


q0 : Initial state

F : Final states
Courtesy Costas Busch - RPI 63

Transition Function H

H q0 , 1 ! _q1a

0
q0 1
q1 0, 1 q 2

P
Courtesy Costas Busch - RPI 64

H (q1,0) ! {q0 , q2 } 0
q0 1
q1 0, 1 q 2

P
Courtesy Costas Busch - RPI 65

H (q0 , P ) ! {q0 , q2 } 0
q0 1
q1 0, 1 q 2

P
Courtesy Costas Busch - RPI 66

H (q2 ,1) !

0
q0 1
q1 0, 1 q 2

P
Courtesy Costas Busch - RPI 67

Extended Transition Function H *

H * q0 , a ! _q1a

q4
a q0 a a

q5

q1
P

q2

q3
68

Courtesy Costas Busch - RPI

H * q0 , aa ! _q4 , q5 a

q4
a q0 a a

q5

q1
P

q2

q3
69

Courtesy Costas Busch - RPI

H * q0 , ab ! _q2 , q3 , q0 a

q4
a q0 a a

q5

q1
P

q2

q3
70

Courtesy Costas Busch - RPI

Formally q j H * qi , w : there is a walk from qi to q j


with label

w
qj

qi

w
w ! W 1W 2 . W k

qi

W1

W2

Wk

qj
71

Courtesy Costas Busch - RPI

q j H * qi , w
w
q0

H * (q0 , w)
qi qk w

qj

Courtesy Costas Busch - RPI

72

Inductive Definition Basis:

H * (q, P ) ! {q}

Induction: Suppose w = x a. Also Let

H * q, x ! { p1 , p2 , . , pk }

7H p , a ! {r , r ,.
i 1 2 i !1

, rm }

Then

H * q, w ! {r1 , r2 , . , rm }

73

The Language of an NFA M

F ! _q0 ,q5 a

q4 a a a q1

q5 b P q2 P q3

q0

H * q0 , aa ! _ 4 , q5a q F
Courtesy Costas Busch - RPI

aa L(M )
74

F ! _q0 ,q5 a

q4 a a a q1

q5 b P q2 P q3

q0

ab L M H * q0 , ab ! _ 2 , q3 , q0 a q F
Courtesy Costas Busch - RPI 75

F ! _q0 ,q5 a

q4 a a a q1

q5 b P q2 P q3

q0

aaba L(M ) H * q0 , abaa ! _ 4 , q5a q F


Courtesy Costas Busch - RPI 76

F ! _q0 ,q5 a

q4 a a a q1

q5 b P q2 P q3

q0

H * q0 , aba ! _q1a F
Courtesy Costas Busch - RPI

aba L M
77

q4 a q0 a q1 a

q5 b P q2 P q3

L M ! _Pa _aba* {aa}


Courtesy Costas Busch - RPI 78

Formally
The language accepted by NFA

M is:

L M ! _w1, w2 , w3 ,...a

where

H * (q0 , wm ) ! {qi , q j ,..., qk ,- } qk F


(final state)
79

and there is some

Courtesy Costas Busch - RPI

w L M
w
q0

H * (q0 , w)
qi qk w

qk F

qj

Courtesy Costas Busch - RPI

80

NFAs accept the Regular Languages

Courtesy Costas Busch - RPI

81

Equivalence of Machines
Definition for Automata: Machine if

M1 is equivalent to machine M 2

L M1 ! L M 2

Courtesy Costas Busch - RPI

82

Example of equivalent machines


NFA

M1
q1

L M1 ! {10} *

0 q0

1
DFA

M2
1

0,1

L M 2 ! {10} *

0
q0

q1
0

q2
83

Courtesy Costas Busch - RPI

We will prove: Languages accepted by NFAs

Regular Languages
Languages accepted by DFAs

NFAs and DFAs have the same computation power


Courtesy Costas Busch - RPI 84

Step 1 Languages accepted by NFAs

Regular Languages

Proof: Every DFA is trivially an NFA Any language L accepted by a DFA is also accepted by an NFA
Courtesy Costas Busch - RPI 85

Step 2 Languages accepted by NFAs

Regular Languages

Proof: Any NFA can be converted to an equivalent DFA Any language L accepted by an NFA is also accepted by a DFA
Courtesy Costas Busch - RPI 86

NFA

Convert NFA to DFA a q0

q1 b

q2

DFA

Md

_q0 a

Courtesy Costas Busch - RPI

87

NFA

Convert NFA to DFA a q0

q1 b

q2

DFA

Md

_q0 a

_q1,q2 a

Courtesy Costas Busch - RPI

88

NFA

Convert NFA to DFA a q0

q1 b

q2

DFA

Md

_q0 a
b

_q1,q2 a

Courtesy Costas Busch - RPI 89

NFA

Convert NFA to DFA a q0

q1 b

q2

DFA

Md

a a
b
Courtesy Costas Busch - RPI 90

_q0 a

_q1,q2 a

NFA

Convert NFA to DFA a q0

q1 b

q2

DFA

Md

_q0 a
b

_q1,q2 a

Courtesy Costas Busch - RPI 91

NFA

Convert NFA to DFA a q0

q1 b

q2

DFA

Md

_q0 a
b

_q1,q2 a
a, b
92

Courtesy Costas Busch - RPI

NFA

Convert NFA to DFA a q0

q1 b

q2 a

L M ! L(M d )

DFA

Md

_q0 a
b

_q1,q2 a
a, b
93

Courtesy Costas Busch - RPI

NFA to DFA: Remarks


We are given an NFA

M ! (QN , 7, H N , q0 , FN )
M d (QD , 7, H D , {q0 }, FD ) !

We want to convert it to an equivalent DFA

With

L M ! L(M d )
Courtesy Costas Busch - RPI 94

If the NFA has n states

QN ! {q0 , q1 , q2 ,..., qn }
the DFA has 2n states in the power set of QN i.e. , _q0 a_q1a_q1, q2 a_q3 , q4 , q7 a , , , ,....

Courtesy Costas Busch - RPI

95

Procedure NFA to DFA

1.

Initial state of NFA:

q0

Initial state of DFA:

_q0 a

Courtesy Costas Busch - RPI

96

NFA

M
q0

Example a

q1 b

q2

DFA

Md

_q0 a

Courtesy Costas Busch - RPI

97

Procedure NFA to DFA

2. For every DFAs state {qi , q j ,..., qm }


Compute in the NFA

H * qi , a , ...

H * j , a q ,

, q j ,..., d ! {qid d qm }

Add transition to DFA

H qi , q j ,..., qm }, a ! {qid d qm } { , q j ,..., d


Courtesy Costas Busch - RPI 98

NFA

M
q0

Exampe a

q1

q2

b H * (q0 , a ) ! {q1, q2}


DFA M d

_q0 a

_q1,q2 a
99

H _q0 a a ! _q1, q2 a ,
Courtesy Costas Busch - RPI

Procedure NFA to DFA

Repeat Step 2 for all letters in alphabet, until no more transitions can be added.

Courtesy Costas Busch - RPI

100

NFA

M
q0

Example a

q1 b

q2

DFA

Md

_q0 a
b

_q1,q2 a
a, b
101

Courtesy Costas Busch - RPI

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


Courtesy Costas Busch - RPI 102

NFA

M
q0

Example a

q1 b

q2 a

q1 F

DFA

Md

_q0 a
b

_q1,q2 a
a, b
103

_q1, q2 a F d

Courtesy Costas Busch - RPI

Theorem
Take NFA

M Md

Apply procedure to obtain DFA

Then

and

M d are equivalent :

L M ! L M d
Courtesy Costas Busch - RPI 104

Proof

L M ! L M d

L M L M d AND

L M L M d

Courtesy Costas Busch - RPI

105

First we show:

L M L M d
w L(M ) w L(M d )

Take arbitrary:

We will prove:

Courtesy Costas Busch - RPI

106

w L(M )

M:

q0

w
w ! W 1W 2 . W k

qf

M:

q0

W1

W2

Wk

qf
107

Courtesy Costas Busch - RPI

We will show that if

w L(M )

w ! W 1W 2 . W k

M:

q0

W1

W2

Wk

qf

Md :

W1

W2

Wk

{q0 }

w L(M d )
Courtesy Costas Busch - RPI

{q f ,- }

108

More generally, we will show that if in


(arbitrary string)

M:

v ! a1a2 . an
a2

M:

q0

a1

qi

qj

ql

an

qm

Md :
{q0 }

a1

a2
{qi ,- } {q j ,- }

an
{ql ,- } {qm ,- }

Courtesy Costas Busch - RPI

109

Proof by induction on Induction Basis:

|v|

v ! a1
a1

M: Md :

q0

qi

a1
{q0 }
{qi ,- }

Courtesy Costas Busch - RPI

110

Induction hypothesis:

1 e| v |e k

v ! a1a2 . ak M:
q0
a1

qi

a2

qj

qc

ak

qd

Md :
{q0 }

a1

a2
{qi ,- } {q j ,- }

ak
{qc ,- } {qd ,- }

Courtesy Costas Busch - RPI

111

Induction Step:

| v |! k  1
vd

v ! a1a2 . ak ak 1 ! vd 1 ak    
q0
a1 a2

M:

qi

qj

qc

ak

qd

vd Md :
{q0 }

a1

a2
{qi ,- } {q j ,- }

ak
{qc ,- } {qd ,- }

Courtesy Costas Busch - RPI

vd

112

Induction Step:

| v |! k  1
vd

v ! a1a2 . ak ak 1 ! vd 1 ak    
q0
a1 a2

M:

qi

qj

qc

ak

qd

ak 1

qe

vd Md :
{q0 }

a1

a2
{qi ,- } {q j ,- }

ak

ak 1
{qe ,- }

{qc ,- } {qd ,- }

Courtesy Costas Busch - RPI

vd

113

Therefore if

w L(M )
w ! W 1W 2 . W k

M:

q0

W1

W2

Wk

qf

Md :

W1

W2

Wk

{q0 }

w L(M d )
Courtesy Costas Busch - RPI

{q f ,- }

114

We have shown:

L M L M d

We also need to show: (proof is similar)

L M L M d

Courtesy Costas Busch - RPI

115

You might also like