Professional Documents
Culture Documents
Non Deterministic Automata: Costas Busch - RPI 1
Non Deterministic Automata: Costas Busch - RPI 1
Alphabet = {a}
q1 a q2
a
q0
a
q3
Alphabet = {a}
Two choices q1 a q2
a
q0
a
q3
Alphabet = {a}
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”
AND
all the input is consumed and the automaton
is in a final state
“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
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
“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
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
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
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
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
•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}
Costas Busch - RPI 62
Formal Definition of NFAs
M Q, , , q0 , F
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
* 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
L M ab * {aa}
q0
qk qk F
w
w qj
if L M 1 L M 2
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
Languages
accepted Regular
Languages
by NFAs
DFA M
q0
DFA M
q0 a
q1, q2
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 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 ,...
DFA M
q0
DFA M
q0 a
q1, q2
q0 , a q1, q2
Costas Busch - RPI 97
Procedure NFA to DFA
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 }
q0 a
q1, q2
b q1, q2 F
a, b
Costas Busch - RPI 101
Theorem
Take NFA M
L M L M
L M L M
L M L M AND L M L M
M: q0 w qf
w 1 2 k
1 2 k
M: q0 qf
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 ,}
Induction Basis: v a1
a1
M: q0 qi
a1
M:
{q0 } {qi ,}
a1 a2 ak
M:
{q0} {qi ,} {q j ,} {qc ,} {qd ,}
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 vak 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
(proof is similar)