q - Winona State University

advertisement
Deterministic Finite State
Machines
Chapter 5
Languages and Machines
2
Regular Languages
L
Regular Expression
Regular
Language
Accepts
Finite State
Machine
3
Finite State Machines
Vending Machine: An FSM to accept $.50 in change
Drink is 25 cents
No more than 50 cents can be deposited
X
Other FSM examples?
4
Definition of a DFSM
M = (K, , , s, A), where:
Quintuple
K is a finite set of states
 is an alphabet
s  K is the initial state
A  K is the set of accepting states, and
 is the transition function from
(K

)
state
input symbol
to
K
state
 Cartesian product
5
Accepting by a DFSM
Informally, M accepts a string w iff M winds up in some
element of A when it has finished reading w.
The language accepted by M, denoted L(M), is the set
of all strings accepted by M.
6
Configurations of DFSMs
A configuration of a DFSM M is an element of:
K  *
It captures the two things that can make a difference to
M’s future behavior:
• its current state
• the input that is still left to read.
The initial configuration of a DFSM M, on input w, is:
(sM, w), where sM is the start state of M
7
The Yields Relations
The yields-in-one-step relation |-M :
(q, w) |-M (q', w') iff
• w = a w' for some symbol a  , and
•  (q, a) = q'
The relation yields, |-M*, is the reflexive, transitive
closure of |-M.
C1 |-M* C2 : M can go from C1 to C2 in 0 or more steps.
8
Computations Using FSMs
A computation by M is a finite sequence of
configurations C0, C1, …, Cn for some n  0 such
that:
• C0 is an initial configuration,
• Cn is of the form (q, ), for some state q  KM,
• C0 |-M C1 |-M C2 |-M … |-M Cn.
9
Accepting and Rejecting
A DFSM M accepts a string w iff:
(s, w) |-M * (q, ), for some q  A.
A DFSM M rejects a string w iff:
(s, w) |-M* (q, ), for some q  AM.
The language accepted by M, denoted L(M), is the
set of all strings accepted by M.
Theorem: Every DFSM M, on input s, halts in |s|
steps.
10
An Example Computation
An FSM to accept odd integers:
even
odd
even
q0
q1
odd
On input 235, the configurations are:
(q0, 235)
|-M
|-M
|-M
(q0, 35)
Thus (q0, 235) |-M* (q1, )
11
Regular Languages
A language is regular iff it is accepted by some
FSM.
12
A Very Simple Example
L = {w  {a, b}* : every a is immediately followed by a b}.
13
A Very Simple Example
L = {w  {a, b}* : every a is immediately followed by a b}.
14
A Very Simple Example
L = {w  {a, b}* : every a is immediately followed by a b}.
M = (K, , , s, A) = ({q0, q1, q2}, {a, b}, , q0, {q0}), where
 = {((q0, a), q1), ((q0, b), q0),
((q1, a), q2), ((q1, b), q0),
((q2, a), q2), ((q2, b), q2)}
15
Parity Checking
L = {w  {0, 1}* : w has odd parity}.
16
Parity Checking
L = {w  {0, 1}* : w has odd parity}.
M = (K, , , s, A) = ({q0, q1}, {0, 1}, , q0, {q1}), where
 = {((q0, 0), q0), ((q0, 1), q1),
((q1, 0), q1), ((q1, 1), q0)}
17
No More Than One b
L = {w  {a, b}* : w contains no more than one b}.
18
No More Than One b
L = {w  {a, b}* : w contains no more than one b}.
M = (K, , , s, A)
19
Checking Consecutive Characters
L = {w  {a, b}* :
no two consecutive characters are the same}.
20
Checking Consecutive Characters
L = {w  {a, b}* :
no two consecutive characters are the same}.
21
Dead States
L=
{w  {a, b}* : every a region in w is of even length}
22
Dead States
L=
{w  {a, b}* : every a region in w is of even length}
M = (K, , , s, A)
23
Dead States
L=
{w  {a, b}* : every b in w is surrounded by a’s}
24
The Language of Floating Point
Numbers is Regular
Example strings:
+3.0, 3.0, 0.3E1, 0.3E+1, -0.3E+1, -3E8
The language is accepted by the DFSM:
25
A Simple Communication Protocol
26
Controlling a Soccer-Playing Robot
27
A Simple Controller
28
Programming FSMs
Cluster strings that share a “future”.
Let L = {w  {a, b}* : w contains an even
number of a’s and an odd number of b’s}
What states are needed?
How many states are there?
29
Even a’s Odd b’s
30
Vowels in Alphabetical Order
L = {w  {a - z}* : all five vowels, a, e, i, o, and u,
occur in w in alphabetical order}.
31
Vowels in Alphabetical Order
L = {w  {a - z}* : all five vowels, a, e, i, o, and u,
occur in w in alphabetical order}.
u
O
32
Programming FSMs
L = {w  {a, b}* : w does not contain the
substring aab}.
33
Programming FSMs
L = {w  {a, b}* : w does not contain the substring aab}.
Start with a machine for L:
How must it be changed?
34
Programming FSMs
L = {w  {a, b}* : w does not contain the substring aab}.
Start with a machine for L:
How must it be changed?
35
A Building Security System
L = {event sequences such that the alarm
should sound}
36
FSMs Predate Computers
The Chinese Abacus,
14 century AD
The Jacquard Loom,
invented in 1801
The Prague Orloj,
originally built in 1410
37
Finite State Representations in
Software Engineering
A high-level state chart model of a digital watch.
38
Making the Model Hierarchical
39
The Missing Letter Language
Let  = {a, b, c, d}.
Let LMissing =
{w : there is a symbol ai   not appearing in w}.
Try to make a DFSM for LMissing:
40
Download