Professional Documents
Culture Documents
q1 a
q2
q0
q3
Courtesy Costas Busch - RPI 2
Two choices a
q1 a
q2
q0
q3
Courtesy Costas Busch - RPI 3
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
Second Choice
a a
Input cannot be consumed a
q1 a
q2
q0
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
q1
q2
q1 a
q2
q0
q0
q3
q3
reject
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
q1 a
q2
a
q1 a
q2
q0
q0 q3
reject
q3
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
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
Second Choice
a a a
Input cannot be consumed a
q1 a
q2
q0
q3
reject
30
q1
q2
q1 a
q2
q0
q0
q3
q3
reject
Language accepted:
L ! {aa}
q1 a
q2
q0
q3
Courtesy Costas Busch - RPI 32
Lambda Transitions
q0 a
q1 P
q2 a
q3
33
a a
q0 a
q1 P
q2 a
q3
34
a a
q0 a
q1 P
q2 a
q3
35
a a
q0 a
q1 P
q2 a
q3
36
a a
q0 a
q1 P
q2 a
q3
37
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
39
a a a
q0 a
q1 P
q2 a
q3
40
a a a
q0 a
q1 P
q2 a
q3
41
a a a
q0 a
q1 P
q2 a
q3
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
44
q0
q1 P
q2
q3
45
a b
q0
q1 P
q2
q3
46
a b
q0
q1 P
q2
q3
47
a b
q0
q1 P
q2
q3
48
a b
accept
q0
q1 P
q2
q3
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
q0
q1 P
q2
q3
58
0
q0 1 q1
0, 1 q2
P
Courtesy Costas Busch - RPI 59
Language accepted
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
M ! Q, 7, H , q0 , F
Q:
_q0 , q1, q2 a
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
H * q0 , a ! _q1a
q4
a q0 a a
q5
q1
P
q2
q3
68
H * q0 , aa ! _q4 , q5 a
q4
a q0 a a
q5
q1
P
q2
q3
69
H * q0 , ab ! _q2 , q3 , q0 a
q4
a q0 a a
q5
q1
P
q2
q3
70
w
qj
qi
w
w ! W 1W 2 . W k
qi
W1
W2
Wk
qj
71
q j H * qi , w
w
q0
H * (q0 , w)
qi qk w
qj
72
H * (q, P ) ! {q}
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
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 LM
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
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 LM
77
q4 a q0 a q1 a
q5 b P q2 P q3
Formally
The language accepted by NFA
M is:
LM ! _w1, w2 , w3 ,...a
where
w LM
w
q0
H * (q0 , w)
qi qk w
qk F
qj
80
81
Equivalence of Machines
Definition for Automata: Machine if
M1 is equivalent to machine M 2
LM1 ! LM 2
82
M1
q1
LM1 ! {10} *
0 q0
1
DFA
M2
1
0,1
LM 2 ! {10} *
0
q0
q1
0
q2
83
Regular Languages
Languages accepted by DFAs
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
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
q1 b
q2
DFA
Md
_q0 a
87
NFA
q1 b
q2
DFA
Md
_q0 a
_q1,q2 a
88
NFA
q1 b
q2
DFA
Md
_q0 a
b
_q1,q2 a
NFA
q1 b
q2
DFA
Md
a a
b
Courtesy Costas Busch - RPI 90
_q0 a
_q1,q2 a
NFA
q1 b
q2
DFA
Md
_q0 a
b
_q1,q2 a
NFA
q1 b
q2
DFA
Md
_q0 a
b
_q1,q2 a
a, b
92
NFA
q1 b
q2 a
LM ! L(M d )
DFA
Md
_q0 a
b
_q1,q2 a
a, b
93
M ! (QN , 7, H N , q0 , FN )
M d (QD , 7, H D , {q0 }, FD ) !
With
LM
! L(M d )
Courtesy Costas Busch - RPI 94
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 , , , ,....
95
1.
q0
_q0 a
96
NFA
M
q0
Example a
q1 b
q2
DFA
Md
_q0 a
97
H * qi , a , ...
H * j , a q ,
, q j ,..., d ! {qid d qm }
NFA
M
q0
Exampe a
q1
q2
_q0 a
_q1,q2 a
99
H _q0 a a
! _q1, q2 a ,
Courtesy Costas Busch - RPI
Repeat Step 2 for all letters in alphabet, until no more transitions can be added.
100
NFA
M
q0
Example a
q1 b
q2
DFA
Md
_q0 a
b
_q1,q2 a
a, b
101
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
Theorem
Take NFA
M Md
Then
and
M d are equivalent :
LM
! LM d
Courtesy Costas Busch - RPI 104
Proof
LM ! LM d
LM LM d AND
LM LM d
105
First we show:
LM
LM d
w L(M ) w L(M d )
Take arbitrary:
We will prove:
106
w L(M )
M:
q0
w
w ! W 1W 2 . W k
qf
M:
q0
W1
W2
Wk
qf
107
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
M:
v ! a1a2 . an
a2
M:
q0
a1
qi
qj
ql
an
qm
Md :
{q0 }
a1
a2
{qi ,- } {q j ,- }
an
{ql ,- } {qm ,- }
109
|v|
v ! a1
a1
M: Md :
q0
qi
a1
{q0 }
{qi ,- }
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 ,- }
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 ,- }
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 ,- }
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:
LM LM d
LM LM d
115