170 likes | 351 Views
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.
E N D
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 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?
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}
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, …}
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.
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 xL2 M x
A non-regular language • What happens when we run M on input x = 0n+11n+1? • M better accept, because xL2 • 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
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.
A non-regular language • What happens when we run M on input x = 0n+11n+1? • M better accept, because xL2 • 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
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
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
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
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.
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 zLchoose iyou win if uviwL 1 2
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 zLchoose iyou win if uviwL 1 2
Example adversary choose nwrite z = uvw (|uv| ≤ n,|v| ≥ 1) you choose zLchoose iyou win if uviwL • 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
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}