decision properties of regular languages
play

Decision Properties of Regular Languages General Discussion of - PowerPoint PPT Presentation

Decision Properties of Regular Languages General Discussion of Properties The Pumping Lemma Membership, Emptiness, Etc. 1 Properties of Language Classes A language class is a set of languages. We have one example: the regular


  1. Decision Properties of Regular Languages General Discussion of “Properties” The Pumping Lemma Membership, Emptiness, Etc. 1

  2. Properties of Language Classes  A language class is a set of languages.  We have one example: the regular languages.  We’ll see many more in this class.  Language classes have two important kinds of properties: 1. Decision properties. 2. Closure properties. 2

  3. Representation of Languages  Representations can be formal or informal.  Example (formal): represent a language by a RE or DFA defining it.  Example: (informal): a logical or prose statement about its strings:  { 0 n 1 n | n is a nonnegative integer}  “The set of strings consisting of some number of 0’s followed by the same number of 1’s.” 3

  4. Decision Properties  A decision property for a class of languages is an algorithm that takes a formal description of a language (e.g., a DFA) and tells whether or not some property holds.  Example: Is language L empty? 4

  5. Subtle Point: Representation Matters  You might imagine that the language is described informally, so if my description is “the empty language” then yes, otherwise no.  But the representation is a DFA (or a RE that you will convert to a DFA).  Can you tell if L(A) =  for DFA A? 5

  6. Why Decision Properties?  When we talked about protocols represented as DFA’s, we noted that important properties of a good protocol were related to the language of the DFA.  Example: “Does the protocol terminate?” = “Is the language finite?”  Example: “Can the protocol fail?” = “Is the language nonempty?” 6

  7. Why Decision Properties – (2)  We might want a “smallest” representation for a language, e.g., a minimum-state DFA or a shortest RE.  If you can’t decide “Are these two languages the same?”  I.e., do two DFA’s define the same language? You can’t find a “smallest.” 7

  8. Closure Properties  A closure property of a language class says that given languages in the class, an operator (e.g., union) produces another language in the same class.  Example: the regular languages are obviously closed under union, concatenation, and (Kleene) closure.  Use the RE representation of languages. 8

  9. Why Closure Properties? 1. Helps construct representations. 2. Helps show (informally described) languages not to be in the class. 9

  10. Example: Use of Closure Property  We can easily prove L 1 = { 0 n 1 n | n > 0} is not a regular language.  L 2 = the set of strings with an = number of 0’s and 1’s isn’t either, but that fact is trickier to prove.  Regular languages are closed under  .  If L 2 were regular, then L 2  L( 0 * 1 * ) = L 1 would be, but it isn’t. 10

  11. The Membership Question  Our first decision property is the question: “is string w in regular language L?”  Assume L is represented by a DFA A.  Simulate the action of A on the sequence of input symbols forming w. 11

  12. Example: Testing Membership 0 1 0 1 1 Next symbol 0 0,1 1 1 A B C Start 0 Current state 12

  13. Example: Testing Membership 0 1 0 1 1 Next symbol 0 0,1 1 1 A B C Start 0 Current state 13

  14. Example: Testing Membership 0 1 0 1 1 Next symbol 0 0,1 1 1 A B C Start 0 Current state 14

  15. Example: Testing Membership 0 1 0 1 1 Next symbol 0 0,1 1 1 A B C Start 0 Current state 15

  16. Example: Testing Membership 0 1 0 1 1 Next symbol 0 0,1 1 1 A B C Start 0 Current state 16

  17. Example: Testing Membership 0 1 0 1 1 Next symbol 0 0,1 1 1 A B C Start 0 Current state 17

  18. What if the Regular Language Is not Represented by a DFA?  There is a circle of conversions from one form to another: RE ε -NFA DFA NFA 18

  19. The Emptiness Problem  Given a regular language, does the language contain any string at all.  Assume representation is DFA.  Construct the transition graph.  Compute the set of states reachable from the start state.  If any final state is reachable, then yes, else no. 19

  20. The Infiniteness Problem  Is a given regular language infinite?  Start with a DFA for the language.  Key idea: if the DFA has n states, and the language contains any string of length n or more, then the language is infinite.  Otherwise, the language is surely finite.  Limited to strings of length n or less. 20

  21. Proof of Key Idea  If an n-state DFA accepts a string w of length n or more, then there must be a state that appears twice on the path labeled w from the start state to a final state.  Because there are at least n+ 1 states along the path. 21

  22. Proof – (2) w = xyz y x z Then xy i z is in the language for all i > 0. Since y is not ε , we see an infinite number of strings in L. 22

  23. Infiniteness – Continued  We do not yet have an algorithm.  There are an infinite number of strings of length > n, and we can’t test them all.  Second key idea: if there is a string of length > n (= number of states) in L, then there is a string of length between n and 2n-1. 23

  24. Proof of 2 nd Key Idea y  Remember: x z  We can choose y to be the first cycle on the path.  So |xy| < n; in particular, 1 < |y| < n.  Thus, if w is of length 2n or more, there is a shorter string in L that is still of length at least n.  Keep shortening to reach [n, 2n-1]. 24

  25. Completion of Infiniteness Algorithm  Test for membership all strings of length between n and 2n-1.  If any are accepted, then infinite, else finite.  A terrible algorithm.  Better: find cycles between the start state and a final state. 25

  26. Finding Cycles 1. Eliminate states not reachable from the start state. 2. Eliminate states that do not reach a final state. 3. Test if the remaining transition graph has any cycles. 26

  27. The Pumping Lemma  We have, almost accidentally, proved a statement that is quite useful for showing certain languages are not regular.  Called the pumping lemma for regular languages . 27

  28. Statement of the Pumping Lemma Number of For every regular language L states of DFA for L There is an integer n, such that For every string w in L of length > n We can write w = xyz such that: 1. |xy| < n. Labels along 2. |y| > 0. first cycle on path labeled w 3. For all i > 0, xy i z is in L. 28

  29. Example: Use of Pumping Lemma  We have claimed { 0 k 1 k | k > 1} is not a regular language.  Suppose it were. Then there would be an associated n for the pumping lemma.  Let w = 0 n 1 n . We can write w = xyz, where x and y consist of 0’s, and y  ε .  But then xyyz would be in L, and this string has more 0’s than 1’s. 29

  30. Decision Property: Equivalence  Given regular languages L and M, is L = M?  Algorithm involves constructing the product DFA from DFA’s for L and M.  Let these DFA’s have sets of states Q and R, respectively.  Product DFA has set of states Q  R.  I.e., pairs [q, r] with q in Q, r in R. 30

  31. Product DFA – Continued  Start state = [q 0 , r 0 ] (the start states of the DFA’s for L, M).  Transitions: δ ([q,r], a) = [ δ L (q,a), δ M (r,a)]  δ L , δ M are the transition functions for the DFA’s of L, M.  That is, we simulate the two DFA’s in the two state components of the product DFA. 31

  32. Example: Product DFA 0 0 1 0 A B [A,C] [A,D] 1 0, 1 1 1 0 0 1 [B,C] [B,D] 0 1 0 C D 1 32

  33. Equivalence Algorithm  Make the final states of the product DFA be those states [q, r] such that exactly one of q and r is a final state of its own DFA.  Thus, the product accepts w iff w is in exactly one of L and M. 33

  34. Example: Equivalence 0 0 1 0 A B [A,C] [A,D] 1 0, 1 1 1 0 0 1 [B,C] [B,D] 0 1 0 C D 1 34

  35. Equivalence Algorithm – (2)  The product DFA’s language is empty iff L = M.  But we already have an algorithm to test whether the language of a DFA is empty. 35

  36. Decision Property: Containment  Given regular languages L and M, is L  M?  Algorithm also uses the product automaton.  How do you define the final states [q, r] of the product so its language is empty iff L  M? Answer: q is final; r is not. 36

  37. Example: Containment 0 0 1 0 A B [A,C] [A,D] 1 0, 1 1 1 0 0 1 [B,C] [B,D] 0 1 0 C D Note: the only final state 1 is unreachable, so containment holds. 37

  38. The Minimum-State DFA for a Regular Language  In principle, since we can test for equivalence of DFA’s we can, given a DFA A find the DFA with the fewest states accepting L(A).  Test all smaller DFA’s for equivalence with A .  But that’s a terrible algorithm. 38

  39. Efficient State Minimization  Construct a table with all pairs of states.  If you find a string that distinguishes two states (takes exactly one to an accepting state), mark that pair.  Algorithm is a recursion on the length of the shortest distinguishing string. 39

  40. State Minimization – (2)  Basis: Mark a pair if exactly one is a final state.  Induction: mark [q, r] if there is some input symbol a such that [ δ (q,a), δ (r,a)] is marked.  After no more marks are possible, the unmarked pairs are equivalent and can be merged into one state. 40

Recommend


More recommend