Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSCI 2670 Introduction to Theory of Computing September 23, 2004.

Similar presentations


Presentation on theme: "CSCI 2670 Introduction to Theory of Computing September 23, 2004."— Presentation transcript:

1 CSCI 2670 Introduction to Theory of Computing September 23, 2004

2 2 Agenda Yesterday –Pushdown automata Today –Quiz –More on pushdown automata –Pumping lemma for CFG’s

3 September 23, 20043 A closer look at the transition rule (r i+1,b)  (r i,w i+1,a), where s i =at and s i+1 =bt for some a,b  ε and t  * –The top symbol is Pushed if a=ε and b  ε Popped if a  ε and b=ε Changed if a  ε and b  ε Unchanged if a=ε and b=ε –Symbols below the top of the stack may be considered, but not changed This is t’s role

4 September 23, 20044 Example Find  for the PDA that accepts all strings in {0,1} * with the same number of 0’s and 1’s 1.Need to keep track of “equilibrium point” with a $ on the stack 2.If stack top is not $, it contains the symbol currently dominating in the string

5 September 23, 20045 Example Find  for the PDA that accepts all strings in {0,1} * with the same number of 0’s and 1’s 3.Push a symbol on the stack as its read if 1.It matches the top of the stack, or 2.The top of stack is $ 4.Pop the symbol off the top of the stack if you read a 0 and the top of stack is 1 or vice versa

6 September 23, 20046 Example ε,ε$ε,ε$ 0,$  0$ 0,0  00 0,11  1 0,1$  $ 1,$  1$ 1,1  11 1,00  0 1,0$  $ ε,$  ε

7 September 23, 20047 Example ε,ε$ε,ε$ 0,$  0$ 0,0  00 0,1  ε 1,$  1$ 1,1  11 1,0  ε ε,$  ε This PDA is equivalent to the one on the previous slide

8 September 23, 20048 Equivalence of PDA’s and CFG’s Theorem: A language is context free if and only if some pushdown automaton recognizes it Proved in two lemmas – one for the “if” direction and one for the “only if” direction

9 September 23, 20049 CFG’s are recognized by PDA’s Lemma: If a language is context free, then some pushdown automaton recognizes it Proof idea: Construct a PDA following CFG rules

10 September 23, 200410 Constructing the PDA You can read any symbol in  when that symbol is at the top of the stack –Transitions of the form a,a  ε The rules will be pushed onto the stack – when a variable A is on top of the stack and there is a rule A  w, you pop A and push w You can go to the accept state only if the stack is empty

11 September 23, 200411 Idea of PDA construction for A  xBz State control a b AtAt State control a b xBztxBzt

12 September 23, 200412 Actual construction for A  xBz ε,A  z ε, ε  B ε, ε  x In an abuse of notation, we say  (q,ε,A)=(q,xBz)

13 September 23, 200413 Constructing the PDA Q = {q start, q loop, q accept }  E, where E is the set of states used for replacement rules onto the stack  (the PDA alphabet) is the set of terminals in the CFG  (the stack alphabet) is the union of the terminals and the variables and {$} (or some suitable placeholder)

14 September 23, 200414 Constructing the PDA  is comprised of several rules 1.  (q start,ε,ε)=(q loop,S$) -Start with placeholder on the stack and with the start variable 2.  (q loop,a,a)=(q loop,ε) for every a  -Terminals may be read off the top of the stack 3.  (q loop,ε,A)=(q loop,w) for every rule A  w -Implement replacement rules 4.  (q loop,ε,$)=(q accept,ε) -Accept when the stack is empty

15 September 23, 200415 Example S  SS | (S) | () q start q loop q accept ε, ε  S$ε, $ εε, $ ε (,(  ε ),)  ε ε,S  SS ε,S  (S) ε,S  ()

16 September 23, 200416 Example Read (()()) q start q accept ε, ε  S$ε, $ εε, $ ε (,(  ε ),)  ε ε,S  SS ε,S  (S) ε,S  () S$S$ q loop

17 September 23, 200417 Example Read (()()) q start q accept ε, ε  S$ε, $ εε, $ ε (,(  ε ),)  ε ε,S  SS ε,S  (S) ε,S  () q loop (S)$(S)$

