csci 2670 introduction to theory of computing september 23, 2004

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

Upload: ami-bell

Post on 06-Jan-2018

219 views

Category:

Documents


0 download

DESCRIPTION

September 23, 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

TRANSCRIPT

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

CSCI 2670Introduction to Theory of

Computing

September 23, 2004

Page 2: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 2

Agenda• Yesterday

– Pushdown automata• Today

– Quiz– More on pushdown automata– Pumping lemma for CFG’s

Page 3: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 4

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

Page 4: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 5

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 if1. It matches the top of the stack, or2. 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

Page 5: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 6

Example

ε,ε$

0,$0$0,0 000,11 1 0,1$ $

1,$1$1,1 111,00 0 1,0$ $

ε,$ ε

Page 6: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 7

Example

ε,ε$

0,$0$0,0 000,1 ε

1,$1$1,1 111,0 ε

ε,$ ε

This PDA is equivalent to the one on the previous slide

Page 7: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 8

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

Page 8: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 9

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

Page 9: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 10

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 Aw, you pop A and push w

• You can go to the accept state only if the stack is empty

Page 10: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 11

Idea of PDA construction for AxBz

State control

a b

At

State control

a b

xBzt

Page 11: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 12

Actual construction for AxBz

ε,Az ε, ε B

ε, ε x

In an abuse of notation, we say (q,ε,A)=(q,xBz)

Page 12: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 13

Constructing the PDA• Q = {qstart, qloop, qaccept}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)

Page 13: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 14

Constructing the PDA is comprised of several rules

1. (qstart,ε,ε)=(qloop,S$)- Start with placeholder on the stack and

with the start variable2. (qloop,a,a)=(qloop,ε) for every a

- Terminals may be read off the top of the stack

3. (qloop,ε,A)=(qloop,w) for every rule Aw- Implement replacement rules

4. (qloop,ε,$)=(qaccept,ε)- Accept when the stack is empty

Page 14: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 15

Example• S SS | (S) | ()

qstart qloop qacceptε, ε S$ ε, $ ε

(,(ε),)ε

ε,SSSε,S(S)ε,S()

Page 15: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 16

Example• Read (()())

qstart qacceptε, ε S$ ε, $ ε

(,(ε),)ε

ε,SSSε,S(S)ε,S() S

$qloop

Page 16: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 17

Example• Read (()())

qstart qacceptε, ε S$ ε, $ ε

(,(ε),)ε

ε,SSSε,S(S)ε,S()

qloop

(S)$

Page 17: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 18

Example• Read (()())

qstart qacceptε, ε S$ ε, $ ε

(,(ε),)ε

ε,SSSε,S(S)ε,S()

qloop

S)$

(

Page 18: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 19

Example• Read (()())

qstart qacceptε, ε S$ ε, $ ε

(,(ε),)ε

ε,SSSε,S(S)ε,S()

qloop

SS)$

(

Page 19: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 20

Example• Read (()())

qstart qacceptε, ε S$ ε, $ ε

(,(ε),)ε

ε,SSSε,S(S)ε,S()

qloop

()S)$

(

Page 20: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 21

Example• Read (()())

qstart qacceptε, ε S$ ε, $ ε

(,(ε),)ε

ε,SSSε,S(S)ε,S()

qloop

)S)$

((

Page 21: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 22

Example• Read (()())

qstart qacceptε, ε S$ ε, $ ε

(,(ε),)ε

ε,SSSε,S(S)ε,S()

qloop

S)$

(()

Page 22: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 23

Example• Read (()())

qstart qacceptε, ε S$ ε, $ ε

(,(ε),)ε

ε,SSSε,S(S)ε,S()

qloop

())$

(()

Page 23: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 24

Example• Read (()())

qstart qacceptε, ε S$ ε, $ ε

(,(ε),)ε

ε,SSSε,S(S)ε,S()

qloop

))$

(()(

Page 24: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 25

Example• Read (()())

qstart qacceptε, ε S$ ε, $ ε

(,(ε),)ε

ε,SSSε,S(S)ε,S()

qloop

)$

(()()

Page 25: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 26

Example• Read (()())

qstart qacceptε, ε S$ ε, $ ε

(,(ε),)ε

ε,SSSε,S(S)ε,S()

qloop

$

(()())

Page 26: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 27

Example• Read (()())

qstartε, ε S$ ε, $ ε

(,(ε),)ε

ε,SSSε,S(S)ε,S()

qloop

(()())

qaccept

Page 27: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 28

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

Page 28: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 29

The pumping lemma for CFG’s

• What might be repeated in a CFG?– The variables

TR

R

u v x y z

v & y will be repeated simultaneously

Page 29: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 30

The pumping lemma for CFG’s

TRR

u v x y z

TR

uv y

zR

x yvR

Page 30: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 31

The pumping lemma for CFG’s

TRR

u v x y z

TR

ux

z

Page 31: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 32

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, uvixyiz A2. |vy| > 03. |vxy| p

Page 32: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 33

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 bh 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

Page 33: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 34

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

Page 34: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 35

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

RR

u v x y z}At most |V|

+1 steps

Question: What do we know about uvixyiz?Answer: It is accepted by the PDA

Page 35: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 36

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

RR

u v x y z}At most |V|

+1 steps

Question: What do we know about |vy|?Answer: It is non-empty (because tree has fewest possible nodes)

Page 36: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 37

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

RR

u v x y z}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)

Page 37: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 38

Example• Show A is not context free, where

A={an|n is prime}Proof: Assume A is context-free and

let p be the pumping length of A. Let w=an for any np. By the pumping lemma, w=uvxyz such that |vxy|p, |vy|>0, and uvixyizA for all i=0,2,1….

Page 38: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 39

Example (cont.)• Show A is not context free, where

A={an|n is prime}Clearly, vy=ak for some kConsider the string uvn+1xyn+1z

This string add n copies of ak to w – i.e., this is an+nk

Since the exponent is n(1+k) this in not in A, which contradicts the pumping lemma. Therefore, A is not context free.

Page 39: CSCI 2670 Introduction to Theory of Computing September 23, 2004

September 23, 2004 40