Presentation is loading. Please wait.

Presentation is loading. Please wait.

Complexity and Computability Theory I Lecture #4 Rina Zviel-Girshin Leah Epstein Winter 2002-2003.

Similar presentations


Presentation on theme: "Complexity and Computability Theory I Lecture #4 Rina Zviel-Girshin Leah Epstein Winter 2002-2003."— Presentation transcript:

1 Complexity and Computability Theory I Lecture #4 Rina Zviel-Girshin Leah Epstein Winter

2 Rina Overview Nondeterminism Examples Equivalence of the nondeterministic model to the deterministic model

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

4 Rina 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

5 Rina Formal Definition A finite automaton is a 5-tuple (Q, , , q 0, 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) q 0 - q 0  Q is the start state F - F  Q the set of accept states

6 Rina DFA: Example Consider the following language: L = (ab  aba)* The deterministic automaton :

7 Rina NFA: Example The nondeterministic automaton : This simplifies the deterministic automaton. The basic idea of the construction: An aba path An ab path

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

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

10 Rina

11 Rina 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  *,  ’( q 0,w)  F  } means: There exist a path from q 0 to q i  F for the input string w.

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

13 Rina What does A do on the input w=110?

14 Rina What does A do on the input w=101?

15 Rina 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}

16 Rina Additional examples Construct a nondeterministic finite automaton recognizing the following language: L={0 i 1 j | i mod 3 = 1, j mod 2 = 1} 0 i i mod 3 = 1

17 Rina Additional examples L={0 i 1 j | i mod 3 = 1, j mod 2 = 1} 0 i 1 j i mod 3 = 1 j mod 2 = 1

18 Rina Equivalence of FA Definition: Two automata are equivalent if they recognize the same language.

19 Rina Example A: B: L(A)=L(B)

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

21 Rina 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 {q i, q j, q k }.

22 Rina 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

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

24 Rina How can we do it? Conclusion:  ’(q,  1 )=  ({q i,q j,q k },  1 ) =  (q i,  1 )   (q j,  1 )   (q k,  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.

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

26 Rina The  - closure E(q0) = {q0, q1, q2} E(q1) = {q1, q2} E(q2) = {q2} E(q3) = {q3, q4} E(q4) = {q4}

27 Rina A DFA construction algorithm Let A be an NFA where A = (Q A, ,  A, q 0A, F A ). We construct a DFA M equivalent to A, where M = ( Q, , , q 0, F). Q = P(Q A )  =  For each R in Q and  in ,  (R,  ) is q 0 = E(q 0A ) F = { R  Q | there exists r  R such that r  F A }

28 Rina 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: qiqkqlqi,qk,ql m:

29 Rina 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 qi qt qp R i  ji  j k  lk  l

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

31 Rina Explanation The initial state of M is the set which includes only E(q 0A ) 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.

32 Rina Example Convert a given nondeterministic finite automaton into a deterministic finite automaton.

33 Rina 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} q0,q1

34 Rina Example  ({q2},a)={q1}  ({q2},b)={q2} q0,q1

35 Rina Example  ({q1},a)={q2,q3}  ({q1},b)={q2} q0,q1

36 Rina Example  ({q2,q3},a)={q1,q2}  ({q2,q3},b)={q2} q0,q1

37 Rina Example  ({q1,q2},a)={q1,q2,q3}  ({q1,q2},b)={q2} q0,q1

38 Rina  ({q1,q2,q3},a)={q1,q2,q3}  ({q1,q2,q3},b)={q2} q0,q1

39 Rina Any Questions?


Download ppt "Complexity and Computability Theory I Lecture #4 Rina Zviel-Girshin Leah Epstein Winter 2002-2003."

Similar presentations


Ads by Google