260 likes | 376 Views
Complexity and Computability Theory I. Lecture #7 Instructor: Rina Zviel-Girshin Leah Epstein. Overview. Nonregular languages The pumping lemma Examples. Are all languages regular?. No. Most of the languages are not regular. Why? A finite automaton has limited memory. Example.
E N D
Complexity and Computability Theory I Lecture #7 Instructor: Rina Zviel-Girshin Leah Epstein
Overview • Nonregular languages • The pumping lemma • Examples Rina Zviel-Girshin @ASC
Are all languages regular? • No. • Most of the languages are not regular. • Why? • A finite automaton has limited memory. Rina Zviel-Girshin @ASC
Example The language L = {0n1n | n>0} is not regular. • Two sequences of same length: first of 0's and second of 1's. • It is not regular because when we reach substring of 1’s we have to remember the length of the 0’s substring. • The length is remembered by states - one state for each letter. • The length of 0's substring can be any number. • A finite automaton has a finite number of states. So it can not remember the length of 0’s substring. Rina Zviel-Girshin @ASC
The pumping lemma • The central theorem concerning regular languages is the pumping lemma. • It determines the basic nature of regular languages. • A basic property of a regular language is • in each word (except for a small finite set of words) there is a part which can be repeated and the resulting word - "pumped" word - is still in the language. • The lemma that allows the "pumping" is called the pumping lemma. Rina Zviel-Girshin @ASC
Examples of automata and finite languages • If L(A) is finite, and number of states in A is n, then the longest word in L is less than n in length. Example: A: A has 3 states. The language of A is all words of length 2 or less. Rina Zviel-Girshin @ASC
Finite Languages • If L is finite then L is regular. • Proof idea: • Build an automaton for every word w in L: A(w). • Add qstart with -transitions to each q0 of A(w) • The resulting automaton recognizes L. Rina Zviel-Girshin @ASC
Examples of automata and infinite languages L= ab*c A: Each word in L has a path q0any number of loops on q1q2. Denote the path from q0 to q1 by x Denote the path from q1 to q1 by y Denote the path from q1 to q2 by z Rina Zviel-Girshin @ASC
Examples (cont.) Each word in L has the following three parts: x – a substring on which A goes from q0 to q1 y – a substring on which A goes from q1 to q1 z – a substring on which A goes from q1 to q2 We can say that each word wL is xyz. Rina Zviel-Girshin @ASC
Examples (cont.) All the strings over the * We see that x and z can be . y is never . Rina Zviel-Girshin @ASC
Pumping lemma If L is a regular language then there is a number n such that any string w L of length at least n may be divided into three parts w=xyz such that: • |y|>0 • |xy| n • for each i0 xyiz L Rina Zviel-Girshin @ASC
Informally • For each regular language there is a constant number n, such that any string of length more than n can be pumped. • The pumped part is obviously should not be of length 0 (at least one letter). • The parts before and after the "pumpable" part could be . • The part we may pump is inside a prefix of length at most n. Rina Zviel-Girshin @ASC
Proof idea • Any finite automaton without cycles can recognize only a finite language. • An infinite language is created by automaton with loops. • The infinite number of words is the result of repeating the loop any number of times. • Each word in language L of length more than the number of states includes a path in a cycle (by the pigeonhole principle). Rina Zviel-Girshin @ASC
Proof idea • The part before the cycle is x. • The cycle is y. • The part after is z. • The z part ends with an accepting state as the word is in L. • The loop can be repeated any number of times and still go through z to an accepting state. • Hence the y part can be pumped. • We can repeat the cycle any number of times and still proceed through z to accepting state. Rina Zviel-Girshin @ASC
Formal Proof • Let M be a DFA that recognizes L. Let n be the number of states of M. • Let w be a string in L of length at least n. • It has a prefix of length n. The sequence of states in automaton M that we went through while processing the prefix is q0 and one state for each letter read. • After reading this prefix we have a sequence of n+1 length. Rina Zviel-Girshin @ASC
Formal Proof (cont.) • As there are only n different states in automaton M at least one state has to be repeated while reading the prefix. • Denote one of them r. • The substring read before first appearance of r : x. • The substring between first and second appearance: y. • And the substring after second appearance of r till the end of the string: z. Rina Zviel-Girshin @ASC
Formal Proof (cont.) • z ends with an accepting state f because the string is in L. • y is the cycle in the automaton. • y has at least length 1 because we move from state to state in the DFA only upon reading a letter. Rina Zviel-Girshin @ASC
Formal Proof (cont.) • As there is a path from r to an accepting state f (z) there is a direct path q0 - r - f without going through the r cycle even once (xy0z=xz). • On the other hand we can go through the cycle more than once and still get out from r to I (xyiz). • There is no limit on a number of times we can do through the cycle. Q.E.D. Rina Zviel-Girshin @ASC
Usage of the lemma The main usage of pumping lemma is to prove that some language is not regular. The technique: • Assume that the language is regular. • Find a string w that has a length greater than n. • Find a partition of w into x,y,z such that properties 1 and 2 of pumping lemma hold. • Find an i such that xyiz is not in the language. Rina Zviel-Girshin @ASC
L = {0m1m | m>0} • Is L = {0m1m | m>0} regular? • We will use pumping lemma to show that L is not regular. • Assume to the contrary that L is regular. • Let n be the pumping length given by the pumping lemma. • We choose w= 0n1n . • w is in L, |w|>n so by pumping lemma w can be divided into three parts w=xyz. Rina Zviel-Girshin @ASC
L = {0n1n | n>0} • x and y are both in prefix of length n and so are build of 0's. • Denote the length of x by s and the length of y by t. • Then : • x=0s s0 • y=0t t1,s+tn • z=0n-s-t1n • By pumping lemma if the language is regular then xyiz is in L for any i. Rina Zviel-Girshin @ASC
L = {0n1n | n>0} • Take i=2. • The resulting word is xy2z = 0s02t0n-s-t1n = 0n+t1n . • It is not in L as t1 and the number of 0 is greater than the number of 1. • Thus we have a contradiction to the pumping lemma. • That means: our assumption that L is regular is wrong. • L is not regular language. Rina Zviel-Girshin @ASC
L={an! | n0} • Is L={an! | n0} regular? • We will use pumping lemma to show that L is not regular. • Assume to the contrary that L is regular. • Let n’ be the pumping length given by the pumping lemma. • We choose w= an! where n=max(n’,2) . • w is in L, |w|>n’ so by pumping lemma w can be divided into three parts w=xyz. Rina Zviel-Girshin @ASC
L={an! | n0} • x and y are both in the prefix of length n and consist of a's only. • Denote the length of x by s and the length of y by t. • Then : • x=as s>=0 • y=at t>0,s+t<=n • z=an!-t-s • By pumping lemma if the language is regular then xyiz is in L for any i. Rina Zviel-Girshin @ASC
L={an! | n0} • Take i=2. • The resulting word is xy2z =an!+t . • Now we proove that an!+t is not in L. • We know that t>0 and n>=t that means n!+t <= n!+n < n!+(n+1) < n!*(n+1) = (n+1)! • Thus we have a contradiction to the pumping lemma. • That means: our assumption that L is regular is wrong. • L is not regular language. Rina Zviel-Girshin @ASC
Any Questions? Rina Zviel-Girshin @ASC