18 September 23, 200418 Example Read (()()) q start q accept ε, ε  S$ε, $ εε, $ ε (,(  ε ),)  ε ε,S  SS ε,S  (S) ε,S  () q loop S)$S)$ (

19 September 23, 200419 Example Read (()()) q start q accept ε, ε  S$ε, $ εε, $ ε (,(  ε ),)  ε ε,S  SS ε,S  (S) ε,S  () q loop S SS)$SS)$ (

20 September 23, 200420 Example Read (()()) q start q accept ε, ε  S$ε, $ εε, $ ε (,(  ε ),)  ε ε,S  SS ε,S  (S) ε,S  () q loop ()S)$()S)$ (

21 September 23, 200421 Example Read (()()) q start q accept ε, ε  S$ε, $ εε, $ ε (,(  ε ),)  ε ε,S  SS ε,S  (S) ε,S  () q loop )S)$)S)$ ((

22 September 23, 200422 Example Read (()()) q start q accept ε, ε  S$ε, $ εε, $ ε (,(  ε ),)  ε ε,S  SS ε,S  (S) ε,S  () q loop S)$S)$ (()

23 September 23, 200423 Example Read (()()) q start q accept ε, ε  S$ε, $ εε, $ ε (,(  ε ),)  ε ε,S  SS ε,S  (S) ε,S  () q loop ())$())$ (()

24 September 23, 200424 Example Read (()()) q start q accept ε, ε  S$ε, $ εε, $ ε (,(  ε ),)  ε ε,S  SS ε,S  (S) ε,S  () q loop ))$))$ (()(

25 September 23, 200425 Example Read (()()) q start q accept ε, ε  S$ε, $ εε, $ ε (,(  ε ),)  ε ε,S  SS ε,S  (S) ε,S  () q loop )$)$ (()()

26 September 23, 200426 Example Read (()()) q start q accept ε, ε  S$ε, $ εε, $ ε (,(  ε ),)  ε ε,S  SS ε,S  (S) ε,S  () q loop $ (()())

27 September 23, 200427 Example Read (()()) q start ε, ε  S$ε, $ εε, $ ε (,(  ε ),)  ε ε,S  SS ε,S  (S) ε,S  () q loop (()()) q accept

28 September 23, 200428 The pumping lemma for RE’s The pumping lemma for RE’s depends on the structure of the DFA and the fact that a state must be revisited –Only a finite number of states x y z

29 September 23, 200429 The pumping lemma for CFG’s What might be repeated in a CFG? –The variables T R R uvx yz v & y will be repeated simultaneously

30 September 23, 200430 The pumping lemma for CFG’s T R R uvx yz T R u v y z R x y v R

31 September 23, 200431 The pumping lemma for CFG’s T R R uvx yz T R u x z

32 September 23, 200432 The pumping lemma for CFL’s Theorem: If A is a context-free language, then there is a number p (the pumping length) where, if s is any string in A of length at least p, then s may be divided into five pieces s=uvxyz satisfying the conditions: 1.For each i  0, uv i xy i z  A 2.|vy| > 0 3.|vxy|  p

33 September 23, 200433 Finding the pumping length of a CFL Let b equal the longest right-hand side of any rule (assume b > 1) –Each node in the parse tree has at most b children –At most b h nodes are h steps from the start node Let p equal b |V|+2, where |V| is the number of variables (could be huge!) –Tree height is at least |V|+2

34 September 23, 200434 Proving the pumping lemma for CFG’s Let s be any string in A with length at least p = b |V|+2 and let  be a parse tree for s with the fewest possible nodes –The height of  is at least |V|+2 –The longest path in  has a length of at least |V|+2 Leaf is a terminal and at least |V|+1 variables –Some variable appears twice in the path

35 September 23, 200435 Proving the pumping lemma for CFG’s Let R be the last variable to appear twice on this path –The last two occurrences of R are both at most |V|+1 steps from the leaf T R R uvx yz } At most |V|+1 steps Question: What do we know about uv i xy i z? Answer: It is accepted by the PDA

36 September 23, 200436 Proving the pumping lemma for CFG’s Let R be the last variable to appear twice on this path –The last two occurrences of R are both at most |V|+1 steps from the leaf T R R uvx yz } At most |V|+1 steps Question: What do we know about |vy|? Answer: It is non-empty (because tree has fewest possible nodes)

37 September 23, 200437 Proving the pumping lemma for CFG’s Let R be the last variable to appear twice on this path –The last two occurrences of R are both at most |V|+1 steps from the leaf T R R uvx yz } At most |V|+1 steps Question: What do we know about |vxy|? Answer: It has at most p symbols (because at most |V|+1 steps)

38 September 23, 200438 Example Show A is not context free, where A={a n |n is prime} Proof: Assume A is context-free and let p be the pumping length of A. Let w=a n for any n  p. By the pumping lemma, w=uvxyz such that |vxy|  p, |vy|>0, and uv i xy i z  A for all i=0,2,1….

39 September 23, 200439 Example (cont.) Show A is not context free, where A={a n |n is prime} Clearly, vy=a k for some k Consider the string uv n+1 xy n+1 z This string add n copies of a k to w – i.e., this is a n+nk Since the exponent is n(1+k) this in not in A, which contradicts the pumping lemma. Therefore, A is not context free.

40 September 23, 200440


Download ppt "CSCI 2670 Introduction to Theory of Computing September 23, 2004."

Similar presentations


Ads by Google