CMPS 3223 Theory of Computation

36
CMPS 3223 Theory of Computation Automata, Computability, & Complexity by Elaine Rich ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Slides provided by author Slides edited for use by MSU Department of Computer Science – R. Halverson 1

description

CMPS 3223 Theory of Computation. Automata, Computability, & Complexity by Elaine Rich ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Slides provided by author Slides edited for use by MSU Department of Computer Science – R. Halverson. Finite State Machines & Regular Languages. - PowerPoint PPT Presentation

Transcript of CMPS 3223 Theory of Computation

Page 1: CMPS 3223 Theory of Computation

CMPS 3223Theory of Computation

Automata, Computability, & Complexityby Elaine Rich

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Slides provided by authorSlides edited for use by MSU Department of

Computer Science – R. Halverson1

Page 2: CMPS 3223 Theory of Computation

Finite State Machines& Regular Languages

Chapter 5BPages 72 - ??

2

Page 3: CMPS 3223 Theory of Computation

Sections to Omit from Study

• P. 73 – A simulation algorithm• 5.4 – Will use method discussed in

class, not Theorem 5.3• 5.5, 5.6 – Omit• 5.7 – Omit• 5.7.1 – Learn definitions only• 5.8 - 5.12 - Omit

3

Page 4: CMPS 3223 Theory of Computation

Epsilon Transitions ()

• An Epsilon Transition is a transition that allows movement from one state to another without consuming a character of input string

• Epsilon Closure: eps(q) = set of states accessible from state q by epsilons

• eps(q) = {p K : (q, w) |-*M (p, w)}

4

Page 5: CMPS 3223 Theory of Computation

Epsilon Closure Example

5

S

q1

q3

q2

a

b

eps(S) = {q3} eps(q2) = { }eps(q1) = {q2} eps(q3) = { }

b

Page 6: CMPS 3223 Theory of Computation

Epsilon Transitions ()

• Simple epsilon closure has limited use• Need an expanded closure…eps(q,a) = {p K : (q, aw) |-*M (p, w)}

= set of all states accessible from state q by consuming only character a

6

Page 7: CMPS 3223 Theory of Computation

Expanded Epsilon Closure

7

S

q1

q3

q2

a

b

eps(S,a) = {q1,q2,q3}eps(q2,a) = { }eps(q1,a) = { }eps(q3,a) = { }

eps(S,b) = {q2}eps(q2,b) = { }eps(q1,b) = { }eps(q3,b) = {q2}

b

Page 8: CMPS 3223 Theory of Computation

An Example of eps

eps(q0) = eps(q1) =eps(q2) =eps(q3) = 8

Page 9: CMPS 3223 Theory of Computation

Algorithm Simulating a NDFSMBut why do this??

Convert NDFSM to DFSM

ndfsmsimulate(M: NDFSM, w: string) = 1. current-state = eps(s).2. While any input symbols in w remain to be read do:

1. c = get-next-symbol(w).2. next-state = .3. For each state q in current-state do:

For each state p such that (q, c, p) do: next-state = next-state eps(p).

4. current-state = next-state.3. If current-state contains any states in A, accept. Else reject. 9

Page 10: CMPS 3223 Theory of Computation

5.4.4 Nondeterministic and Deterministic FSMs

Clearly: {Languages accepted by a DFSM}

{Languages accepted by a NDFSM}

More interestingly: Theorem: For each NDFSM, there is an equivalent DFSM.

What is meant by “proof by construction”?

10

Page 11: CMPS 3223 Theory of Computation

Nondeterministic to Deterministic FSM

Theorem: For each NDFSM, there is an equivalent DFSM.Proof: By construction:

Given a NDFSM M = (K, , , s, A), we construct M' = (K', , ', s', A'), where

K' = P(K)s' = eps(s)A' = {Q K : Q A }

'(Q, a) = {eps(p): p K and (q, a, p) for some q Q}

11

Page 12: CMPS 3223 Theory of Computation

An Algorithm for Constructing DFSM from NDFSM

1. Create a table with 1. A row for each state [s]2. A column for each alphabet character [c]

2. Fill in body of table with eps(s,c)3. If table contains any new combined states,

create a new row for each & repeat step 2, until no new states are created.

4. Draw DFSM from table starting with state S and using only accessible states

1. Final states in NDFSM will be final in DFSM12

Page 13: CMPS 3223 Theory of Computation

Expanded Epsilon Closure

13

S

q1

q3

q2

a

b

b

a bS

q1

q2

q3

q2

Page 14: CMPS 3223 Theory of Computation

Expanded Epsilon Closure

14

S

q1

q3

q2

a

b

b

a bS 1,2 2

1 ~ ~

2 ~ ~

3 ~ 2

1,2 ~ ~q2

Page 15: CMPS 3223 Theory of Computation

Expanded Epsilon Closure

15

S

q1

q3

q2

a

b

b

a bS 1,2 2

1 ~ ~

2 ~ ~

3 ~ 2

1,2 ~ ~

s

12

2

a

b

q212

2

Are the machines equivalent? Is the new DFSM Efficient?Minimal?

Page 16: CMPS 3223 Theory of Computation

An Example

16

Compare our table method to that of the author’s on page 76+

Page 17: CMPS 3223 Theory of Computation

Another Example

