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 Finite State Machines & Regular Languages Chapter 5B Pages 72 - ?? 2 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 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 Epsilon Closure Example eps(S) = {q3} eps(q1) = {q2} eps(q2) = { } eps(q3) = { } q1 a S b q2 b q3 5 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 Expanded Epsilon Closure q1 a S b q2 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} q3 7 An Example of eps eps(q0) = eps(q1) = eps(q2) = eps(q3) = 8 Algorithm Simulating a NDFSM But 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 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 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 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 DFSM 12 Expanded Epsilon Closure a b S q1 q1 q2 a q3 S b q2q2 b q3 13 Expanded Epsilon Closure q1 a S b q2 q2 a b S 1,2 2 1 ~ ~ 2 ~ ~ 3 ~ 2 1,2 ~ ~ b q3 14 Expanded Epsilon Closure Are the machines equivalent? Is the new DFSM Efficient? Minimal? q1 a b S 1,2 2 1 ~ ~ 2 ~ ~ 3 ~ 2 1,2 ~ ~ a S b 12 12 q2 q2 a s b q3 b 22 15 An Example Compare our table method to that of the author’s on page 76+ 16 Another Example L = {w {a, b}* : the fourth character from the end is a} 17 What Happens if the Original FSM is Already Deterministic ? 18 The Real Meaning of “Determinism” Let M = 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. 19 Deterministic FSMs as Algorithms L = {w {a, b,c}* : w contains at most one b} 20 Deterministic FSMs as Algorithms until accept or reject do: S: s = get-next-symbol if s = end-of-file then accept else if s = a then go to S else if s = b then go to T T: s = get-next-symbol if s = end-of-file then accept else if s = a then go to T else if s = b then reject end But you have to write a new program for each different machine 21 Time Complexity • Length of Program: |K| (|| + 2) • Time required to analyze string w: O(|w| ||) • Explain!! 22 Simulator for DFSM Section 5.6 • Could we develop one? • What would it entail? 23 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 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 Collapsing States 1 a b The front part of the machine 2 c 3 d 4 Do you agree that we could combine states 1 & 4 and also states 2 & 3? 26 Collapsing States 14 a d The front part of the machine b c 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. 27 Another Collapse Example 12 a s q1 2 b a S b q2 q2 a,b s 1 b q3 28 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 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 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 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 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 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 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 Homework for 5B Page 123+ Problems 7 - 12 8 - can draw NDFSM & convert if you need to 9 – use method discussed in class 11 – Draw DFSM – minimize if necessary See posted handout for minimization problems. 36