+ All Categories
Home > Documents > Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

Date post: 30-Dec-2015
Category:
Upload: emery-wright
View: 244 times
Download: 5 times
Share this document with a friend
Popular Tags:
40
Deterministic Finite State Machines Chapter 5
Transcript
Page 1: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

Deterministic Finite State Machines

Chapter 5

Page 2: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

Languages and Machines

2

Page 3: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

Regular Languages

Regular Language

Regular Expression

Finite State Machine

L

Accepts

3

Page 4: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

Finite State Machines

Vending Machine: An FSM to accept $.50 in change

Drink is 25 centsNo more than 50 cents can be deposited

X

Other FSM examples?4

Page 5: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

Definition of a DFSM

M = (K, , , s, A), where:

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 ) to Kstate input symbol state

Quintuple

Cartesian product

5

Page 6: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

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

Page 7: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

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

Page 8: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

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

Page 9: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

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

Page 10: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

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

Page 11: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

An Example Computation

An FSM to accept odd integers: even odd

even

q0 q1

odd

On input 235, the configurations are:

(q0, 235) |-M (q0, 35)|-M

|-M

Thus (q0, 235) |-M* (q1, ) 11

Page 12: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

Regular Languages

A language is regular iff it is accepted by some FSM.

12

Page 13: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

A Very Simple Example

L = {w {a, b}* : every a is immediately followed by a b}.

13

Page 14: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

A Very Simple Example

L = {w {a, b}* : every a is immediately followed by a b}.

14

Page 15: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

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

Page 16: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

Parity Checking

L = {w {0, 1}* : w has odd parity}.

16

Page 17: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

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

Page 18: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

No More Than One b

L = {w {a, b}* : w contains no more than one b}.

18

Page 19: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

No More Than One b

L = {w {a, b}* : w contains no more than one b}.

M = (K, , , s, A)

19

Page 20: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

Checking Consecutive Characters

L = {w {a, b}* :

no two consecutive characters are the same}.

20

Page 21: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

Checking Consecutive Characters

L = {w {a, b}* :

no two consecutive characters are the same}.

21

Page 22: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

Dead States

L = {w {a, b}* : every a region in w is of even length}

22

Page 23: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

Dead States

L = {w {a, b}* : every a region in w is of even length}

M = (K, , , s, A)

23

Page 24: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

Dead States

L = {w {a, b}* : every b in w is surrounded by a’s}

24

Page 25: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

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

Page 26: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

A Simple Communication Protocol

26

Page 27: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

Controlling a Soccer-Playing Robot

27

Page 28: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

A Simple Controller

28

Page 29: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

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

Page 30: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

Even a’s Odd b’s

30

Page 31: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

Vowels in Alphabetical Order

L = {w {a - z}* : all five vowels, a, e, i, o, and u,

occur in w in alphabetical order}.

31

Page 32: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

Vowels in Alphabetical Order

L = {w {a - z}* : all five vowels, a, e, i, o, and u,

occur in w in alphabetical order}.

O

u

32

Page 33: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

Programming FSMs

L = {w {a, b}* : w does not contain the substring aab}.

33

Page 34: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

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

Page 35: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

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

Page 36: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

A Building Security System

L = {event sequences such that the alarm should sound}

36

Page 37: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

FSMs Predate Computers

The Prague Orloj, originally built in 1410

The Chinese Abacus,14 century AD

The Jacquard Loom, invented in 1801

37

Page 38: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

Finite State Representations in Software Engineering

A high-level state chart model of a digital watch.

38

Page 39: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

Making the Model Hierarchical

39

Page 40: Deterministic Finite State Machines Chapter 5. Languages and Machines 2.

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


Recommended