29
Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

  • View
    223

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

Transparency No. P2C3-1

Formal Languageand Automata Theory

Chapter 3

Pushdown Automata and Context-Free Languages

Page 2: Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

PDAs and CFLs

Transparency No. P2C3-2

NPDAsA NPDA (Nondeterministic PushDown Automata) is a 7-tuple M = (Q,,, ,s, , F) where

Q is a finite set (the states) is a finite set (the input alphabet) is a finite set (the stack alphabet) (Q x ( U {})x ) x (Q x *) is the transition relation s Q is the start state is the initial stack symbol F Q is the final or accept states

((p,a,A),(q,B1B2…Bk)) means that whenever the machine is in state p reading input symbol a on the input tape a

nd A on the top of the stack, it pops A off the stack, push B1B2…Bk onto the stack (Bk first and B1 last), move its read head right one cell past the a and enter state q.

((p,,A),(q,B1B2…Bk)) means similar to ((p,a,A),(q,B1B2…Bk)) except that it need not scan and consume any input symbol.

Page 3: Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

PDAs and CFLs

Transparency No. P2C3-3

Configurations

Collection of information used to record the snapshot of an executing NPDA

an element of Q x * x *. Configuration C = (q, x, w) means

the machine is at state q, the rest unread input string is x, the stack content is w.

Example: the configuration (p, baaabba, ABAC) might describe the situation:

A

B

A

C

a b a b b a a a b b a

p

Page 4: Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

PDAs and CFLs

Transparency No. P2C3-4

Start configuration and the next configuration relations

Given a NPDA M and an input string x, the configuration (s, x, ) is called the start configuration of NPDA on x.

CFM =def Q x * x * is the set of all possible configurations for a NPDA M.

One-step computation of a NPDA: (p, ay, A) --> (q, y , ) if ((p,a,A), (q, )) . (1) (p, y, A) --> (q, y, ) if ((p,,A),(q, )) . (2) Let the next configuration relation -->M on CFM

2 be the set of pairs of configurations satisfying (1) and (2).

-->M describes how the machine can move from one configuration to another in one step. (i.e., C -->M D iff D can be reached from C by executing one instruction)

Note: NPDA is nondeterministic in the sense that for each C there may exist multiple D’s s.t. C -->M D.

Page 5: Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

PDAs and CFLs

Transparency No. P2C3-5

Multi-step computations and acceptance

Given a next configuration relation -->M:

Define --->nM and --->*M as usual, i.e.,

C -->0M D iff C = D.

C -->n+1M iff E C-->n

M E and E-->M D.

C -->*M D iff n 0 C -->nM D.

i.e., --->*M is the ref. and trans. closure of --> M .

Acceptance: When will we say that an input string x is accepted by an NPDA M? two possible answers: 1. by final states: M accepts x ( by final state) iff (s,x, ) -->*M (p,, ) for some final state p F.

2. by empty stack: M accepts x by empty stack iff (s,x, ) -->*M (p,, ) for any state p. Remark: both kinds of acceptance have the same expressive power.

Page 6: Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

PDAs and CFLs

Transparency No. P2C3-6

Language accepted by a NPDAs

M = (Q,,s,,F) : a NPDA.

The languages accepted by M is defined as follows: 1. accepted by final state: Lf(M) = {x | M accepts x by final state}

2. accepted by empty stack: Le(M) = {x | M accepts x by empty stack}.

3. Note: Depending on the context, we may sometimes use Lf and sometimes use Le as the official definition of the language accepted by a NPDA. I.e., if there is no worry of confusion, we use L(M) instead of Le(M) or Lf(M) to denote the language accepted by M.

4. In general Le(M) Lf(M).

Page 7: Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

PDAs and CFLs

Transparency No. P2C3-7

Some example NPDAs

Ex 23.1 : M1: A NPDA accepting the set of balanced strings of parentheses [ ] by empty stack. M1 requires only one state q and behaves as follows:

