410 likes | 571 Views
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.
E N D
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 Rina Zviel-Girshin @ASC
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
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
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 - q0Q is the start state • F - FQ the set of accept states Rina Zviel-Girshin @ASC
DFA: Example Consider the following language: L = (ab aba)* The deterministic automaton : Rina Zviel-Girshin @ASC
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
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
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
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 qiF for the input string w. Rina Zviel-Girshin @ASC
Example Construct a nondeterministic finite automaton for the following language: L = { w1 | w is over *={0,1}*} A: Rina Zviel-Girshin @ASC
What does A do on the input w=110? Rina Zviel-Girshin @ASC
What does A do on the input w=101? Rina Zviel-Girshin @ASC
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
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
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
Equivalence of FA Definition: Two automata are equivalent if they recognize the same language. Rina Zviel-Girshin @ASC
Example A: B: L(A)=L(B) Rina Zviel-Girshin @ASC
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
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
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
How can we do it? • Consider an example. What states can we reach starting from some state q on two letters input1. Rina Zviel-Girshin @ASC
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
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)= { pQ | (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
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
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 = { RQ | there exists rR such that rFA} Rina Zviel-Girshin @ASC
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
R qi qt qp Explanation • for each qim 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
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
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
Example Convert a given nondeterministic finite automaton into a deterministic finite automaton. Rina Zviel-Girshin @ASC
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
q0,q1 Example ({q2},a)={q1} ({q2},b)={q2} Rina Zviel-Girshin @ASC
q0,q1 Example ({q1},a)={q2,q3} ({q1},b)={q2} Rina Zviel-Girshin @ASC
q0,q1 Example ({q2,q3},a)={q1,q2} ({q2,q3},b)={q2} Rina Zviel-Girshin @ASC
q0,q1 Example ({q1,q2},a)={q1,q2,q3} ({q1,q2},b)={q2} Rina Zviel-Girshin @ASC
q0,q1 ({q1,q2,q3},a)={q1,q2,q3} ({q1,q2,q3},b)={q2} Rina Zviel-Girshin @ASC
Any Questions? Rina Zviel-Girshin @ASC