1 / 68

Finite Automata

Finite Automata. A simple model of computation. Outline. Deterministic finite automata (DFA) How a DFA works How to construct a DFA Non-deterministic finite automata (NFA) How an NFA works How to construct an NFA Equivalence of DFA and NFA

akiko
Download Presentation

Finite Automata

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. Finite Automata A simple model of computation

  2. Outline • Deterministic finite automata (DFA) • How a DFA works • How to construct a DFA • Non-deterministic finite automata (NFA) • How an NFA works • How to construct an NFA • Equivalence of DFA and NFA • Closure properties of the class of languages accepted by FA

  3. Finite Automata (FA) Finite set of states is in exactly one state at a time CONTROL UNIT Start state Final state(s) TAPE HEAD Move to the right one cell at a time INPUT TAPE Store input of the DFA Can be of any length

  4. What does an FA do? • Read an input string from tape • Determine if the input string is in a language • Determine if the answer for the problem is “YES” or “NO” for the given input on the tape

  5. How does an FA work? • At the beginning, • an FA is in the start state(initial state) • its tape head points at the first cell • For each move, FA • reads the symbol under its tape head • changes its state (according to the transition function) to the next state determined by the symbol read from the tape and its current state • move its tape head to the right one cell

  6. When does an FA stop working? • When it reads all symbols on the tape • Then, it gives an answer if the input is in the specific language: • Answer “YES” if its last state is a final state • Answer “NO” if its last state is not a final state

  7. 0 1 0 1 s f Example of a DFA Transition diagram Transition function

  8. How to define a DFA • a 5-tuple (Q, , , s, F), where • a set of states Q is a finite set • an alphabet  is a finite, non-empty set • a start state s in Q • a set of final states F contained in Q • a transition function  is a function Q    Q • See formal definition That’s why it’s called a finite automaton.

  9. s f 0 0 1 1 0 1 0 1 0 0 1 How an FA works 0 1 0 1 Input: 001101 ACCEPT REJECT Input: 01001

  10. s f 0 1 0 1 Transition diagram of M Configurations Current state Unread input string Definition Let M =(Q, , , s, F) be a deterministic finite automaton. A configuration of M is an element of Q  configurations of M (s, ), (s, 00), (s, 01101), (f, ), (f, 0011011001), (f, 1111), (f, 011110)

  11. Yielding next configuration Definition • Let M = (Q, , , s, F) be a deterministic finite automaton, and (q0, 0) and (q1, 1) be two configurations of M. • We say (q0, 0) yields (q1, 1) in one step, denoted by (q0, 0) M (q1, 1), if (q0, a) = q1, and 0=a 1, for some a . • When a configuration yields another configuration, the first symbol of the string is read and discarded from the configuration. • Once a symbol in an input string is read, it does not effect how the DFA works in the future.

  12. s f Example: yielding next configuration 0 1 0 1 (s, 001101) M(s, 01101) M(s, 1101) M(f, 101) M(s, 01) M(s, 1) M(f, ) 0 0 1 1 0 1

  13. Yield in zero step or more Definition • Let M = (Q, , , s, F) be a DFA, and (q0, 0) and (q1, 1) be two configurations of M. (q0, 0)yields(q1, 1)in zero step or more, denoted by (q0, 0)  *M (q1, 1), if • q0= q1 and0 =1, or • (q0, 0) M (q2,2) and (q2, 2) *M (q1, 1) for some q2and2. This definition is an inductive definition, and it is often used to prove properties of DFA’s.

  14. 0 1 0 1 s f Example: Yield in zero step or more (s, 01001) *M(f, 001) *M(f, 001) *M(f, 1) *M(s, ) (s, 001101) *M(f, 101) *M(s, 01) *M(f, ) *M(f, )

  15. Accepting a string Definition • Let M = (Q, , , s, F) be a DFA, and *. We say M accepts if (s, ) *M (f, ), when fF. Otherwise, we sayM rejects. (s, 001101)*M(f, )  M accepts 001101 (s, 01001) *M(s, )  M rejects 01001

  16. 0 1 0 1 s f Language accepted by a DFA Let M = (Q, , , s, F ) be a DFA. The language accepted by M, denoted by L(M ) is the set of strings accepted by M. That is, L(M) = {*|(s, ) *M (f,) for somefF} Example: • L(M) = {x {0,1}* | the number of 1’s in x is odd}.

  17. Example 0 0, 1 0 0 1 1 0 s 0 1 1 0, 1 1 1 1 0 0

  18. How to construct a DFA • Determine what a DFA need to memorize in order to recognize strings in the language. • Hint: the property of the strings in the language • Determine how many states are required to memorize what we want. • final state(s) memorizes the property of the strings in the language. • Find out how the thing we memorize is changed once the next input symbol is read. • From this change, we get the transition function.

  19. Constructing a DFA: Example • Consider L= {{0,1}*|  has both 00 and 11 as substrings}. • Step 1: decide what a DFA need to memorize • Step 2: how many states do we need? • Step 3: construct the transition diagram

  20. Example Got 00 and got 1 Got 00 and 11 as substrings Got 00 as substring 0 0, 1 Got 0 as substring 0 0 1 1 0 s 0 1 1 0, 1 1 Got nothing 1 1 0 0 Got 1 as substring Got 11 as substring Got 11 and got 0 Got 11 and 00 as substrings

  21. Constructing a DFA: Example • Consider L= {{0,1}*|  represents a binary number divisible by 3}. • L = {0, 00, 11, 000, 011, 110, 0000, 0011, 0110, 1001, 00000, ...}. • Step 1: decide what a DFA need to memorize • remembering that the portion of the string that has been read so far is divisible by 3 • Step 2: how many states do we need? • 2 states remembering that • the string that has been read is divisible by 3 • the string that has been read is indivisible by 3. • 3 states remembering that • the string that has been read is divisible by 3 • the string that has been read - 1 is divisible by 3. • the string that has been read - 2 is divisible by 3. Choose this!! Why?

  22. Using 2 states • Reading a string wrepresenting a number divisible by 3. • Next symbol is 0.w0, which is 2*w, is also divisible by 3. • Ifw=9is divisible by 3, so is2*w=18. • Next symbol is 1.w1, which is 2*w +1, may or may not be divisible by 3. • If 8 is indivisible by 3, so is 17. • If 4 is indivisible by 3, but 9 is divisible. • Using these two states is not sufficient.

  23. Using 3 states • Each state remembers the remainder of the number dividedby 3. • If the portion of the string that has been read so far, say w, represents the number whose remainder is 0 (or, 1, or 2), • If the next symbol is 0, what is the remainder of w0? • If the next symbol is 1, what is the remainder of w1?

  24. How remainder changes

  25. Transition table Current state Next state

  26. 0 q0 1 1 1 0 q1 q2 0 Example DFA • M = ({q0, q1, q2}, {0, 1}, , q0, {q0})

  27. 0 0  Nondeterministic Finite Automata • Similar to DFA • Nondeterministic move • On reading an input symbol, the automaton can choose to make a transition to one of selected states. • Without reading any symbol, the automaton can choose to make a transition to one of selected states or not.

  28. How to define an NFA • a 5-tuple (Q, , , s, F), where • a set of states Q is a finite set • an alphabet  is a finite, non-empty set • a start state sinQ • a set of final states F contained in Q • a transition function  is a function Q({})2Q • See formal definition

  29. DFA 1 0 1 0 1 0 0 1 1 1 0 0 1 0 0,1 1 1 Example of NFA • An NFA accepting {w{0,1} |w ends with 11}

  30. Yielding next configuration Definition • Let M = (Q, , , s, F) be a non-deterministic finite automaton, and (q0, 0) and (q1, 1) be two configurations of M. • We say (q0, 0)yields(q1, 1)in one step, denoted by (q0, 0) M (q1, 1), if q1   (q0, a,), and 0=a 1, for some a  {}.

  31. Yield in zero step or more Definition • Let M = (Q, , , s, F) be anNFA, and (q0, 0) and (q1, 1) be two configurations of M. (q0, 0)yields(q1, 1)in zero step or more, denoted by (q0, 0)*M (q1, 1), if • q0= q1 and0 =1, or • (q0, 0) M (q2,2) and (q2, 2) *M (q1, 1) for some q2and 2. Same as that for DFA

  32. Accepting a string Definition • Let M = (Q, , , s, F) be an NFA, and *. We say M accepts if (s, ) *M (f, ), when fF. Otherwise, we sayM rejects. Same as the definition for a DFA

  33. Language accepted by an NFA • Let M = (Q, , , s, F) be anNFA. • The language accepted by M, denoted by L(M) is the set of strings accepted by M. That is, L(M) = {*| (s,) *M (f,) for some fF} Same as the definition for a DFA

  34. 0,1 1 1 How NFA’s work (s,01111)- (s,1111) - (s,111) - (s,11) - (s,1) - (s,) (s,01111)-(s,1111) - (s, 111) - (s,11) - (s,1) - (q,) (s,01111)-(s, 1111) - (s, 111) - (s,11) - (q,1) - (f, ) (s,01111)-(s, 1111) - (s, 111) - (q,11) - (f,1) (s,01111)-(s, 1111) - (q, 111) - (f,11) s q f s, 01111 s, 1111 s, 111 q, 111 s, 11 f, 11 q, 11 q, 1 s, 1 f, 1 f,  q,  s, 

  35. 0 0 0,1  0,1 1 1  0,1 0 0 0,1 0,1  1 1 0,1 0,1 Other examples of NFA • {w {0,1}* | w has either 00 or 11 as substring} • {w {0,1}* | w has 00 and 11 as substrings and 00 comes before 11}

  36. DFA and NFA are equivalent Md and Mn are equivalent L(Md) = L(Mn). DFA and NFA are equivalent  • For any DFA Md, there exists an NFA Mnsuch that Mdand Mn are equivalent. (part 1) • For any NFA Mn, there exists a DFA Mdsuch that Md and Mn are equivalent. (part 2)

  37. Part 1 of the equivalence proof • For any DFA Md, there exists an NFA Mnsuch that Md and Mnare equivalent. Proof: Let Mdbe anyDFA. We want to construct an NFA Mn such that L(Mn) = L(Md). From the definitions of DFA and NFA, if M is a DFA then it is also an NFA. Then, we let Mn= Md. Thus, L(Md) = L(Mn).

  38. Part 2 of the equivalence proof • For any NFA Mn, there exists a DFA Md such that Mdand Mn are equivalent. Proof: Let Mn = (Q, , , s, F)be anyNFA. We want to construct a DFA Md such that L(Md) = L(Mn). First define the closure of q,denoted by E(q). Second, construct a DFA Md=(2Q, , ', E(s), F') Finally, prove    f  F (s,) |-*Mn (f, )   f 'F ' (E(s), ) |-*Md (f ' , ).

  39. 1 1 1 s s,q s,q,f 0 Eliminating transitions to multiple states 1 1 s q f 0,1 0 0

  40. Eliminating empty-string transitions ε 1 1 s p q ε 0 ε 0 1 r f 1 s p,q, r 0 0 ,1 0,1 1 r p,q,r,f

  41. Closure of state q • Let M = (Q, , , s, F) be an NFA, and qQ. • The closure of q, denoted by E(q),is • the set of states which can be reached from q without reading any symbol. • {pQ| (q,) |-M* (p, )} • If an NFA is in a state q, it can also be in any state in the closure of q without reading any input symbol.

  42. a b c   s q f Example of closure M=({s, q, f}, {a, b, c}, , s, {f}) where is defined below. L(M)={ai bj ck | i, j, k 0}

  43. q0 a  b  q1 q2 a b  a q3 q4  Another example of closure

  44. Constructing the equivalent DFA Let Mn = (Q, , , s, F)be anyNFA. We construct a DFA Md =(2Q, , ', E(s), F'), where : • '(q',a) = {rE(p)| p  (q,a) } and • F' = {f  Q | f  F  }) qq' DFA ε p r a ε q a ε

  45. q0 a  b  q1 q2 a b  a q3 q4  Example of DFA construction

  46. Example of DFA construction q0,q1,q2,q3 a a q0,q1,q2,q3,q4 b b a a q2,q3,q4 q3,q4 b b a,b 

  47. Prove property of  and ' Let Mn = (Q, , , s, F)be anyNFA, and Md = (2Q, , ', E(s), F') be a DFA, where • '(q', a) =  {rE(p)| p(q,a)}and • F' = {f  Q | f  F  } Prove  ,  fF (s,) |-*Mn (f, )   f 'F ' (E(s), ) |-*Md (f', ) and ff' by induction. Prove a more general statement  ,  p, qQ (p,) |-*Mn (q, )  (E(p), ) |-*Md (q', ) and qq'. qq'

  48. Proof Part I: For any string  in Σ*, and states q and r in Q, there exists R  Q such that (q, ) *Mn(r, ε)  (E(q), ) *Md(R, ε) and rR.

  49. Proof Basis: Let  be a string in Σ*,q and r be states in Q, and (q, ) *Mn (r, ε) in 0 step. Because (q, ) *Mn (r, ε) in 0 step, we know (1) q=r , and (2) =ε. Then, (E(q), ) = (E(r), ε). Thus, (E(q), ) *Md (E(r), ε) . That is, there exists R=E(r) such that r R and (E(q),) *Md (R, ε).

  50. Proof Induction hypothesis: For any non-negative integer k, string  in Σ*, and states qand r in Q, there exists R  Q: (q, ) *Mn(r, ε) in k steps -> (E(q), ) *Md(R, ε) and rR. Induction step: Prove, for any non-negative integer k, string  in Σ*, and states q and r in Q, there exists R  Q: (q, ) *Mn(r, ε) in k+1 steps -> (E(q), ) *Md(R, ε) and rR.

More Related