1 / 17

CSC 3130: Automata theory and formal languages

Fall 2008. The Chinese University of Hong Kong. CSC 3130: Automata theory and formal languages. Limitations of finite automata. Andrej Bogdanov http://www.cse.cuhk.edu.hk/~andrejb/csc3130. 0. 1. 1. q 0. q 1. 0. 0, 1. 1. 0. 1. q 0. q 1. q 2. q 3.

forest
Download Presentation

CSC 3130: Automata theory and formal languages

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. Fall 2008 The Chinese University of Hong Kong CSC 3130: Automata theory and formal languages Limitations of finite automata Andrej Bogdanov http://www.cse.cuhk.edu.hk/~andrejb/csc3130

  2. 0 1 1 q0 q1 0 0, 1 1 0 1 q0 q1 q2 q3 Many examples of regular languages ((0 + 1)0 + (0 + 1)(0 + 1)(0 + 1))* all strings not containing pattern 010 followed by 101 Is every language regular?

  3. Which are regular? L1 = {0n1m: n, m ≥ 0} L2 = {0n1n: n ≥ 0} S = {0, 1} S = {1} L3 = {1n: n is divisible by 3} L4 = {1n: n is prime} S = {0, 1} L5 = {x: x has same number of 0s and 1s} L6 = {x: x has same number of patterns 01 and 10}

  4. Which are regular? • How about: • Let’s try to design a DFA for it… it appears that we need infinitely many states! = 0*1*, so regular L1 = {0n1m: n, m ≥ 0} L2 = {0n1n: n ≥ 0} = {e, 01, 0011, 000111, …}

  5. A non-regular language • Theorem • To prove this, we argue by contradiction: • Suppose we have managed to construct a DFA M for L2 • We show something must be wrong with this DFA • In particular, M must accept some strings not in L2 The language L2 = {0n1n: n ≥ 0} is not regular.

  6. A non-regular language imaginary DFA for L2 with n states • What happens when we run M on input x = 0n+11n+1? • M better accept, because xL2 M x

  7. A non-regular language • What happens when we run M on input x = 0n+11n+1? • M better accept, because xL2 • But since M has n states, it must revisit at least one of its states while reading 0n+1 0 M x 0 0 0 0 0r1n+1

  8. Pigeonhole principle • Here, balls are 0s, bins are states: Suppose you are tossing n+ 1 balls into n bins. Then two balls end up in the same bin. If you have a DFA with n states and it reads n + 1 consecutive 0s, then it must end up in the same state twice.

  9. A non-regular language • What happens when we run M on input x = 0n+11n+1? • M better accept, because xL2 • But since M has n states, it must revisitat least one of its states while reading 0n+1 • But then the DFA must contain a loop with 0s 0 M x 0 0 0 0 0r1n+1

  10. A non-regular language • The DFA will then also accept strings that go around the loop multiple times • But such strings have more 0s than 1s, so they are not in L2! 0 M 0 0 0 0 0r1n+1

  11. General method for showing non-regularity • Every regular language L has a property: • For every sufficiently long input z in L, there is a “middle part” in z that, even if repeated several times, keeps the input inside L an z an-1 a1 ak+1 ak … … an+1…am

  12. Pumping lemma for regular languages • Theorem: For every regular language L There exists a number nsuch that for every string z in L, we can write z = u v w where |uv| ≤ n |v| ≥ 1 For every i≥ 0, the string u vi w is in L. v z … … w u

  13. Proving non-regularity • If L is regular, then: • So to prove L is not regular, it is enough to show: There exists nsuch that for every z in L, we can write z = u v w where|uv| ≤ n, |v| ≥ 1 and  For every i≥ 0, the string u vi w is in L. For every nthere exists z in L, such that for every way of writing z = u v w where|uv| ≤ n and|v| ≥ 1, the string u vi w is not in L for some i≥ 0.

  14. Proving non regularity For every nthere exists z in L, such that for every way of writing z = u v w where|uv| ≤ n and|v| ≥ 1, the string u vi w is not in L for some i≥ 0. • This is a game between you and an imagined adversary adversary choose nwrite z = uvw (|uv| ≤ n,|v| ≥ 1) you choose zLchoose iyou win if uviwL 1 2

  15. Proving non-regularity • You need to give a strategy that, regardless of what the adversary does, always wins you the game adversary choose nwrite z = uvw (|uv| ≤ n,|v| ≥ 1) you choose zLchoose iyou win if uviwL 1 2

  16. Example adversary choose nwrite z = uvw (|uv| ≤ n,|v| ≥ 1) you choose zLchoose iyou win if uviwL • L2 = {0n1n: n ≥ 0} S = {0, 1} 1 2 adversary choose nwrite z = uvw (|uv| ≤ n,|v| ≥ 1) you z= 0n+11n+1i = 2 uviw = 0j+2k+l1n+1= 0n+1+k1n+1 L 1 2 u = 0j, v = 0k, w = 0l1n+1 j + k + l = n + 1

  17. More examples S = {1} L3 = {1n: n is divisible by 3} L4 = {1n: n is prime} S = {0, 1} L5 = {x: x has same number of 0s and 1s} L6 = {x: x has same number of patterns 01 and 10} L7 = {x: x has more 0s than 1s} L8 = {x: x has different number of 0s and 1s}

More Related