1 / 39

Complexity and Computability Theory I

Complexity and Computability Theory I. Lecture #4 Rina Zviel-Girshin Leah Epstein Winter 2002-2003. Overview. Nondeterminism Examples Equivalence of the nondeterministic model to the deterministic model. Nondeterminism (briefly). Each state can be accepting or not.

haile
Télécharger la présentation

Complexity and Computability Theory 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. Complexity and Computability Theory I Lecture #4 Rina Zviel-Girshin Leah Epstein Winter 2002-2003

  2. Overview • Nondeterminism • Examples • Equivalence of the nondeterministic model to the deterministic model Rina Zviel-Girshin @ASC

  3. Nondeterminism (briefly) • Each state can be accepting or not. • The automaton reads one input word symbol at each time unit. • An NFA also can change it state without reading an input -  transition • If a state in which it stops reading an input (reading it till the end) is an accepting state- the automaton accepts (recognizes) the input. Rina Zviel-Girshin @ASC

  4. Nondeterminism (briefly) • On each symbol: • it moves to a new state (defined by the transition function) as a function of: • the current state • the symbol read or an  transition • or halts if no valid move defined Rina Zviel-Girshin @ASC

  5. Formal Definition A finite automaton is a 5-tuple (Q, , , q0, F), where: • Q - a finite set of states •  - alphabet •  - transition function - Q()2|Q| or P(Q)(given a state and an input symbol - what can be the next state) • q0 - q0Q is the start state • F - FQ the set of accept states Rina Zviel-Girshin @ASC

  6. DFA: Example Consider the following language: L = (ab  aba)* The deterministic automaton : Rina Zviel-Girshin @ASC

  7. NFA: Example The nondeterministic automaton : • The basic idea of the construction: • An aba path • An ab path This simplifies the deterministic automaton. Rina Zviel-Girshin @ASC

  8. How does an NFA compute? • A nondeterministic computation is a tree of possibilities. • The root of the tree is a start state of the automaton. • Each branching point is a computation at which automaton has multiple choices. • An NFA accepts an input string if there exists at least one computation that leads to an accept state. Rina Zviel-Girshin @ASC

  9. NFA vs. DFA • The difference between a deterministic finite automaton DFA and a non-deterministic one NFA is the number of paths in a computation tree. • In DFA’s we have only one path – one chain. • In NFA’s we have a tree. Rina Zviel-Girshin @ASC

  10. Rina Zviel-Girshin @ASC

  11. The language of an NFA • Informally: The words that an NFA A accepts (recognizes), i.e. when reading them it stops in an accepting state. • Formally: L(A)={w | w*, ’( q0,w)F}   means: There exist a path from q0 to qiF for the input string w. Rina Zviel-Girshin @ASC

  12. Example Construct a nondeterministic finite automaton for the following language: L = { w1 | w is over *={0,1}*}   A: Rina Zviel-Girshin @ASC

  13. What does A do on the input w=110? Rina Zviel-Girshin @ASC

  14. What does A do on the input w=101? Rina Zviel-Girshin @ASC

  15. Additional examples Construct a nondeterministic finite automaton recognizing the following language: L={w | w(={0,1,2})*, w starts with 01 and ends with 1} Rina Zviel-Girshin @ASC

  16. Additional examples Construct a nondeterministic finite automaton recognizing the following language: 0i i mod 3 = 1 L={0i1j | i mod 3 = 1, j mod 2 = 1} Rina Zviel-Girshin @ASC

  17. Additional examples 0i1j i mod 3 = 1 j mod 2 = 1 L={0i1j | i mod 3 = 1, j mod 2 = 1} Rina Zviel-Girshin @ASC

  18. Equivalence of FA  Definition: Two automata are equivalent if they recognize the same language. Rina Zviel-Girshin @ASC

  19. Example A: B: L(A)=L(B) Rina Zviel-Girshin @ASC

  20. Equivalency Theorem Every NFA has an equivalent DFA. Proof idea: • We will give a constructive proof - by giving an algorithm to build a DFA equivalent to a given NFA. Rina Zviel-Girshin @ASC

  21. How can we do it? • Consider an example in which we can get from some state q on an input letter  to more than one state. • The next state - (q,) - is one of {qi, qj, qk}. Rina Zviel-Girshin @ASC

  22. How can we do it? • That means that the next state in an NFA is one state among several states. • But in a DFA only one state can be the next state. Conclusion: One state in a DFA = A set of states in an NFA Rina Zviel-Girshin @ASC

  23. How can we do it? • Consider an example. What states can we reach starting from some state q on two letters input1. Rina Zviel-Girshin @ASC

  24. How can we do it? Conclusion: ’(q, 1)= ({qi,qj,qk},1) = (qi,1)(qj,1)(qk,1) Informally: The next state in a DFA = A set of all the states in an NFA to which you can get from the set of all the current states in an NFA. Rina Zviel-Girshin @ASC

  25. The - closure Formally: The - closure of a state is a set of all the states reached from the current state using -transitions only. E(q)= { pQ | (q,i) = p, i>=0 } Informally: Use all the  transitions you can. Add the states you reach to -closure. Try to reach as many states as you can. Rina Zviel-Girshin @ASC

  26. The - closure E(q2) = {q2} E(q3) = {q3, q4} E(q4) = {q4} E(q0) = {q0, q1, q2} E(q1) = {q1, q2} Rina Zviel-Girshin @ASC

  27. A DFA construction algorithm Let A be an NFA where A = (QA, , A, q0A, FA) . We construct a DFA M equivalent to A, where M = ( Q, , , q0, F). • Q = P(QA) •  =  • For each R in Q and  in ,(R,) is • q0 = E(q0A) • F = { RQ | there exists rR such that rFA} Rina Zviel-Girshin @ASC

  28. qi qk ql qi,qk,ql m: Explanation • Create all the subsets of set of states of A. These subsets will become the states of M. • The alphabet remains the same. • Transition function : • for each state m in M and a letter  find what are the states qi..qj in A included in m are: Rina Zviel-Girshin @ASC

  29. R qi qt qp Explanation • for each qim find a set R of states which you can reach in NFA A using -closure, the letter  and the -closure i  j k  l Rina Zviel-Girshin @ASC

  30. Rl Ri Rk qp qp qf qt qt qs qi,qk,ql m: Explanation • unite all the sets R you reach into one set : S ..   ..  • the next state of m on  in M is S. S Rina Zviel-Girshin @ASC

  31. Explanation • The initial state of M is the set which includes only E(q0A) • The final states of M are all the sets in which at least one state is a final (accepting) state of A. • Eliminate all the unreachable states in M - states to which the is no path from the initial state of M. • The automaton you have is a deterministic automaton equivalent to A. Rina Zviel-Girshin @ASC

  32. Example Convert a given nondeterministic finite automaton into a deterministic finite automaton. Rina Zviel-Girshin @ASC

  33. q0,q1 Example Construction of the DFA: ({q0},a)={q2,q3} ({q0},b)={q2} ({q1},a)={q2,q3} ({q1},b)={q2} Therefore: ({q0,q1},a)={q2,q3} ({q0,q1},b)={q2} Rina Zviel-Girshin @ASC

  34. q0,q1 Example ({q2},a)={q1} ({q2},b)={q2} Rina Zviel-Girshin @ASC

  35. q0,q1 Example ({q1},a)={q2,q3} ({q1},b)={q2} Rina Zviel-Girshin @ASC

  36. q0,q1 Example ({q2,q3},a)={q1,q2} ({q2,q3},b)={q2} Rina Zviel-Girshin @ASC

  37. q0,q1 Example ({q1,q2},a)={q1,q2,q3} ({q1,q2},b)={q2} Rina Zviel-Girshin @ASC

  38. q0,q1 ({q1,q2,q3},a)={q1,q2,q3} ({q1,q2,q3},b)={q2} Rina Zviel-Girshin @ASC

  39. Any Questions? Rina Zviel-Girshin @ASC

More Related