1 / 40

Deterministic Finite State Machines

Deterministic Finite State Machines. Chapter 5. Languages and Machines. Regular Languages. Regular Language. L. Regular Expression. Accepts. Finite State Machine. Finite State Machines. Vending Machine: An FSM to accept $.50 in change Drink is 25 cents

telma
Télécharger la présentation

Deterministic Finite State Machines

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. Deterministic Finite State Machines Chapter 5

  2. Languages and Machines

  3. Regular Languages Regular Language L Regular Expression Accepts Finite State Machine

  4. Finite State Machines Vending Machine: An FSM to accept $.50 in change Drink is 25 cents No more than 50 cents can be deposited X Other FSM examples?

  5. 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 K state input symbol state Quintuple  Cartesian product

  6. Accepting by a DFSM Informally, Maccepts 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.

  7. 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

  8. The Yields Relations The yields-in-one-step relation |-M : (q, w) |-M (q', w') iff • w = aw' 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.

  9. 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 |-MC1 |-MC2 |-M … |-MCn.

  10. Accepting and Rejecting A DFSM Maccepts a string w iff: (s, w) |-M * (q, ), for some qA. A DFSM Mrejects a string w iff: (s, w) |-M* (q, ), for some qAM. The language accepted byM, denoted L(M), is the set of all strings accepted by M. Theorem: Every DFSM M, on input s, halts in |s| steps.

  11. An Example Computation An FSM to accept odd integers: even odd even q0q1 odd On input 235, the configurations are: (q0, 235) |-M (q0, 35) |-M |-M Thus (q0, 235) |-M* (q1, )

  12. Regular Languages A language is regular iff it is accepted by some FSM.

  13. A Very Simple Example L = {w {a, b}* : every a is immediately followed by a b}.

  14. A Very Simple Example L = {w {a, b}* : every a is immediately followed by a b}.

  15. 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)}

  16. Parity Checking L = {w {0, 1}* : w has odd parity}.

  17. 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)}

  18. No More Than One b L = {w {a, b}* : w contains no more than one b}.

  19. No More Than One b L = {w {a, b}* : w contains no more than one b}. M = (K, , , s, A)

  20. Checking Consecutive Characters L = {w {a, b}* : no two consecutive characters are the same}.

  21. Checking Consecutive Characters L = {w {a, b}* : no two consecutive characters are the same}.

  22. Dead States L = {w {a, b}* : every a region in w is of even length}

  23. Dead States L = {w {a, b}* : every a region in w is of even length} M = (K, , , s, A)

  24. Dead States L = {w {a, b}* : every b in w is surrounded by a’s}

  25. 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:

  26. A Simple Communication Protocol

  27. Controlling a Soccer-Playing Robot

  28. A Simple Controller

  29. 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?

  30. Even a’s Odd b’s

  31. Vowels in Alphabetical Order L = {w {a - z}* : all five vowels, a, e, i, o, and u, occur in w in alphabetical order}.

  32. Vowels in Alphabetical Order L = {w {a - z}* : all five vowels, a, e, i, o, and u, occur in w in alphabetical order}. u O

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

  34. 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. Programming FSMs L = {w {a, b}* : w does not contain the substring aab}. Start with a machine for L: How must it be changed?

  36. A Building Security System L = {event sequences such that the alarm should sound}

  37. FSMs Predate Computers The Chinese Abacus, 14 century AD The Jacquard Loom, invented in 1801 The Prague Orloj, originally built in 1410

  38. Finite State Representations in Software Engineering A high-level state chart model of a digital watch.

  39. Making the Model Hierarchical

  40. 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:

More Related