finite state machines - bowdoin...
TRANSCRIPT
![Page 1: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/1.jpg)
Finite State Machines
Chapter 5
![Page 2: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/2.jpg)
Pattern Recognition• Pattern Recognition:
– Given a specified pattern string, and– a text string provided by the user, – output:
• �yes� if the text contains pattern• �no� if the text does not contain pattern
• DNA Example: – looking for �CTT� in string of characters {C, T, A, G}
• Use a Finite State Machine
![Page 3: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/3.jpg)
Finite State Machine (FSM)• Pattern matching:
– Number of states? |P| + 1
– Number of transitions? (|P| + 1) * (# chars in alphabet)
• Not so far from programming:
– Sequential execution
– Conditional execution
– Iterative execution
• NOTE: Assuming text is being read in one character at a
time, we only need memory to keep track of the state.
![Page 4: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/4.jpg)
Languages and Machines
![Page 5: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/5.jpg)
Regular Languages
Regular Language
Finite State Machine
Regular Expression
Regular Grammar
Generate
Accepts
![Page 6: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/6.jpg)
Finite State Machines• Deterministic (DFSM)• Nondeterministic (NDFSM)
![Page 7: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/7.jpg)
Definition of a DFSM
M = (K, S, d, s, A), where:
K is a finite set of states
S is an alphabet
s Î K is the initial state
A Í K is the set of accepting states, and
d is the transition function from (K ´ S) to K
![Page 8: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/8.jpg)
Accepting by a DFSM
Informally, M accepts a string w iff M is in an accepting state (a state in A) when it has finished reading w.
The language accepted by M, denoted L(M), is the set of all strings accepted by M.
![Page 9: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/9.jpg)
Configurations of DFSMsA configuration of a DFSM is an element of:
K ´ S*
It captures the two things that determine the DFSM’s future behavior:
• its current state• the input that is still left to read.
The initial configuration of a DFSM on input w is (s, w)
![Page 10: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/10.jpg)
The Yields RelationsThe yields-in-one-step relation |-M:
(q, w) |-M (q', w') iff• w = a w' for some symbol a Î S, and• d (q, a) = q'
The yields-in-zero-or-more-steps relation|-M * is the reflexive, transitive closure of |-M
![Page 11: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/11.jpg)
Computations Using FSMs
A computation byDFSM 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, e), for some state q Î KM,
• C0 |-M C1 |-M C2 |-M … |-M Cn.
![Page 12: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/12.jpg)
Accepting and RejectingA DFSM M accepts a string w iff:
(s, w) |-M * (q, e), for some q Î A.
A DFSM M rejects a string w iff:
(s, w) |-M* (q, e), 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.
![Page 13: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/13.jpg)
An Example ComputationAn FSM to accept odd integers:
even odd even
q0 q1
odd
On input 235, the configurations are:(q0, 235) |-M (q0, 35)(q0, 35) |-M (q1, 5)(q1, 5) |-M (q1, e) Thus (q0, 235) |-M* (q1, e)
![Page 14: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/14.jpg)
A Simple FSM Example
L = {w Î {a, b}* :
every a is immediately followed by a b}.
![Page 15: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/15.jpg)
Parity CheckingL = {w Î {0, 1}* : w has odd parity}.
![Page 16: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/16.jpg)
No More Than One bL = {w Î {a, b}* : w has no more than one b}.
![Page 17: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/17.jpg)
Checking Consecutive Characters
L = {w Î {a, b}* :
no two consecutive characters are the same}.
Exercise
![Page 18: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/18.jpg)
Checking Consecutive Characters
L = {w Î {a, b}* :
no two consecutive characters are the same}.
What’s the mistake?
![Page 19: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/19.jpg)
Even Segments of a�s
L = {w Î {a, b}* : every a region in w is of even length}
Exercise
![Page 20: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/20.jpg)
Even Segments of a�s
L = {w Î {a, b}* : every a region in w is of even length}
![Page 21: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/21.jpg)
Even # of a’s and Odd # of b’s
Let L = {w Î {a, b}* : w contains an even number of a�s and an odd number of b�s}
Exercise
![Page 22: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/22.jpg)
Even # of a’s and Odd # of b’s
![Page 23: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/23.jpg)
Programming FSMsL = {w Î {a, b}* : w does not contain the substring aab}.
Hint: Start with a machine for ¬L:
![Page 24: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/24.jpg)
Programming FSMsL = {w Î {a, b}* : w does not contain the substring aab}.
Start with a machine for ¬L:
How must it be changed?
![Page 25: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/25.jpg)
Homework• Chapter 5
2) a) e) i) (DFSM and NDFSM)
m) (DFSM and NDFSM)4) all
![Page 26: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/26.jpg)
Definition of an NDFSMM = (K, S, D, s, A), where:
K is a finite set of states
S is an alphabet
s Î K is the initial state
A Í K is the set of accepting states, and
D is the transition relation. It is a finite subset of
(K ´ (S È {e})) ´ K
![Page 27: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/27.jpg)
NDFSM Transitions
Transitions are more complicated:
• “epsilon” transitions, i.e. change state withoutreading a character of input
• multiple transitions from a state for a givencharacter
• no transition for a character from a state, i.e. the computation can “block”
![Page 28: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/28.jpg)
Sources of Nondeterminism
![Page 29: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/29.jpg)
Accepting by an NDFSM
M accepts a string w iff there exists some path that ends in an accepting state with the entire input read/consumed.
The language accepted by M, denoted L(M), is the set of all strings accepted by M.
Sometimes simpler and smaller than a DFSM that recognizes the same language.
![Page 30: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/30.jpg)
Analyzing Nondeterministic FSMs
Does this FSM accept:baaba
Remember: we just have to find one accepting path.
![Page 31: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/31.jpg)
NDFSM ExampleL = {w Î {a, b}* : w is made up of all a�s or all b�s}.
• DFSM?• NDFSM?
![Page 32: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/32.jpg)
Optional Substrings
L = {w Î {a, b}* : w is made up of an optional afollowed by aa followed by zero or more b�s}.
![Page 33: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/33.jpg)
Two ways to think about it:
1) Explore a search tree:
2) Follow all paths in parallel (sets of states M could be in)
Analyzing Nondeterministic FSMs
![Page 34: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/34.jpg)
Multiple SublanguagesL = {w Î {a, b}* : w = aba or |w| is even}.
![Page 35: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/35.jpg)
The Missing Letter Language
![Page 36: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/36.jpg)
Pattern MatchingL = {w Î {a, b, c}* : $x, y Î {a, b, c}* (w = x abcabb y)}.
A DFSM:
![Page 37: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/37.jpg)
Pattern MatchingL = {w Î {a, b, c}* : $x, y Î {a, b, c}* (w = x abcabb y)}.
An NDFSM:
![Page 38: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/38.jpg)
Multiple PatternsL = {w Î {a, b}* : $x, y Î {a, b}*
((w = x abbaa y) Ú (w = x baba y))}.
Exercise
![Page 39: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/39.jpg)
Multiple PatternsL = {w Î {a, b}* : $x, y Î {a, b}*
((w = x abbaa y) Ú (w = x baba y))}.
![Page 40: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/40.jpg)
Checking from the End
L = {w Î {a, b}* : the fourth to the last character is a}
Exercise
![Page 41: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/41.jpg)
Checking from the End
L = {w Î {a, b}* : the fourth to the last character is a}
![Page 42: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/42.jpg)
Homework• Chapter 5
2) a) e) i) (DFSM and NDFSM)
m) (DFSM and NDFSM)4) all5) all6) f
![Page 43: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/43.jpg)
Dealing with e Transitions
eps(q) = {p Î K : (q, w) |-*M (p, w)}.
eps(q) is the closure of {q} under the relation{(p, r) : there is a transition (p, e, r) Î D}.
![Page 44: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/44.jpg)
An Example of eps
eps(q0) = eps(q1) =eps(q2) =eps(q3) =
![Page 45: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/45.jpg)
An Example of eps
eps(q0) = { q0, q1, q2 }eps(q1) = { q1, q2 }eps(q2) = { q2 }eps(q3) = { q3 }
![Page 46: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/46.jpg)
Simulating an NDFSM
simulateNDFSM (NDFSM M, string w) = 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) Î D do:next-state = next-state È eps(p).
4. current-state = next-state.3. If current-state contains any states in A, accept. Else
reject.
![Page 47: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/47.jpg)
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.
HOW? (look back at “Simulating an NDFSM”)
![Page 48: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/48.jpg)
General Idea• Sets of states; takes care of:
– Epsilon transitions– Multiple transitions on same character
• Can take care of no transition situations with trap states• NOTE: The number of states in the DFSM can grow
exponentially!
![Page 49: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/49.jpg)
Nondeterministic and Deterministic FSMs
Theorem: For each NDFSM, there is an equivalent DFSM.
Proof: By construction:
Given a NDFSM M = (K, S, D, s, A), we construct M' = (K', S, d', s', A'), where:
K' = P(K)s' = eps(s)A' = {Q Í K : Q Ç A ¹ Æ}
d'(Q, a) = È{eps(p): p Î K and (q, a, p) Î D for some q Î Q}
![Page 50: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/50.jpg)
An Algorithm for Constructing the Deterministic FSM
1. Compute the eps(q)�s.
2. Compute s' = eps(s).
3. Compute d'.
4. Compute K' = a subset of P(K).
5. Compute A' = {Q Î K' : Q Ç A ¹ Æ}.
![Page 51: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/51.jpg)
The Algorithm NDFSMtoDFSMNDFSMtoDFSM (NDFSM M) =
1. For each state q in KM do:1.1 Compute eps(q).
2. s' = eps(s) 3. Compute d':
3.1 active-states = {s'}.3.2 d' = Æ.3.3 While there exists some element Q of active-states for
which d' has not yet been computed do:For each character c in SM do:
new-state = Æ.For each state q in Q do:
For each state p such that (q, c, p) Î D do:new-state = new-state È eps(p).
Add the transition (Q, c, new-state) to d'.If new-state Ï active-states then insert it.
4. K' = active-states.5. A' = {Q Î K' : Q Ç A ¹ Æ }.
![Page 52: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/52.jpg)
Exercise
L = {w Î {a, b}* : w is made up of an optional afollowed by aa followed by zero or more b�s}.
![Page 53: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/53.jpg)
Homework• Chapter 5
2) a) e) i) (DFSM and NDFSM)
m) (DFSM and NDFSM)4) all5) all6) f9) a
![Page 54: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/54.jpg)
Homework• Chapter 5
2) a) e) i) (DFSM and NDFSM)
m) (DFSM and NDFSM)4) all5) all6) f9) a
![Page 55: Finite State Machines - Bowdoin Collegesmajerci/teaching/cs2210/2019spring/lectures/Ch05aFSM.pdfFinite State Machines Chapter 5. Pattern Recognition •Pattern Recognition: –Given](https://reader035.vdocuments.us/reader035/viewer/2022070910/5fa5dd869600ad598f7723a1/html5/thumbnails/55.jpg)
Prove DFSM <-> NDFSM?• DFSM -> NDFSM?
– Trivial (why?)
• NDFSM -> DFSM?– Think about it for next time– Hint: Prove equivalent computation on any possible
string of any length