Professional Documents
Culture Documents
Finite Automata
Alphabet = {a}
q1 a q2
a
q0
a
q3
Two choices q1 a q2
a
q0
a
q3
a a
q1 a q2
a
q0
a
q3
a a
q1 a q2
a
q0
a
q3
a a
q1 a q2
a
q0
a
q3
a a
All input is consumed
q1 a q2 “accept”
a
q0
a
q3
a a
q1 a q2
a
q0
a
q3
a a
q1 a q2
a
q0
a
q3
a a
q1 a q2
a
q0
a
No transition:
q3
the automaton hangs
a a
Input cannot be consumed
q1 a q2
a
q0
a
q3 “reject”
“accept”
q1 a q2 q1 a q2
a a
q0
a
q0
a
q3 q3 “reject”
because this
computation
accepts aa
Fall 2005 Costas Busch - RPI 14
Rejection example
q1 a q2
a
q0
a
q3
q1 a q2
a
q0
a
q3
a
“reject”
q1 a q2
a
q0
a
q3
q1 a q2
a
q0
a
q3
q1 a q2
a
q0
a
q3
q1 a q2
a
q0
a
q3 “reject”
OR
• The input cannot be consumed
Fall 2005 Costas Busch - RPI 21
Example
“reject”
q1 a q2 q1 a q2
a a
q0 q0
a a
q3
“reject” q3
a a a
q1 a q2
a
q0
a
q3
a a a
q1 a q2
a
q0
a
q3
a a a
q1 a q2
a
q0 No transition:
a
the automaton hangs
q3
a a a
Input cannot be consumed
q1 a q2 “reject”
a
q0
a
q3
a a a
q1 a q2
a
q0
a
q3
a a a
q1 a q2
a
q0
a
q3
a a a
q1 a q2
a
q0
a
No transition:
q3
the automaton hangs
a a a
Input cannot be consumed
q1 a q2
a
q0
a
q3 “reject”
“reject”
q1 a q2 q1 a q2
a a
q0
a
q0
a
q3 q3 “reject”
q1 a q2
a
q0
a
q3
q0 a q1 q2 a q3
q0 a q1 q2 a q3
q0 a q1 q2 a q3
a a
q0 a q1 q2 a q3
q0 a q1 q2 a q3
a a
“accept”
q0 a q1 q2 a q3
String aa is accepted
Fall 2005 Costas Busch - RPI 38
Rejection Example
a a a
q0 a q1 q2 a q3
q0 a q1 q2 a q3
a a a
q0 a q1 q2 a q3
q0 a q1 q2 a q3
No transition:
the automaton hangs
Fall 2005 Costas Busch - RPI 42
Input cannot be consumed
a a a
“reject”
q0 a q1 q2 a q3
q0 a q1 q2 a q3
q0 a q1 b q2 q3
Fall 2005 Costas Busch - RPI 45
a b
q0 a q1 b q2 q3
Fall 2005 Costas Busch - RPI 46
a b
q0 a q1 b q2 q3
Fall 2005 Costas Busch - RPI 47
a b
q0 a q1 b q2 q3
Fall 2005 Costas Busch - RPI 48
a b
“accept”
q0 a q1 b q2 q3
Fall 2005 Costas Busch - RPI 49
Another String
a b a b
q0 a q1 b q2 q3
Fall 2005 Costas Busch - RPI 50
a b a b
q0 a q1 b q2 q3
Fall 2005 Costas Busch - RPI 51
a b a b
q0 a q1 b q2 q3
Fall 2005 Costas Busch - RPI 52
a b a b
q0 a q1 b q2 q3
Fall 2005 Costas Busch - RPI 53
a b a b
q0 a q1 b q2 q3
Fall 2005 Costas Busch - RPI 54
a b a b
q0 a q1 b q2 q3
Fall 2005 Costas Busch - RPI 55
a b a b
q0 a q1 b q2 q3
Fall 2005 Costas Busch - RPI 56
a b a b
“accept”
q0 a q1 b q2 q3
Fall 2005 Costas Busch - RPI 57
Language accepted
q0 a q1 b q2 q3
Fall 2005 Costas Busch - RPI 58
Another NFA Example
0
q0 q1 0, 1 q2
1
Fall 2005 Costas Busch - RPI 59
Language accepted
•Simple automata:
M1 M2
q0 q0
NFA M1 DFA M2 a
q2
q0 a q1
a
q0 a q1
L( M1 ) = {a} L( M 2 ) = {a}
Fall 2005 Costas Busch - RPI 62
Formal Definition of NFAs
M Q, , , q0 , F
q0 : Initial state
F : Accepting states
Fall 2005 Costas Busch - RPI 63
Transition Function
Is the result of following exactly
one transition
q0 , 1 q1
0
q0 q1 0, 1 q
2
1
Fall 2005 Costas Busch - RPI 64
(q1,0) {q0 , q2}
0
q0 q1 0, 1 q
2
1
Fall 2005 Costas Busch - RPI 65
(q0 , ) {q2 }
0
q0 q1 0, 1 q
2
1
Fall 2005 Costas Busch - RPI 66
(q2 ,1)
0
q0 q1 0, 1 q
2
1
Fall 2005 Costas Busch - RPI 67
Extended Transition Function *
* q0 , a q1
q4 q5
a a
q0 a q1 b q2 q3
Fall 2005 Costas Busch - RPI 68
* q0 , aa q4 , q5
q4 q5
a a
q0 a q1 b q2 q3
Fall 2005 Costas Busch - RPI 69
* q0 , ab q2 , q3 , q0
q4 q5
a a
q0 a q1 b q2 q3
Fall 2005 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
* q0 , aa q4 , q5 aa L(M )
F
Fall 2005 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
Fall 2005 Costas Busch - RPI 73
F q0 ,q5
q4 q5
a a
q0 a q1 b q2 q3
L M ab * ab * {aa }
q0
qk qk F
w2
w3 qj
Definition:
if L M 1 L M 2
DFA M2 0,1
0
L M 2 {10} *
q0 q1 1 q2
1
0
Fall 2005 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
Fall 2005 Costas Busch - RPI 82
We will show:
Languages
accepted Regular
Languages
by NFAs
Languages
accepted Regular
Languages
by NFAs
Languages
accepted Regular
Languages
by NFAs
Languages
accepted Regular
Languages
by NFAs
DFA M
q0
DFA M
q0 a
q1, q2
DFA M
q0 a
q1, q2
b
Fall 2005 Costas Busch - RPI 88
Convert NFA to DFA
a
NFA M
q a q 0
q 1 2
b
a
DFA M
q0 a
q1, q2
b
Fall 2005 Costas Busch - RPI 89
Convert NFA to DFA
a
NFA M
q a q 0
q 1 2
b
b a
DFA M
q0 a
q1, q2
b
Fall 2005 Costas Busch - RPI 90
Convert NFA to DFA
a
NFA M
q a q 0
q 1 2
b
b a
DFA M
q0 a
q1, q2
b
a, b
Fall 2005 Costas Busch - RPI 91
Convert NFA to DFA
a
NFA M
q a q 0
q 1 2
b
L M L(M )
a
DFA M b
q0 a
q1, q2
b
a, b
Fall 2005 Costas Busch - RPI 92
NFA to DFA: Remarks
We want to convert it
to an equivalent DFA M
With L M L(M )
Fall 2005 Costas Busch - RPI 93
If the NFA has states
q0 , q1, q2 ,...
DFA M
q0
DFA M
q0 a
q1, q2
q0 , a q1, q2
Fall 2005 Costas Busch - RPI 98
Procedure NFA to DFA
b a
DFA M
q0 a
q1, q2
b
a, b
Fall 2005 Costas Busch - RPI 100
Procedure NFA to DFA
3. For any DFA state {qi , q j ,..., qm }
q0 a
q1, q2
b q1, q2 F
a, b
Fall 2005 Costas Busch - RPI 102
Theorem
Take NFA M
L M L M
L M L M
L M L M AND L M L M
NFA M: q0 w qf
w 1 2 k
1 2 k
NFA M: q0 qf
denotes
i
qi qj
w 1 2 k
1 2 k
NFA M: q0 qf
then
1 2 k
DFA M:
{q0 } {q f ,}
w L(M )
Fall 2005 Costas Busch - RPI 108
More generally, we will show that if in M:
(arbitrary string) v a1a2 an
a1 a2 an
NFA M: q0 qi qj ql qm
then
a1 a2 an
DFA M:
{q0} {qi ,} {q j ,} {ql ,} {qm ,}
Induction Basis: v a1
a1
NFA M: q0 qi
a1
DFA M:
{q0 } {qi ,}
a1 a2 ak
DFA M:
{q0} {qi ,} {q j ,} {qc ,} {qd ,}
a1 a2 ak
M: q0 qi qj qc qd
NFA
v
a1 a2 ak
DFA M:
{q0 } {qi ,} {q j ,} {qc ,} {qd ,}
a1 a2 ak ak 1
NFA M: q0 qi qj qc qd qe
v
a1 a2 ak ak 1
DFA M:
{q0} {qi ,} {q j ,} {qc ,} {qd ,} {qe ,}
Fall 2005
v
Costas Busch - RPI 113
Therefore if w L(M )
w 1 2 k
1 2 k
NFA M: q0 qf
then
1 2 k
DFA M:
{q0 } {q f ,}
w L(M )
Fall 2005 Costas Busch - RPI 114
We have shown: L M L M