1 / 32

CSCI 3130: Formal languages and automata theory Tutorial 5

CSCI 3130: Formal languages and automata theory Tutorial 5. Chin. Reminder. Homework 3 is due tomorrow . Midterm is on next Monday . Review session tomorrow . You can get back homework 2 after this tutorial. Homework 2. We only say a language is regular or non-regular.

darby
Download Presentation

CSCI 3130: Formal languages and automata theory Tutorial 5

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. CSCI 3130: Formal languagesand automata theoryTutorial 5 Chin

  2. Reminder • Homework 3 is due tomorrow. • Midterm is on next Monday. • Review session tomorrow. • You can get back homework 2 after this tutorial.

  3. Homework 2 • We only say a language is regular or non-regular. • We do not say a string is regular or non-regular • Never write x is regular • We only say a string is in a language or not.

  4. Homework 2 • To show a language is not regular • You only have to choose one string. • The chosen string should be in terms of n. • You cannot choose what u, v, w are. e.g. u = (ab)n-1, v = (ab)n, w = (bc)n. wrong! You have to consider every possible partitions of uvw. • You only have to choose one value for i.

  5. Homework 2 • Problem 1 • Most answers are incorrect. Some of you used the following arguments: Replace with What if: a q0 NFA  q0 NFA b NFA q0 q1 a

  6. Homework 2 • Problem 1 • There can be multiple accepting states in the DFA Many states can reach an accepting state on ‘b’

  7. Homework 2 • Problem 1 (c) Many students drew the following x and y are not fixed. x y  q0 NFA NFA q0

  8. Homework 2 • Problem 1 (d) A few students did the following Let L1 = {anb: n ≥ 0}, L2 = {an: n ≥ 0} Then L1L2 = {anban : n ≥ 0}. wrong! The n in L1 and the n in L2 are independent. L1L2 = {anbam : n, m ≥ 0}.

  9. Homework 2 • Problem 2 • Some of you chose the strings (a+b)n(b+c)n The proof fails if I take bnbn, which is of the above form. Choose one string is okay. e.g. ancn

  10. Homework 2 • Problem 2 (c) L3 = {w : w does not have the same number of as, bs, and cs} A few students got L3 wrong. (b) Many students let u = (ac)n-1,v = (ac), w = (abc)n. You cannot choose what u, v, w are! v can be any nonempty substring of the first n characters of the string. e.g. v can be the first ‘a’ of the string.

  11. Homework 2 • Problem 3 (b) To show two states are distinguishable Write down on what inputs one of them goes to an accepting state but the other does not.

  12. Homework 2 • Problem 4 (b) Some of you did not handle names without any ‘a’. (c) A few of you did not handle the names “crystal”. (d) A few of you missed the case “rin”.

  13. Pushdown Automata • NFA with a stack • Read a, pop b, and push c • Push c to the stack after popping b • a, b, c can be  • Use $ to mark stack bottom a, b/c q1 q0

  14. Pushdown Automata • PDA = CFG • Languages that can be represented by PDA/CFG are context-free.

  15. Pushdown Automata • Design a PDA for the following. S = {a, b, c} L1 = {x : x has fewer a’s than b’s and c’s together} L2 = {aibjck : i = j or j = k}

  16. Pushdown Automata L1 = {x : x has fewer a’s than b’s and c’s together} Lecture: L = {w: w has same number 0s and 1s} First, treat a as a, b and c as x e, e / $ e, $ / e q1 q0 q2 1, e/ 1 0, e/ 0 0, 1 / e 1, 0 / e e, e / $ e, $ / e q1 q0 q3 b, e/ x a, e/ a a, x / e b, a / e c, e/ x c, a / e

  17. Pushdown Automata L1 = {x : x has fewer a’s than b’s and c’s together} First, treat a as a, b and c as x Accept if there are still x’s in the stack e, e / $ e, $ / e q1 q0 q3 b, e/ x a, e/ a b, a / e a, x / e c, e/ x c, a / e e, e / $ e, x / e e, $ / e q1 q0 q2 q3 b, e/ x a, e/ a b, a / e e, x/ e a, x / e c, e/ x c, a / e

  18. Pushdown Automata L2 = {aibjck : i = j or j = k} Separate it into two cases {aibjck : i = j } U {aibjck : j = k} • {aibjck : i = j } Lecture: L = {w: w has same number 0s and 1s} e, e / $ e, $ / e q1 q0 q2 1, e/ 1 0, e/ 0 0, 1 / e 1, 0 / e

  19. Pushdown Automata L2 = {aibjck : i = j or j = k} • {aibjck : i = j } Lecture: L = {w: w has same number 0s and 1s} add c’s e, e / $ e, $ / e q1 q0 q2 1, e/ 1 0, e/ 0 0, 1 / e 1, 0 / e e, $ / e e, e / $ e, e / e q3 q2 q1 q0 b, e/ b c, e/ e a, e/ a a, b / e b, a / e

  20. Pushdown Automata L2 = {aibjck : i = j or j = k} 2. {aibjck : j = k} Lecture: L = {w: w has same number 0s and 1s} add a’s e, e / $ e, $ / e q1 q0 q2 1, e/ 1 0, e/ 0 0, 1 / e 1, 0 / e e, $ / e e, e / $ e, e / e q3 q2 q1 q0 b, e/ b a, e/ e c, e/ c c, b / e b, c / e

  21. Pushdown Automata L2 = {aibjck : i = j or j = k} Take union e, $ / e e, e / e q3 q2 q1 e, e / $ b, e/ b c, e/ e a, e/ a a, b / e b, a / e q0 e, e / $ e, $ / e e, e / e q6 q4 q5 b, e/ b a, e/ e c, e/ c c, b / e b, c / e

  22. Pumping lemma for Context-free languages To show a language L is not context free: For every n, choose onez of length ≥ n in L, such that for every way of writing z = uvwxywhere |vwx| ≤ n and |vx| ≥ 1, the string uviwxiy is not in L for some i≥ 0. • z depends on n • u, w, ycan be empty string • v, x can alsobe empty string, but not both. • i can be 0 (very useful) • You only have to choose onez • Unlike the regular language version, vwx can be anywhere in z.

  23. Pumping lemma for Context-free languages Template Suppose L is context-free. Let n be the pumping length. Then z = _______ (z should contain n somewhere) is in L. Write z = uvwxy, where |vwx| ≤ n and |vx|≥ 1. Argue!no matter how we write z = uvwxy, the string uv_wx_y is not in L(choose onei in _, i can be 0) Therefore L is not regular.

  24. Pumping lemma for CFG • Show that the following languages are not context-free L1 = {anbmanbm : m, n ≥ 0}. S = {a, b}. L2 = {x#y#z : yR is a substring of xz; x, y, z∈ {a,b}*}. S = {a, b, #}.

  25. Pumping lemma for CFG L1 = {anbmanbm : m, n ≥ 0}. S = {a, b}. Suppose L is context-free. Let n be the pumping length. Then z = _anbnanbn_ (z should contain n somewhere) is in L. Write z = uvwxy, where |vwx| ≤ n and |vx|≥ 1. Argue!no matter how we write z = uvwxy, the string uv_wx_y is not in L(choose onei in _, i can be 0) How to argue?

  26. Pumping lemma for CFG L1 = {anbmanbm : m, n ≥ 0}. S = {a, b}. Then z = _anbnanbn_ (z should contain n somewhere) is in L. Write z = uvwxy, where |vwx| ≤ n and |vx|≥ 1. What can vwx be if |vwx| ≤ n? vwx can be… • part of the first an • part of the first anbn • part of the first bn • part of the middle bnan • part of the second an • part of the second anbn • part of the last bn a……ab……ba……ab……b

  27. Pumping lemma for CFG L1 = {anbmanbm : m, n ≥ 0}. S = {a, b}. Then z = _anbnanbn_ (z should contain n somewhere) is in L. Write z = uvwxy, where |vwx| ≤ n and |vx|≥ 1. • If vwx is part of the first an uv2wx2y has less a’s in the first group than the second group • If vwx is part of the first anbn v and x cannot be both empty If v is not empty, v must contain some a, uv0wx0y has less a’s in the first group than the second group If x is not empty, x must contain some b, uv0wx0y has less b’s in the first group than the second group The rest are similar, do explain them in the homework/exam. a……ab……ba……ab……b

  28. Pumping lemma for CFG L2 = {x#y#z : yR is a substring of xz; x, y, z ∈ {a,b}*}. Suppose L is context-free. Let n be the pumping length. Then z = _an#bnan#bn_ (z should contain n somewhere) is in L. Write z = uvwxy, where |vwx| ≤ n and |vx|≥ 1. Argue!no matter how we write z = uvwxy, the string uv_wx_y is not in L(choose onei in _, i can be 0) How to argue?

  29. Pumping lemma for CFG L2 = {x#y#z : yR is a substring of xz; x, y, z ∈ {a,b}*}. Then z = _an#bnan#bn_ (z should contain n somewhere) is in L. Write z = uvwxy, where |vwx| ≤ n and |vx|≥ 1. What can vwx be if |vwx| ≤ n? vwx can be… 0. If v and x contain ‘#’, then we can always pump it and the string will contain more than 2 #s. • part of the first an • part of the first an#bn • part of the first bn • part of the middle bnan • part of the second an • vwx is part of the last an#bn • vwx is part of the last bn a……a#b……ba……a#b……b

  30. Pumping lemma for CFG L2 = {x#y#z : yR is a substring of xz; x, y, z ∈ {a,b}*}. Then z = _an#bnan#bn_ (z should contain n somewhere) is in L. Write z = uvwxy, where |vwx| ≤ n and |vx|≥ 1. 0. If v and x contain ‘#’, then we can always pump it and the string will contain more than 2 #s, which is not in L2. • If vwx is part of the first an, uv0wx0y = X#Y#Z contains less a’s in X than in Y. thus the YR cannot be a substring of XZ. a……a#b……ba……a#b……b

  31. Pumping lemma for CFG L2 = {x#y#z : yR is a substring of xz; x, y, z ∈ {a,b}*}. Then z = _an#bnan#bn_ (z should contain n somewhere) is in L. Write z = uvwxy, where |vwx| ≤ n and |vx|≥ 1. 0. If v and x contain ‘#’, then we can always pump it and the string will contain more than 2 #s, which is not in L2. • If vwx is part of the first an#bn, v and x cannot be both empty If v is not empty, v must contain some a, uv0wx0y = X#Y#Z contains less a’s in X than in Y. thus the YR cannot be a substring of XZ. If x is not empty, x must contain some b, uv2wx2y = X#Y#Z contains less b’s in X than in Y. thus the YR cannot be a substring of XZ. The rest are similar, do explain them in the homework/exam. a……a#b……ba……a#b……b

  32. End • Questions?

More Related