Non Deterministic Automata
Non Deterministic Automata
Non Deterministic Automata
3
q
23
a
b
0
q
1
q
2
q
a
b
3
q
24
0
q
2
q
a
b
3
q
a
b
1
q
25
a
b
0
q
1
q
a
b
3
q
2
q
26
a
b
0
q
1
q
a
b
3
q
2
q
accept
27
0
q
a
b
a
b
Another String
a
b
1
q
2
q
3
q
28
0
q
a
b
a
b
a
b
1
q
2
q
3
q
29
0
q
a
b
a
b
a
b
1
q
2
q
3
q
30
0
q
a
b
a
b
a
b
1
q
2
q
3
q
31
0
q
a
b
a
b
a
b
1
q
2
q
3
q
32
0
q
a
b
a
b
a
b
1
q
2
q
3
q
33
0
q
a
b
a
b
a
b
1
q
2
q
3
q
34
a
b
a
b
0
q
a
b
1
q
2
q
3
q
accept
35
{ }
{ }
+
=
=
ab
ababab abab ab L ... , , ,
Language accepted
0
q
1
q
2
q
a
b
3
q
36
Another NFA Example
0
q
1
q
2
q
0
1
1 , 0
37
{ }
{ }* 10
... , 101010 , 1010 , 10 ,
=
= L
0
q
1
q
2
q
0
1
1 , 0
Language accepted
38
Formal Definition of NFAs
( ) F q Q M , , , ,
0
o E =
: Q
: o
:
0
q
: F
Set of states, i.e.
{ }
2 1 0
, , q q q
: E
Input aplhabet, i.e. { } b a,
Transition function
Initial state
Final states
39
( ) { }
1 0
1 , q q = o
0
1
1 , 0
Transition Function
0
q
1
q
2
q
o
40
0
q
0
1
1 , 0
} , { ) 0 , (
2 0 1
q q q = o
1
q
2
q
41
0
q
0
1
1 , 0
1
q
2
q
} , { ) , (
2 0 0
q q q = o
42
0
q
0
1
1 , 0
1
q
2
q
C = ) 1 , (
2
q o
43
Extended Transition Function
* o
0
q
5
q
4
q
3
q
2
q
1
q
a
a a
b
( ) { }
1 0
, * q a q = o
44
( ) { }
5 4 0
, , * q q aa q = o
0
q
5
q
4
q
3
q
2
q
1
q
a
a a
b
45
( ) { }
0 3 2 0
, , , * q q q ab q = o
0
q
5
q
4
q
3
q
2
q
1
q
a
a a
b
46
Formally
( ) w q q
i j
, * o e It holds
if and only if
there is a walk from to
with label
i
q
j
q
w
47
The Language of an NFA
0
q
5
q
4
q
3
q
2
q
1
q
a
a a
b
( ) { }
5 4 0
, , * q q aa q = o
M
) (M L aae
{ }
5 0
, q q F =
48
0
q
5
q
4
q
3
q
2
q
1
q
a
a a
b
( ) { }
0 3 2 0
, , , * q q q ab q = o ( ) M L abe
{ }
5 0
, q q F =
49
0
q
5
q
4
q
3
q
2
q
1
q
a
a a
b
{ }
5 0
, q q F =
( ) { }
5 4 0
, , * q q abaa q = o
) (M L aabae
50
0
q
5
q
4
q
3
q
2
q
1
q
a
a a
b
{ }
5 0
, q q F =
( ) { }
1 0
, * q aba q = o
( ) M L abae
51
0
q
5
q
4
q
3
q
2
q
1
q
a
a a
b
( ) { } { } { } { } aa ab ab aa M L
+
= *
52
Formally
The language accepted by NFA is:
where
and there is some
M
( ) { } ,... , ,
3 2 1
w w w M L =
,...} , { ) , ( *
0 j i m
q q w q = o
F q
k
e (final state)
53
0
q
k
q
w
w
w
) , ( *
0
w q o ( ) M L we
F q
k
e
i
q
j
q
54
Equivalence of NFAs and DFAs
55
Equivalence of Machines
For DFAs or NFAs:
Machine is equivalent to machine
if
1
M
2
M
( ) ( )
2 1
M L M L =
56
Example
0
q
1
q
2
q
0
1
1 , 0
0
q
1
q
2
q
0
1
1
0
1 , 0
NFA
DFA
( ) * } 10 {
1
= M L
( ) * } 10 {
2
= M L
1
M
2
M
57
Since
machines and are equivalent
( ) ( ) { }* 10
2 1
= = M L M L
1
M
2
M
0
q
1
q
2
q
0
1
1 , 0
0
q
1
q
2
q
0
1
1
0
1 , 0
DFA
NFA
1
M
2
M
58
Equivalence of NFAs and DFAs
Question: NFAs = DFAs ?
Same power?
Accept the same languages?
59
Equivalence of NFAs and DFAs
Question: NFAs = DFAs ?
Same power?
Accept the same languages?
YES!
60
We will prove:
Languages
accepted
by NFAs
Languages
accepted
by DFAs
=
61
We will prove:
Languages
accepted
by NFAs
Languages
accepted
by DFAs
=
NFAs and DFAs have the same
computation power
62
Languages
accepted
by NFAs
Languages
accepted
by DFAs
_
Step 1
63
Languages
accepted
by NFAs
Languages
accepted
by DFAs
_
Step 1
Proof:
Every DFA is also an NFA
64
Languages
accepted
by NFAs
Languages
accepted
by DFAs
_
Step 1
Proof:
Every DFA is also an NFA
A language accepted by a DFA
is also accepted by an NFA
65
Languages
accepted
by NFAs
Languages
accepted
by DFAs
_
Step 2
66
Languages
accepted
by NFAs
Languages
accepted
by DFAs
_
Step 2
Proof:
Any NFA can be converted to an
equivalent DFA
67
Languages
accepted
by NFAs
Languages
accepted
by DFAs
_
Step 2
Proof:
Any NFA can be converted to an
equivalent DFA
A language accepted by an NFA
is also accepted by a DFA
68
NFA to DFA
a
b
a
0
q
1
q
2
q
NFA
DFA
{ }
0
q
69
NFA to DFA
a
b
a
0
q
1
q
2
q
NFA
DFA
{ }
0
q
{ }
2 1
, q q
a
70
NFA to DFA
a
b
a
0
q
1
q
2
q
NFA
DFA
{ }
0
q
{ }
2 1
, q q
a
C
b
71
NFA to DFA
a
b
a
0
q
1
q
2
q
NFA
DFA
{ }
0
q
{ }
2 1
, q q
a
C
b
a
72
NFA to DFA
a
b
a
0
q
1
q
2
q
NFA
DFA
{ }
0
q
{ }
2 1
, q q
a
C
b
a
b
73
NFA to DFA
a
b
a
0
q
1
q
2
q
NFA
DFA
{ }
0
q
{ }
2 1
, q q
a
C
b
a
b
b a,
74
NFA to DFA
a
b
a
0
q
1
q
2
q
NFA
DFA
{ }
0
q
{ }
2 1
, q q
a
C
b
a
b
b a,
75
NFA to DFA: Remarks
We are given an NFA
We want to convert it
to an equivalent DFA
With
M
M
'
( ) ) (M L M L
'
=
76
If the NFA has states
the DFA has states in the powerset
,... , ,
2 1 0
q q q
{ } { } { } { },.... , , , , , , ,
7 4 3 2 1 1 0
q q q q q q q C
77
Procedure NFA to DFA
1. Initial state of NFA:
Initial state of DFA:
0
q
{ }
0
q
78
Example
a
b
a
0
q
1
q
2
q
NFA
DFA
{ }
0
q
79
Procedure NFA to DFA
2. For every DFAs state
Compute in the NFA
Add transition
} ,..., , {
m j i
q q q
( )
( )
...
, , *
, , *
a q
a q
j
i
o
o
} ,..., , {
m j i
q q q
' ' '
( ) } ,..., , { }, ,..., , {
m j i m j i
q q q a q q q
' ' '
= o
=
80
Exampe
a
b
a
0
q
1
q
2
q
NFA
{ }
0
q
{ }
2 1
, q q
a
DFA
} , { ) , ( *
2 1 0
q q a q = o
{ } ( ) { }
2 1 0
, , q q a q = o
81
Procedure NFA to DFA
Repeat Step 2 for all letters in alphabet,
until
no more transitions can be added.
82
Example
a
b
a
0
q
1
q
2
q
NFA
DFA
{ }
0
q
{ }
2 1
, q q
a
C
b
a
b
b a,
83
Procedure NFA to DFA
3. For any DFA state
If some is a final state in the NFA
Then,
is a final state in the DFA
} ,..., , {
m j i
q q q
j
q
} ,..., , {
m j i
q q q
84
Example
a
b
a
0
q
1
q
2
q
NFA
DFA
{ }
0
q
{ }
2 1
, q q
a
C
b
a
b
b a,
F q e
1
{ } F q q
'
e
2 1
,
85
Theorem
Take NFA
M
Apply procedure to obtain DFA M
'
Then and are equivalent :
M
M
'
( ) ( ) M L M L
'
=
86
Finally
We have proven
Languages
accepted
by NFAs
Languages
accepted
by DFAs
=
87
Languages
accepted
by NFAs
Languages
accepted
by DFAs
=
We have proven
Regular Languages
88
Languages
accepted
by NFAs
Languages
accepted
by DFAs
=
We have proven
Regular Languages
Regular Languages