Push Down Automata
Push Down Automata
(PDA)
By,
Mr.R.Karunamoorthi,
AP / CSE
Pushdown automata are machines to accept context-free
languages.
For a context-free grammar G, there is an equivalent
pushdown automaton M to recognize the language
generated by the grammar G.
Description of pushdown automaton (PDA)
A PDA has
an input tape,
a stack.
0 0 0 1 0 0 0 (input tape)
(finite control) 0
(stack)
There are 2 types of moves (Non-determinstic):
0 0 1 0 0 0 1 0
δ B
G G
q1 q1
R R
-Moves:
0 0 1 0 0 0 1 0
δ B
G G
q1 q1
R R
Example: N(M) = {wwR| w in (0+1)*}, where
M = ({q1, q2}, {0, 1}, {Z0, 0, 1}, δ, q1, Z0, {}), and δ is as follows:
top
Z0
1. δ(q0,0, Z0)={(q0,0Z0)}
2. δ(q0,1, Z0)={(q0,1Z0)} First symbol push on stack
3. δ(q0,0, 0)={(q0,00)}
4. δ(q0,0, 1)={(q0,01)} Grow the stack by pushing
5. δ(q0,1, 0)={(q0,10)} new symbols on top of old
6. δ(q0,1, 1)={(q0,11)}
(w-part)
7. δ(q0, , 0)={(q1, 0)}
8. δ(q0, , 1)={(q1, 1)}
Switch to popping mode
9. δ(q0, , Z0)={(q1, Z0)} (boundary between w and wR)
δ(qi,a, X)={(qj,Y)}
Next
qi
a, X / Y q state
j
12
PDA for Lwwr: Transition Diagram
∑ = {0, 1}
= {Z0, 0, 1}
Q = {q0,q1,q2}
0, Z0/0Z0
Grow stack Pop stack for
1, Z0/1Z0 matching symbols
0, 0/00
0, 1/01
1, 0/10 0, 0/
1, 1/11 1, 1/
q0 q1 q2
, Z0/Z0 , Z0/Z0 , Z0/Z0
, 0/0 Go to acceptance
, 1/1
Switch to
popping mode
This would be a non-deterministic PDA 13
Instantaneous descriptions:
0 0 1 0 0 0 1 0
δ B
G G
q1 q1
R R
15
How does the PDA for Lwwr work on input
“1111”?
All moves made by the non-deterministic PDA
(q0,1111,Z0)
(q0,1,111Z0) (q1,11,11Z0)
Acceptance by
(q0,,1111Z0) (q1,1,111Z0) (q1,1,1Z0) final state:
Acceptance by…
• PDAs that accept by final state:
– For a PDA P, the language accepted by P, denoted by L(P)
by final state, is:
• {w | (q0,w,Z0) |---* (q,, A) }, s.t., q F Checklist:
- input exhausted?
- in a final state?
(, Z0 / ( Z0
(, ( / ( ( ), ( /
q0 q1 q2
, Z0 / Z0 ), ( / , Z0 / Z0
, Z0 / Z0 Go to acceptance (by final state)
Switch to when you see the stack bottom symbol
(, ( / ( (
popping mode (, Z / ( Z
0 0
To allow adjacent
19
Example 2: language of balanced paranthesis
(another design)
∑ = { (, ) }
(,Z0 / ( Z0 = {Z0, ( }
(,( / ( ( Q = {q0,q1}
), ( /
start ,Z0/ Z0
q0 q1
,Z0/ Z0
20
Example: L of balanced parenthesis
An equivalent PDA that
PDA that accepts by final state accepts by empty stack
(,Z0 / ( Z0
PF: PN:
(,Z0 / ( Z0 (, ( / ( (
(,( / ( ( ), ( /
), ( / ,Z0 /
start ,Z0/ Z0 start
q0 q1 q0
,Z0/ Z0 ,Z0/ Z0
23
How to convert an empty stack PDA into a final state PDA?
PN==> PF construction
• Whenever PN’s stack becomes empty, make PF go to a final state
without consuming any addition symbol. new state pf is needed.
• To detect empty stack in PN: PF pushes a new stack symbol X0 (not in
of PN) initially before simulating PN
• New start state p0 in Pf that pushes Z0 onto TOS and goes to PN
PN PN = (QN,∑, , δN,q0,Z0)
PN:
, X0/Z0X0 , any/ , any/
New p0 q0 , any/ p
start … e
, any/
PF
26
Equivalence of PDAs and CFGs
27
CFGs == PDAs ==> CFLs
PDA by PDA by
≡
final state empty stack
?
CFG
28
This is same as: “implementing a CFG using a PDA”
Converting CFG to PDA
Main idea: The PDA simulates the leftmost derivation on a
given w, and upon consuming it fully it either arrives at
acceptance (by empty stack) or non-acceptance.
accept
OUTPUT
PDA
INPUT
w (acceptance by
empty stack)
reject
implements
CFG
29
Main idea: The PDA simulates the leftmost derivation on a given w, and
upon consuming it fully it either arrives at acceptance (by empty stack)
or non-acceptance.
Steps:
1. Push the right hand side of the production onto the stack, with
leftmost symbol at the stack top
2. If stack top is the leftmost variable, then replace it by all its
productions (each possible substitution will represent a distinct
path taken by the non-deterministic PDA)
3. If stack top has a terminal symbol, and if it matches with the next
symbol in the input string, then pop it
State is inconsequential (only one state is needed)
30
Formal construction of PDA from CFG
Note: Initial stack symbol (S)
• Given: G= (V,T,P,S) same as the start variable
in the grammar
• Output: PN = ({q}, T, V U T, δ, q, S)
• δ:
– For all A V , add the following transition(s) in the
Before: PDA: After:
A • δ(q, ,A) = { (q, ) | “A ==>” P}
…
…
Before: – For all a T, add the following
After: a…
a
transition(s) in the PDA:
a pop
• δ(q,a,a)= { (q, ) }
…
…
31
Example: CFG to PDA
1,1 /
• G = ( {S,A}, {0,1}, P, S) 0,0 /
• P: ,A / 01
,A / A1
– S ==> AS |
,A / 0A1
– A ==> 0A1 | A1 | 01
,S /
• PDA = ({q}, {0,1}, {0,1,A,S}, δ, q, S) ,S / AS
,S / S
• δ:
q
– δ(q, , S) = { (q, AS), (q, )}
– δ(q, , A) = { (q,0A1), (q,A1), (q,01) }
– δ(q, 0, 0) = { (q, ) }
– δ(q, 1, 1) = { (q, ) }
How will this new PDA work?
Lets simulate string 0011
32
Simulating string 0011 on the new PDA
…
PDA (δ): Leftmost deriv.:
δ(q, , S) = { (q, AS), (q, )} 1,1 /
0,0 /
δ(q, , A) = { (q,0A1), (q,A1), (q,01) } ,A / 01
S => AS
,A / A1 => 0A1S
δ(q, 0, 0) = { (q, ) } ,A / 0A1
=> 0011S
δ(q, 1, 1) = { (q, ) } ,S /
,S / AS => 0011
,S / S
Stack moves (shows only the successful path): q
0 0
A A 1 1
A 1 1 1 1 1 Accept by
S S S S S S S S
empty stack
0 0 1 1
a a b b a a b b
δ(q, b, B) := (q, )
B
q q B
B
δ(q, b, B) := (q, )
a a b b
q
Converting a PDA into a CFG
39
Deterministic PDAs
40
This PDA for Lwwr is non-deterministic
Grow stack
0, Z0/0Z0
Why
Whydoes
doesitit
1, Z0/1Z0 Pop stack for have
haveto
tobe
be
0, 0/00 matching symbols non-
non-
0, 1/01 deterministic?
deterministic?
1, 0/10 0, 0/
1, 1/11 1, 1/
q0 q1 q2
, Z0/Z0 , Z0/Z0
, 0/0
, 1/1 Accepts by final state
Switch to To
Toremove
removeguessing,
guessing,
popping mode impose
imposethe theuser
userto
to
insert
insertccininthe
the
middle
middle
41
Example shows that: Nondeterministic PDAs ≠ D-PDAs
q0 q1 q2
c, Z0/Z0 , Z0/Z0
c, 0/0
c, 1/1 Accepts by
Switch to final state
popping mode
42
Deterministic PDA: Definition
43
PDA vs DPDA vs Regular languages
Lwcwr Lwwr
D-PDA
Regular languages
non-deterministic PDA
44
Summary
• PDAs for CFLs and CFGs
– Non-deterministic
– Deterministic
• PDA acceptance types
1. By final state
2. By empty stack
• PDA
– IDs, Transition diagram
• Equivalence of CFG and PDA
– CFG => PDA construction
– PDA => CFG construction
45