Title: CSC 3130: Automata theory and formal languages
1Fall 2009
The Chinese University of Hong Kong
CSC 3130 Automata theory and formal languages
NFA to DFA conversionand regular expressions
Andrej Bogdanov http//www.cse.cuhk.edu.hk/andrej
b/csc3130
2NFAs are as powerful as DFAs
- Obviously, an NFA can do everything a DFA can do
- But can it do more?
- Theorem
NO!
If a language L is accepted by some NFA, thenit
is also accepted by some DFA.
3Proof of theorem
- We will show a general way to convert every NFA
into an equivalent DFA - Step 1 Simplify NFA by eliminating e-transitions
- Step 2 Convert simplified NFA (without es)
We do this first
4NFA to DFA conversion intuition
0, 1
1
0
NFA
q0
q1
q2
0
0
1
0
DFA
q0 or q1
q0 or q2
q0
1
1
5NFA to DFA conversion intuition
0, 1
1
0
NFA
q0
q1
q2
0
0
1
0
DFA
q0, q1
q0, q2
q0
1
1
6General method
7Why the method works
- At the end, the DFA accepts when it is in a state
that contains some accepting state of NFA - So the DFA accepts only when the NFA accepts too
After reading n symbols, the DFA is in state
qi1,,qik if and only if the NFA is in one of
the states qi1,,qik
8Converting via the general method
0, 1
1
0
NFA
q0
q1
q2
DFA
9Converting via the general method
After eliminating the dead states and
transitions, we end up with the same picture
0
1
1
q0, q1
q0
1
0, 1
0
0
1
0
1
q0, q2
q0, q1, q2
Æ
q1
0
0, 1
0
q1, q2
q2
1
10Proof of theorem
- We will show a general way to convert every NFA
into an equivalent DFA - Step 1 Simplify NFA by eliminating e-transitions
- Step 2 Convert simplified NFA (without es)
11Eliminating e-transitions
0
?, 1
?
q0
q1
q2
eNFA
0
Transition table of corresponding NFA
inputs
0
1
q0
q1, q2
q0, q1, q2
q1
q0, q1, q2
Æ
states
q2
Æ
Æ
q0, q1, q2
Accepting states of NFA
12Eliminating e-transitions
0
?, 1
?
q0
q1
q2
NFA
0
0
0
0, 1
0
NFA without es
q0
q1
q2
0
0, 1
13Eliminating e-transitions General method
- For every state qi and every symbol a ÃŽ S,
replace every path out of qi like - For every accept state qf, make accepting all
states connected to it via es
q4
14Regular expressions
15Operations on strings
- Given two strings s a1an and t b1bm, we
define their concatenation st a1anb1bm - We define sn as the concatenation sss n times
s abb, t cba st abbcba
s 011 s3 011011011
16Operations on languages
- The concatenation of languages L1 and L2 is
- Similarly, we write Ln for LLL (n times)
- The union of languages L1 ? L2 is the set of all
strings that are in L1 or in L2 - Example L1 01, 0, L2 e, 1, 11, 111, .
What is L1L2 and L1 ? L2?
L1L2 st s ? L1, t ? L2
17Operations on languages
- The star (Kleene closure) of L are all strings
made up of zero or more chunks from L - This is always infinite, and always contains e
- Example L1 01, 0, L2 e, 1, 11, 111, .
What is L1 and L2?
L L0 ? L1 ? L2 ?
18Constructing languages with operations
- Lets fix an alphabet, say S 0, 1
- We can construct languages by starting with
simple ones, like 0, 1 and combining them
0(0?1)all strings that start with 0
0(01)
(01)?(10)
0110
19Regular expressions
- A regular expression over S is an expression
formed using the following rules - The symbol Æ is a regular expression
- The symbol e is a regular expression
- For every a ? S, the symbol a is a regular
expression - If R and S are regular expressions, so are RS,
RS and R.
A language is regular if it is represented by a
regular expression
20Examples
S 0, 1
01
0(1)
0, 01, 011, 0111,
0 followed by any number of 1s
(01)(01)
001, 0101, 01101, 011101,
0 followed by any number of 1s and then 01
21Examples
strings of length 1
01
0, 1
(01)
e, 0, 1, 00, 01, 10, 11,
any string
(01)010
any string that ends in 010
(01)01(01)
any string that contatins the pattern 01
22Examples
((01)(01))((01)(01)(01))
all strings whose length is even or divisible by
3 strings of length 0, 2, 3, 4, 6, 8, 9, 10,
12, ...
((01)(01))
strings of even length
(01)(01)
strings of length 2
((01)(01)(01))
strings of length divisible by 3
(01)(01)(01)
strings of length 3
23Examples
((01)(01)(01)(01)(01))
strings that can be broken in blocks, where each
block has length 2 or 3
(01)(01)(01)(01)(01)
strings of length 2 or 3
(01)(01)
strings of length 2
(01)(01)(01)
strings of length 3
24Examples
((01)(01)(01)(01)(01))
strings that can be broken in blocks, where each
block has length 2 or 3
00110
10
011
e
1
011010110
?
?
?
?
?
?
this includes all strings except those of length 1
((01)(01)(01)(01)(01))
all strings except 0 and 1
25Examples
(101001)(?000)
ends in at most two 0s
there can be at most two 0s betweenconsecutive 1s
there are never three consecutive 0s
Guess (101001)(?000) x x does not
contain 000
0110010110
0010010
00
e
26Examples
- Write a regular expression forall strings with
two consecutive 0s.
S 0, 1
(anything) 00 (anything else)
(01)00(01)
27Examples
- Write a regular expression forall strings that
do not contain two consecutive 0s.
S 0, 1
0110101101010
blocks ending in 1
last block
(1 01)
... at most one 0 in every block ending in 1
(e 0)
... and at most one 0 in the last block
(1 01)(e 0)
28Examples
- Write a regular expression forall strings with
an even number of 0s.
S 0, 1
even number of zeros (two zeros)
two zeros 10101
(10101)
29Main theorem for regular languages
A language is regular if and only if it is the
language of some DFA
NFA
regularexpression
DFA
regular languages
30Road map
?
?
NFA
regularexpression
NFAwithout e
DFA
31Examples regular expression ? NFA
M2
32General method
NFA
regular expr
Æ
q0
q0
e
a
q0
q1
symbol a
?
?
?
RS
q0
q1
MS
MR
33General method continued
NFA
regular expr
MR
?
?
q0
q1
R S
?
?
MS
?
?
?
?
R
q0
q1
MR
34Road map
?
?
?
NFA
regularexpression
NFAwithout e
DFA