ppt - Department of Computer Science and Engineering, CUHK

advertisement
Fall 2009
Examples for Finite Automata
CSC3130 Tutorial One
Xiao Linfu
lfxiao@cse.cuhk.edu.hk
Department of Computer Science &
Engineering
Outline
• DFA example
• NFA example
• NFA to DFA conversion
• Regular Expressions
DFA
• For every string x, there is a unique path from initial
state and associated with x.
x
• x is accepted if and only if this path ends at a accept
state.
NFA
• For any string x, there may exist none or more
than one path from initial state and associated with
x.
• x is accepted if there is some path that ends at a
accept state.
Strings With Common Prefix
• Construct a DFA that accepts a language L over  =
{0, 1} such that L is the set of all strings starting with
“101”.
0,1
start
q0
1
0
q1
1
q2
1
0
absorbing
state
0
q4
0,1
q3
dead
state
Strings With Common Suffix
• Construct a DFA that accepts a language L over  =
{0, 1} such that L is the set of all strings ending with
“101”.
0
0
start
q0
1
1
q1
0
q10
1
0
1
q101
NFA for Common Suffix
• We can have a simpler representation for common
suffix language using NFA:
1,0
start
1
0
q0
1
q1
q2
q3
• Use subset construction to convert it to a DFA.
0
0
start
1
q0
1
q0q1
0
q0q2
1
0
1
q0q1q3
compare with
previous DFA
NFA Example
• Construct NFAs for the following languages over the
alphabet {a, b, …, z}:
– All strings that contain eat or sea or easy
all
start
e
a
q1
q0
q2
s
q3
y
q4
s
e
q5
all
t
a
q6
NFA Example
• Construct NFA for the language over the alphabet {a,
b, …, z} such that every string doesn’t contain “fool”.
not ‘f’
‘f’
‘f’
dead
state
‘f’
start
‘f’
q0
‘o’
q1
not ‘f’,‘o’
‘o’
not ‘f’,‘o’
q2
‘l’
q2
not ‘f’,‘l’
q3
Regular Expressions
- Alphabet X = {a, b, c, d}
1) (a + b)*
all strings containing only a and b
2) c(a + b + c)*c2
all strings containing only a, b, and c that begin with c and
end with cc
3) all strings containing only one b
(a+c+d)*b(a+c+d)*
Regular Expressions
- Alphabet X = {0, 1}
1) (0 + 1)*
the set of all binary strings
2) 031*04
all strings consisting of three 0’s, followed by any number
of 1’s, followed by four 0’s
3) 0*1001*
all strings starting with any number of 0’s, followed by
100, followed by and number of 1’s
Thank you!
Download