1 / 40

CSE 311 Foundations of Computing I

CSE 311 Foundations of Computing I. Lecture 27 FSM Limits, Pattern Matching Autumn 2012. Announcements. Reading assignments 7 th Edition, Section 13.4 6 th Edition, Section 12.4 5 th Edition, Section 11.4 Next week 7th edition: 2.5 (Cardinality) + p. 201 and 13.5

cade-ashley
Download Presentation

CSE 311 Foundations of Computing I

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CSE 311 Foundations of Computing I Lecture 27 FSM Limits, Pattern Matching Autumn 2012 CSE 311

  2. Announcements • Reading assignments • 7thEdition, Section 13.4 • 6th Edition, Section 12.4 • 5th Edition, Section 11.4 • Next week • 7th edition: 2.5 (Cardinality) + p. 201 and 13.5 • 6th edition: pp. 158-160 (Cardinality)+ p 177 and 12.5 • 5th edition: Pages 233-236 (Cardinality) and 11.5 • Topic list and sample final exam problems have been posted • Comprehensive final, roughly 67% of material post midterm • Review session, Saturday, December 8, 10 am – noon (tentatively) • Final exam, Monday, December 10 • 2:30-4:20 pm or 4:30-6:20 pm, Kane 220. • If you have a conflict, contact instructors ASAP CSE 311

  3. Last lecture highlights • NFAs from Regular Expressions (01 1)*0 0  1     0     1 CSE 311

  4. Last lecture highlights 0,1 0 • “Subset construction”: NFA to DFA  a,b a 1 0 1  1 1 b c 0 1 b c 0 0 0 0,1 1 b,c a,b,c 0 NFA DFA CSE 311

  5. Converting an NFA to a regular expression • Consider the DFA for the mod 3 sum • Accept strings from {0,1,2}* where the digits mod 3 sum of the digits is 0 0 t1 1 1 2 2 0 2 0 t0 t2 1 CSE 311

  6. Splicing out a node • Label edges with regular expressions 0 t0→t1→t0 : 10*2 t0→t1→t2: 10*1 t2→t1→t0: 20*2 t2→t1→t2 : 20*1 t1 1 1 2 2 0 2 0 t0 t2 1 CSE 311

  7. Finite Automaton without t1 R1: 0 | 10*2 R2: 2 | 10*1 R3: 1 | 20*2 R4: 0 | 20*1 R5: R1 | R2R4*R3 R4 R2 R1 t0 t2 R3 R5 t0 Final regular expression: (0 | 10*2 | (2 | 10*1)(0 | 20*1)*(1 |20*2))* CSE 311

  8. Generalized NFAs • Like NFAs but allow • Parallel edges • Regular Expressions as edge labels • NFAs already have edges labeled  or a • An edge labeled by A can be followed by reading a string of input chars that is in the language represented by A • A string x is accepted iff there is a path from start to final state labeled by a regular expression whose language contains x CSE 311

  9. Starting from NFA • Add new start state and final state • Then eliminate original states one by one, keeping the same language, until it looks like: • Final regular expression will be A λ A λ λ CSE 311

  10. Only two simplification rules: • Rule 1: For any two states q1 and q2 with parallel edges (possibly q1=q2), replace • Rule 2: Eliminate non-start/final state q3 by replacing all for every pair of states q1, q2 (even if q1=q2) A A⋃B q2 by q2 q1 q1 q2 q1 B B A C AB*C q2 q3 q1 by CSE 311

  11. Automata Theory Summary • Every DFA is an NFA • Every NFA can be converted into a DFA that accepts the same language • However there may be an exponential increase in the number of states • Given a regular expression, we can construct an NFA that recognizes it • Given an NFA we can construct an regular for the strings accepted by it CSE 311

  12. What can Finite State Machines do? • We’ve seen how we can get DFAs to recognize all regular languages • What about some other languages we can generate with CFGs? • { 0n1n : n≥0 }? • Binary Palindromes? • Strings of Balanced Parentheses? CSE 311

  13. A={0n1n: n≥0} cannot be recognized by any DFA Consider the infinite set of strings S={, 0, 00, 000, 0000, ...} Claim: No two strings in S can end at the same state of any DFA for A, so no such DFA can exist Proof: Suppose nm and 0n and 0m end at the same state p. Since 0n1n is in A, following 1nafter state p must lead to a final state. But then the DFA would accept 0m1n which is a contradiction CSE 311

  14. The set B of binary palindromes cannot be recognized by any DFA Consider the infinite set of strings S={, 0, 00, 000, 0000, ...} Claim: No two strings in S can end at the same state of any DFA for B, so no such DFA can exist Proof: Suppose nm and 0n and 0m end at the same state p. Since 0n10n is in B, following 10n after state p must lead to a final state. But then the DFA would accept 0m10n which is a contradiction CSE 311

  15. The set P of strings of balanced parentheses cannot be recognized by any DFA CSE 311

  16. The set P of strings {1j | j = n2} cannot be recognized by any DFA Suppose 1j and 1k reach the same state p with j < k 1k1k(k-1) must reach an accepting state q 1j1k(k-1) must reach the same accepting state q Thus, j + k(k-1) = k2 – k + j must be a perfect square Is that possible? CSE 311

  17. Pattern Matching • Given • a string sof n characters • a pattern pof m characters • usually m<<n • Find • all occurrences of the pattern p in the string s • Obvious algorithm: • try to see if p matches at each of the positions in s • stop at a failed match and try the next position CSE 311

  18. Pattern p = x xxxx y String s = x xx xxxxxxy x xxxxxxxxx y x x CSE 311

  19. Pattern p = x y x y y x y x y x x String s = x y x x y x y x y y x y x y x y y x y x y x x CSE 311

  20. String s = x y xxy x y x y y x y x y x y y x y x y x x x y xy y x y x y x x CSE 311

  21. String s =xyx x y x y x y y x y x y x y y x y x y x x x y x y xy x y y x y x y x x CSE 311

  22. String s = x yxxy x y x y y x y x y x y y x y x y x x x y x y x x y x y y x y x y x x CSE 311

  23. String s = x y xx y x yxy y x y x y x y y x y x y x x x y x y x x y x y x yyx y x y x x CSE 311

  24. String s = x y x xyx y x y y x y x y x y y x y x y x x x y x y x x y x y x y y xy x y y x y x y x x CSE 311

  25. String s = x y x x yx y x y y x y x y xy y x y x y x x x y x y x x y x y x y y x x y x y y x y x y xx CSE 311

  26. String s =x y x x y xyx y y x y x y x y y x y x y x x x y x y x x y x y x y y x x y x y y x y x y x x xy x y y x y x y x x CSE 311

  27. String s = x y x x y x yx yyx y x y x y y x y x y x x x y x y x x y x y x y y x x y x y y x y x y x x x x y xy y x y x y x x CSE 311

  28. String s = x y x x y x y xyy x y x y x y y x y x y x x x y x y x x y x y x y y x x y x y y x y x y x x x x y x xy x y y x y x y x x CSE 311

  29. String s = x y x x y x y x yyx y x y x y y x y x y x x x y x y x x y x y x y y x x y x y y x y x y x x x x y x x xy x y y x y x y x x CSE 311

  30. String s = x y x x y x y x y yx y x yxy y x y x y x x x y x y x x y x y x y y x x y x y y x y x y x x x x y x x x x y x yyx y x y x x CSE 311

  31. String s = x y x x y x y x y y xyx y x y y x y x y x x x y x y x x y x y x y y x x y x y y x y x y x x x x y x x x x y x y y xy x y y x y x y x x CSE 311

  32. String s = x y x x y x y x y y x yx y x y y x y x y x x x y x y x x y x y x y y x x y x y y x y x y x x x Worst-case time O(mn) x y x x x x y x y y x x y x y y x y x y x x CSE 311

  33. String s = x y x x y x y x y y x yx y x y y x y x y x x x y xy x Lots of wasted work x y xy x yy x x yx y y x y x y xx x x y x x x x y x y y x x y x y y x y x y x x CSE 311

  34. Better Pattern Matching via Finite Automata • Build a DFA for the pattern (preprocessing) of size O(m) • Keep track of the ‘longest match currently active’ • The DFA will have only m+1 states • Run the DFA on the string nsteps • Obvious construction method for DFA will be O(m2) but can be done in O(m) time. • Total O(m+n) time CSE 311

  35. x y y x x x x x y y y Building a DFA for the pattern Patternp=x y x y y x y x y x x CSE 311

  36. x y y x x x x x y y y Building a DFA for the pattern Patternp=x y x y y x y x y x x y CSE 311

  37. x y y x x x x x y y y Building a DFA for the pattern Patternp=x y x y y x y x y x x x y x x y CSE 311

  38. x y y x x x x x y y y Building a DFA for the pattern Patternp=x y x y y x y x y x x x x y x x x y y y CSE 311

  39. x y y x x x x x y y y Building a DFA for the pattern Patternp=x y x y y x y x y x x x x x y x y x y x y y y y CSE 311

  40. Generalizing • Can search for arbitrary combinations of patterns • Not just a single pattern • Build NFA for pattern then convert to DFA ‘on the fly’. • Compare DFA constructed above with subset construction for the obvious NFA. CSE 311

More Related