L = {w {a, b}* : the fourth character from the end is a}

17

Page 18: CMPS 3223 Theory of Computation

What Happens if the Original FSM is Already Deterministic ?

18

Page 19: CMPS 3223 Theory of Computation

The Real Meaning of “Determinism”

Is M deterministic?

An FSM is deterministic, in the most general definition of determinism, if, for each input and state, there is at most one possible transition.

• DFSMs are always deterministic. Why?• NDFSMs can be deterministic (even with -transitions and implicit dead states), but the formalism allows nondeterminism, in general.• Determinism implies uniquely defined machine behavior.

Let M =

19

Page 20: CMPS 3223 Theory of Computation

Deterministic FSMs as Algorithms

L = {w {a, b,c}* : w contains at most one b}

20

Page 21: CMPS 3223 Theory of Computation

Deterministic FSMs as Algorithms

until accept or reject do:S: s = get-next-symbol

if s = end-of-file then acceptelse if s = a then go to Selse if s = b then go to T

T: s = get-next-symbolif s = end-of-file then acceptelse if s = a then go to Telse if s = b then reject

end 21

But you have to write a new program for each different machine

Page 22: CMPS 3223 Theory of Computation

Time Complexity

• Length of Program: |K| (|| + 2)• Time required to analyze string w: O(|w| ||)

• Explain!!

22

Page 23: CMPS 3223 Theory of Computation

Simulator for DFSMSection 5.6

• Could we develop one?• What would it entail?

23

Page 24: CMPS 3223 Theory of Computation

Simulator for DFSM

What would it entail?2 Parts •Read in the graph

– How to represent the DFSM (graph)?– Build the table

•Read in the string– How to systematically process a string?

24

Page 25: CMPS 3223 Theory of Computation

Minimal DFSM Section 5.7.1

• Minimal DFSM: a DFSM is minimal iff there is no other DFSM which accepts the same language and has fewer states– Minimal refers to number of states– Relates to equivalence classes of strings &

substrings

25

Page 26: CMPS 3223 Theory of Computation

Collapsing States

26

a

b

c

d

The front part of the machine

1

2

3

4

Do you agree that we could combine states 1 & 4 and also states 2 & 3?

Page 27: CMPS 3223 Theory of Computation

Collapsing States

27

a

bc

d

The front part of the machine

14

23

You can ALSO collapse states at the initial end of the arrows.BUT, we need a clear strategy for determining which states can be collapsed.

Page 28: CMPS 3223 Theory of Computation

Another Collapse Example

28

S

q1

q3

q2

a

b

b

s

a

b

q2

12

2

sa,b

1

Page 29: CMPS 3223 Theory of Computation

Minimal DFSM Section 5.7.1

• Theorem 5.5: There exists a unique minimal DFSM for every regular language– There is no smaller machine (# of states)– If there is another machine with same number

of states, the machines are equivalent except for names of states

• There is an algorithm for developing the minimal DFSM. – First convert to deterministic, remove

29

Page 30: CMPS 3223 Theory of Computation

Algorithm Overview for Minimizing

• Group all states into 2 sets –Accepting & Rejecting–Process each set and split as

necessary–Continue until no sets can be split

• A set of one state is finished

30

Page 31: CMPS 3223 Theory of Computation

Building of Regular Languages

Fact: For every regular language, there exists a DFSM.Questions: If L & K are regular languages•Is L U K a regular language?•Is LK a regular language?•Is L* a regular language?•Is L+ a regular language?Can you prove it???

31

Page 32: CMPS 3223 Theory of Computation

Is L U K a regular language?• Since L & M are a regular languages, there

exist DFSMs M(L) & M(K) that recognize L & K.

• Each has a distinct Start State, SL & SK.• Create a new state S & -transition from S to

SL & SK.• The resulting machine is a NDFSM for L U K.• THUS, L U K is a regular language.

32

Page 33: CMPS 3223 Theory of Computation

Is LK a regular language?• Since L & M are a regular languages, there exist

DFSMs M(L) & M(K) that recognize L & K.• Each has a distinct Start State, SL & SK and

each has at least one final state F. • Create -transition from all final states in L to SK.• Convert all final states in L to non-final states• The resulting machine is a NDFSM for LK.• THUS, LK is a regular language.• What if epsilon is in L or in K?

33

Page 34: CMPS 3223 Theory of Computation

Is L* a regular language?

• Since L is a regular language, there exists DFSM M(L) that recognizes L.

• M(L) has a distinct Start State, and at least one final state F.

• If S is not a final state, make it a final state.• Create -transition from each final state (except

S) to S. (or create a new final state as before)• The resulting machine is a NDFSM for L*.• THUS, L* is a regular language.

34

Page 35: CMPS 3223 Theory of Computation

Is L+ a regular language?

• Since L is a regular language, there exists DFSM M(L) that recognizes L.

• M(L) has a distinct Start State, and at least one final state F.

• Create -transition from each final state to S.• The resulting machine is a NDFSM for L+.• THUS, L+ is a regular language.• Why not make S a final state?

35

Page 36: CMPS 3223 Theory of Computation

Homework for 5B

Page 123+Problems 7 - 12

8 - can draw NDFSM & convert if you need to9 – use method discussed in class11 – Draw DFSM – minimize if necessarySee posted handout for minimization problems.

36