1. while input is ‘[‘ : push ‘[‘ onto the stack ;

2. while input is ‘]’ and top is ‘[’ : pop

3. while input is ‘’ and top is pop.

Formal definition: Q = {q}, = {[,]}, = {[, },

start state = q, initial stack symbol = .

= { ( (q,[, ), (q, [) ), ( (q,[, [), (q, [[) ), // 1

( (q,], [), (q, ) ), // 2

( (q,, ), (q, ) ) } // 3Transition Diagram representation of the program :

==> ? This machine is not deterministic. Why ?

Page 8: Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

PDAs and CFLs

Transparency No. P2C3-8

Example execution sequences of M1:

let input x = [ [ [ ] ] [ ] ] [ ]. Then below is a successful computation of M1 on x:

(q, [ [ [ ] ] [ ] ] [ ], ) : the start configuration

-->M (q, [ [ ] ] [ ] ] [ ], [ ) instruction or transition (i)

-->M (q, [ ] ] [ ] ] [ ], [ [ ) transition (ii)

-->M (q, ] ] [ ] ] [ ], [ [ [ ) transition (ii)

-->M (q, ] [ ] ] [ ], [ [ ) transition (iii)

-->M (q, [ ] ] [ ], [) transition (iii)

-->M (q, ] ] [ ], [ [ ) transition (ii)

-->M (q, ] [ ], [ ) transition (iii)

-->M (q, [ ], ) transition (iii)

-->M (q, ], [ ) transition (i)

-->M (q, , ) transition (iii)

-->M (q, , ) transition (iv) accepts by empty stack

Page 9: Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

PDAs and CFLs

Transparency No. P2C3-9

Failure computation of M1 on x

Note besides the above successful computation, there are other computations that fail.

Ex: (q, [ [ [ ] ] [ ] ] [ ], ) : the start configuration

-->*M (q, [ ], )

-->M (q, [ ], ) transition (iv) a dead state at which the input is not empty and we cannot move further ==> failure!!Note: For a NPDA to accept a string x, we need only one succe

ssful computation (i.e., D with empty input and stack s.t. (s,x,) -->*M D. )

Theorem: String x {[,]}* is balanced iff it is accepted by M1 by empty stack.

Pf: direct result of the key lemma: For any string y, if L(z) R(z) for all prefixes z of y=zx, then (q, zx, ) -->*(q,x, [L(z)-R(z) )

Page 10: Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

PDAs and CFLs

Transparency No. P2C3-10

Another example

The set {ww | w {a,b}*} is known to be not Context-free but its complement

L1 = {a,b}* - {ww | w {a,b}*} is.

Exercise: As specified at p 147, design a NPDA to accept L1 by empty stack.

Hint: x L1 iff

(1) |x| is odd or

(2) x = yazubv or ybzuav for some y,z,u,v {a,b}*

with |y|=|z| and |u|=|v|.

Page 11: Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

PDAs and CFLs

Transparency No. P2C3-11

Equivalent expressive power of both types of acceptanceM = (Q,,,,s,,F) : a PDA Let u, t : two new states Q and : a new stack symbol .Define a new PDA M’ = (Q’,,’,’,s’, , F’) where

Q’ = Q U {u, t}, ’ = U { }, s’ = u, F’ = {t} and ’ = U { (u,, ) --> (s, ) } // push and call M U { (f, , A) -> (t,A) | f F and A ’ } /* return to M’ if entering into final states */ U {(t, ,A) --> (t,) | A ’ } // pop until EmptyStack

Diagram form relating M and M’:

Theorem: Lf(M) = Le(M’)

pf: M accepts x => (s, x, ) -->nM (q, , ) for some q F

=> (u, x, ) -->M’ (s, x, ) -->nM’ (q, , ) -->M’ (t, , )

-->*M’ (t,, ) => M’ accepts x by empty stack.

Page 12: Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

PDAs and CFLs

Transparency No. P2C3-12

From final state to emptystack:

M

s fu t(, , )*

(,A,A)+

for all As

(,A, )++ for all As

M’

*: push and call M+: return to t of M’ if entering into final states++: pop all stack symbols until emptystack

Page 13: Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

PDAs and CFLs

Transparency No. P2C3-13

From FinalState to EmptyStack

Conversely, M’ accepts x by empty stack

=> (u, x, ) -->M’ (s, x, ) -->*M’ (q, y, ) --> (t, y, ) -->*

(t, , ) for some q F

=> y = since M’ cannot consume any input symbol once it enters into state t. => M accepts x by final state.

Define next new PDA M’’ = (Q’,,’,’’,s’, , F’) where Q’ = Q U { u, t}, ’ = U {}, s’ = u, F’ = {t} and ’’ = U { (u,, ) --> (s, ) } // push and call M U { (p,,) -> (t, ) | p Q } /* return to M’’ and accept if EmptyStack */

Diagram form relating M and M’’:

Page 14: Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

PDAs and CFLs

Transparency No. P2C3-14

From EmptyStack to FinalState

Theorem: Le(M) = Lf(M’’).

pf: M accepts x => (s, x, ) -->nM (q, , )

=> (u, x, ) -->M’’ (s, x, ) -->nM’’ (q, , ) -->M’’ (t, , )

=> M’’ accepts x by final state (and empty stack).

Conversely, M’’ accepts x by final state (and empty stack)

=> (u, x, ) -->M’’ (s, x, ) -->*M’’ (q, y, ) -->M’’ (t, , ) for

some state q in Q

=> y = [and STACK= ] since M’’ does not consume any input symbol at the last transition ((q, , ), (t, ))

=> M accepts x by empty stack.

QED

Page 15: Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

PDAs and CFLs

Transparency No. P2C3-15

From emptystack to final state (and emptystack)

M

s fu t(, , )*

(,, )+

M’’

(,, )+

* : push and call M+: if emptystack (i.e.see on stack) , then pop and return to state t of M’’

Page 16: Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

PDAs and CFLs

Transparency No. P2C3-16

Equivalence of PDAs and CFGs

Every CFL can be accepted by a PDA.G = (N, ,P,S) : a CFG.

wlog assume all productions of G are of the form: A -> c BB2B3…Bk ( k0) and c U {}. note: 1. A -> satisfies such constraint; 2. can require k 3.

Define a PDA M = ({q}, , N, , q, S, {}) from G where q is the only state (hence also the start state), , the set of terminal symbols of G, is the input alphabet of

M, N, the set of nonterminals of G, is the stack alphabet of M, S, the start nonterminal of G, is the initial stack symbol of M, {} is the set of final states. (hence M accepts by empty stac

k!!) = { ((q,c,A), (q, B1B2…Bk)) | A -> c BB2B3…Bk P }

Page 17: Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

PDAs and CFLs

Transparency No. P2C3-17

Example

G : S -> [ B S (q, [, S) --> (q, B S)

S -> [ B (q, [, S) --> (q, B )

S-> [ S B ==> : (q, [, S) --> (q, S B)

S -> [ S B S (q, [, S) --> (q, S B S)

B -> ] (q, ], B) --> (q, )

L(G) = the set of nonempty balanced parentheses.

leftmost derivation v.s. computation sequence

(see table at p 153)

S L-->*G [ [ [ ] ] [ ] ] <==> (q, [[[]][]], S) -->*M (q, , )

Page 18: Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

PDAs and CFLs

Transparency No. P2C3-18

leftmost derivation v.s. computation sequence

Lemma 24.1: For any z,y *, N* and A N,

A L-->nG z iff (q, zy, A) -->n

M (q, y , )

Ex: S L-->3G [ [ [ BBSB <==> (q, [[[ ]][]] , S) -->3

M (q, ]][]], BBSB)

pf: By ind. on n.

Basis: n = 0. A L-->0G z iff z = and = A

iff (q, zy, A) = (q, y, ) iff (q, zy, A) -->0M (q,y,)

Ind. case: 1. (only-if part)

Suppose A L-->n+1G z and B -> c was the last rule applied.

I.e., A L-->nG uB L-->G uc = z with z = uc and .

Hence (q, u cy, A ) -->nM (q, cy, B) // by ind. hyp.

-->M (q, y, ) // since ((q,c,B),(q, ))

Page 19: Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

PDAs and CFLs

Transparency No. P2C3-19

leftmost derivation v.s. computation sequence (cont’d)

2. (if-part) Suppose (q, zy, A) -->n+1M (q, y, ) and

((q,c,B),(q, )) is the last transition executed. I.e.,

(q, zy, A) -->nM ( q, cy, ) -->M (q, y, ) with and z = uc

for some u. But then

A L-->nG uB // by ind. hyp.,

L--> uc = z // since by def. B -> c P

Hence A L-->n+1G z QED

Theorem 24.2: L(G) = L(M).

pf: x L(G) iff S L-->*G x

iff (q, x, S) -->*M (q, )

iff x L(M). QED

Page 20: Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

PDAs and CFLs

Transparency No. P2C3-20

Simulating PDAs by CFGs

Claim: Every language accepted by a PDA can be generated by a CFG.

Can be proved in two steps: 1. Every PDA with only one state has an equivalent CFG 2. Every PDA can be simulated by another PDA with only

one state. Note: Unlike FAs, according to 2, minimization of the num

ber of sates of a PDA is meaningless. M = ({s}, , , , s, , {}) : a PDA with only one state.

Define a CFG G = (, , P, ) where

P = { A -> c | ((q, c, A), (q, )) }

Note: M ==> G is just the inverse of the transformation :

G ==> M defined at slide 15.

Page 21: Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

PDAs and CFLs

Transparency No. P2C3-21

Simulating PDAs by single-state PDAs

Theorem: L(G) = L(M).

Pf: Lemma 24.1 and Theorem 24.2 and their proofs are all valid to the present G and M. QED

How to simulate arbitrary PDA by a single-state PDA ? idea: store all state information on the stack !!

Wlog, assume M = (Q, , , , s, , {t}) be a PDA with only one final state and M can empty its stack after it enters into its final state.

Let’ = Q x x Q . Elements of ’ are written as <pAq>.

Define a new PDA M’ = ({$}, , ’, ’, $, <st>, {}) where

’ = { (($, c, <p A qk>), ($, <q B1 q1> <q1 B2 q2> ... <qk-1 Bk qk>))

| ((p,c,A), (q, B1B2…Bk)) kc U

q1,…,qk Q } U

{ (($, c, <p A q>), ($, )) | ((p,c,A), (q,)) ∈ }

Page 22: Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

PDAs and CFLs

Transparency No. P2C3-22

(p, c, A) --> (q, B1B2...Bk)

A

C

p

c x1x2...

t t1

t2t2

t1

p

Bk-1

Bk

C

q

c x1x2...

B1

B2

t

t1

t1

t2

qk=t2qk-1

qk-1

q1

q1 q2

q2 ....

q

We want to use <pAq> * w to simulatethe computation: (p, wy, A) *M (q, y, )So, if (p,c,A) M (q, ) we have rules :<p A r> c <q r> for all states r.

Page 23: Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

PDAs and CFLs

Transparency No. P2C3-23

How to derive the rule <p A r> c <q r> ?

How to derive rules for the nonterminal : <q r>case 1: = B1B2B3…Bn ( n > 0)

=> <q r > = <q B1Q B2QB3Q…QBnr>

=> <q r > <q B1 q1 > <q1 B2 q2> …

<q n-1 Bn r> for all states q1,q2,…,q n-1 in Q.

case2: = . q = r => <q r> = <q r> . q != r => <q r > cannot derive any string.

Then <pAq> c <qq> = c.

Page 24: Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

PDAs and CFLs

Transparency No. P2C3-24

Simulating PDAs by single-state PDAs (cont’d)

Note: Besides storing sate information on the stack, M’ simulate M by guessing nondeterministically what states M will be in at certain future points in the computation, saving its guesses on the stack, and then verifying later that those guesses are correct.

Lemma 25.1: (p,x,B1B2…Bk) -->nM (q,) iff

q0,q1,q2,…qk with p = q0, q = qk and

($,x,<q0 B1 q1><q1 B2 q2>…<q k-1 Bk qk>) -->nM’ ($,).

In particular, (p,x,B) -->n M (q,) iff ($,x,<pBq>) -->nM’ ($,).

Pf: by ind. on n. Basis: n = 0. Trivial (both sides are false!).

(=>:) Now suppose (p,x,B1B2…Bk) -->n+1 M (q,) with ((p,c,B1),(r,C1C2…Cm)) the first instr. applied. then

(p,x,B1B2…Bk) -->M (r, yC1C2…CmB2…Bk)-->nM (q,) where x

= cy.

Page 25: Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

PDAs and CFLs

Transparency No. P2C3-25

Simulating PDAs by single-state PDAs (cont’d)

By ind. hyp., rrm-1,(rm= q1), q2,… qk with r = r0, q = qk and

($,y,<r0 C1 r1> <r1 C2 r2>... <rm-1 Cm q1> <q1 B2 q2> …<qk-1 Bk qk>)

-->nM’ ($,).

Also by construction of M’:

($,c, <p B1 q1>), ($, ,<r0 C1 r1> <r1 C2 r2>... <rm-1 Cm q1>) ’. Combining these, we get:

($,x, <p B1 q1> <q1 B2 q2> …<q k-1 Bk qk>)

--> M’ ($, y, <r0 C1 r1> <r1 C2 r2>... <rm-1 Cm q1> <q1 B2 q2> …<q k-1 B

k qk>) -->nM’ ($,).

(<=:)

Suppose ($,x,<q0 B1 q1><q1 B2 q2>…<q k-1 Bk qk>) -->n+1M’ ($,).

Let ($,c, <q0 B1 q1>), ($, <r0 C1 r1> <r1 C2 r2>... <rm-1 Cm rm>) ’ be the first transition taken. Then

x = cy and q1 = rm (by def of ’)

Page 26: Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

PDAs and CFLs

Transparency No. P2C3-26

Simulating PDAs by single-state PDAs (cont’d)

($,x, <q0 B1 q1> <q1 B2 q2> …<q k-1 Bk qk>)

--> M’ ($, y, <r0 C1 r1> <r1 C2 r2>... <rm-1 Cm q1> <q1 B2 q2> …

<q k-1 Bk qk>) -->nM’ ($,). But then

(q0,x,B1…Bk) -->M (r0,y, C1C2…CmB2…Bn) --- By const of M’

-->n M (qk,). -- ,by ind. hyp. QED

Theorem 25.2 L(M’) = L(M).

Pf: x L(M’) iff ($, x, <st>) -->*M’ ($,)

iff (s,x, ) -->*M (t,) ---- Lemma 25.1

iff x L(M). QED

Page 27: Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

PDAs and CFLs

Transparency No. P2C3-27

Example

L = {x {a,b}* | #a(x) = #b(x) } can be accepted by the PDA

M = (Q, , , , p, ,{t} ), where

Q = {p,q,r,t}, = {a,b}, = {C, ,and is given as follows: (p, a, ) --> (q, A ), (p,b, ) --> (r,A ), (q, a, A) --> (q, AA), (q,b,A) --> (q,), (q,b, ) (r,A) (r, b, A) --> (r, AA), (r,a,A) --> (r, ), (r,a, ) (q,A) (X, , ) (t, ) where X = p,q,r.

tp

q

r

a,/A

b,/A

,/

,/

,/

a,/A b,/A

a,A/AAa,/A b,A/

b,A/AAb,/Aa,A/

Page 28: Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

PDAs and CFLs

Transparency No. P2C3-28

tp

q

r

a,/A

b,/A

,/

,/

,/

a,/A b,/A

a,A/AA

b,A/AA

Page 29: Transparency No. P2C3-1 Formal Language and Automata Theory Chapter 3 Pushdown Automata and Context-Free Languages

PDAs and CFLs

Transparency No. P2C3-29

M can be simulated by the CFG G ={N,, <pt>, P) whereN { <p X> ,<qAX>,<q X>,<rAX>,<r X> | X = p,q,r,t}. For the nonterminals <p X> , we have

<pp> a <qAp> | b <rAp> | <tp> <pq> a <qAq> | b <rAq> | <tq> <pr> a <qAr> | b <rAr> | <tr> <pt> a <qAt> | b <rAt> | <tt> =

For the nonterminal <qAq> , we have: <qAq> <qAX><Xq> where X = p,q,r or t. => <qAq> <qAp> <pq> | <qAq><qq> | <qAr><rq> | <qAt> <tq>

and similarly, we have <rAq> <rAq><qq> | <rAr><rq> <qAr> <qAr><r r> |<qAq><q r> <rAr> <rAq><q r> | <rAr><r r> <qA t> <qAq><q t> | <qAr><r t> | <qAt> <t t> <rAt> <rAq><q t> | <rAr><r t> | <rAt> <t t>

The cases for <qAX>,<q X>,<rAX>,<r X> can be done analogously.