1 / 33

MA/CSSE 474

MA/CSSE 474. Nondeterminism NFSMs. Theory of Computation. Your Questions?. HW1 solutions HW3 or HW4 problems Anything else. Previous class days' material Reading Assignments. More DFSM Examples. Examples: Programming FSMs. Cluster strings that share a “future”.

shelby
Télécharger la présentation

MA/CSSE 474

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. MA/CSSE 474 Nondeterminism NFSMs Theory of Computation

  2. Your Questions? • HW1 solutions • HW3 or HW4 problems • Anything else • Previous class days' material • Reading Assignments

  3. More DFSM Examples

  4. Examples: Programming FSMs Cluster strings that share a “future”. L = {w {a, b}* : w contains an even number of a’s and an odd number of b’s}

  5. 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 THIS EXAMPLE MAY BE facetious!

  6. Negate the condition, then … L = {w {a, b}* : w does not contain the substring aab}. Start with a machine for the complement of L: How must it be changed?

  7. The Missing Letter Language Let  = {a, b, c, d}. Let LMissing= {w * : there is a symbol ai that does not appear in w}. Try to make a DFSM for LMissing: Expressed in first-order logic, LMissing= {w* : ∃a (∀x,y*(w ≠ xay))}

  8. NondeterminisM

  9. Nondeterminism • A nondeterministic machine in a given state, looking at a given symbol (and with a given symbol on top of the stack if it is a PDA), may have a choice of several possible moves that it can make. • If there is a move that leads toward acceptance, it makes that move.

  10. Necessary Nondeterminism? • As you saw in the homework, a PFA is a FSM plus a stack. • Given a string in {a, b}*, is it in PalEven = {wwR : w {a,b}*}}? • PDA • Choice: Continue pushing, or start popping? • This language can be accepted by a nondeterministic PDA but not by any deterministic one.

  11. Nondeterministic value-added? • Ability to recognize additional languages? • FSM: no • PDA : yes • TM: no • Ease of designing a machine for a particular language • Yes in all cases We will prove these later

  12. A Way to Think About Nondeterministic Computation First case: Each action will return True, return False, or run forever. If any of the actions returns TRUE, choose returns TRUE. If all of the actions return FALSE, choose returns FALSE. If none of the actions return TRUE, and some do not halt, choose does not halt. 1. choose (action 1;; action 2; … action n ) 2. choose(x from S: P(x)) Second case: S may be finite, or infinite with a generator (enumerator). If P returns TRUE on some x, so does choose If it can be determined that P(x) is FALSE for all x in P, choose returns FALSE. Otherwise, choose fails to halt.

  13. Nondeterministic FSM

  14. Definition of an NDFSM 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 relation. It is a finite subset of (K ( {})) K Another way to present it:  : (K ( {}))  2K

  15. Acceptance by an NDFSM An NDFSM Maccepts a string w iff there exists some path along which w can take M to some element of A. The language accepted by M, denoted L(M), is the set of all strings accepted by M.

  16. Sources of Nondeterminism

  17. Optional Substrings L = {w {a, b}* : w is made up of an optional a followed by aa followed by zero or more b’s}.

  18. Multiple Sublanguages L = {w {a, b}* : w = aba or |w| is even}.

  19. The Missing Letter Language Let  = {a, b, c, d}. Let LMissing= {w : there is a symbol ai that does not appear in w}

  20. Pattern Matching L = {w {a, b, c}* : x, y {a, b, c}* (w = xabcabby)}. A DFSM: An NDFSM:

  21. Pattern Matching: Multiple Keywords L = {w {a, b}* : x, y {a, b}* ((w = xabbaay)  (w = xbabay))}.

  22. Checking from the End L = {w {a, b}* : the fourth character from the end is a}

  23. Another Pattern Matching Example L = {w {0, 1}* : w is the binary encoding of a positive integer that is divisible by 16 or is odd}

  24. Another NDFSM L1= {w {a, b}*: aa occurs in w} L2= {x {a, b}*: bb occurs in x} L3= L1L2 M1 = M2= M3= This is a good example for practice later

  25. Analyzing Nondeterministic FSMs Does this FSM accept: baaba Remember: we just have to find one accepting path.

  26. Simulating Nondeterministic FSMs Two approaches: • Explore a search tree: • Follow all paths in parallel

  27. Dealing with  Transitions The epsilon closure of a state: 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, , r) }. Algorithm for computing eps(q): result = {q}. while there exists some presult and some rresult and some transition (p, , r)  do: Insert r into result. return result.

  28. Calculate eps(q) for each state q result = {q}. While there exists some presult and some rresult and some transition (p, , r)  do: result = result  { r } Return result.

  29. Simulating a NDFSM ndfsmsimulate(M: NDFSM, w: string) = • current-state = eps(s). • While any input symbols in w remain to be read do: • c = get-next-symbol(w). • next-state = . • For each state q in current-state do: For each state p such that (q, c, p)  do: next-state = next-stateeps(p). • current-state = next-state. • If current-state contains any states in A, accept. Else reject. Do it for the previous 8-state machine, with input bbabc

  30. Nondeterministic and Deterministic FSMs Clearly: {Languages accepted by some DFSM}  {Languages accepted by some NDFSM} More interesting: Theorem: For each NDFSM, there is an equivalent DFSM. "equivalent" means "accepts the same language"

  31. Nondeterministic and Deterministic FSMs 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} More precisely, each state in K' is the string that encodes a subset of K, using the standard set notation. Example: "{q0, q2}" We omit the quotation marks. Think of the simulator as the "interpreted version" and this as the "compiled version".

  32. An Algorithm for Constructing the Deterministic FSM 1. Compute the eps(q)’s. 2. Compute s' = eps(s). 3. Compute ‘. 4. Compute K' = a subset of P(K). 5. Compute A' = {QK' : QA}.

  33. The Algorithm ndfsmtodfsm ndfsmtodfsm(M: NDFSM) = 1. For each state q in KM do: 1.1 Compute eps(q). 2. s' = eps(s) 3. Compute ': 3.1 active-states = {s'}. 3.2 ' = . 3.3 While there exists some element Q of active-states for which ' has not yet been computed do: For each character c in M do: new-state = . For each state q in Q do: For each state p such that (q, c, p)  do: new-state = new-stateeps(p). Add the transition (q, c, new-state) to '. If new-stateactive-states then insert it. 4. K' = active-states. 5. A' = {QK' : QA }. Draw part of the transition diagram for the DFSM constructed from the NDFSM that appeared a few slides earlier. Later we may prove that this works.

More Related