Download presentation
Presentation is loading. Please wait.
Published byAmi Bell Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.