2. Fall 2006 Costas Busch - RPI 2
Pushdown Automaton -- PDA
Input String
Stack
States
3. Fall 2006 Costas Busch - RPI 3
Initial Stack Symbol
Stack
$
Stack
z
bottom special symbol
stack
head
top
Appears at time 0
4. Fall 2006 Costas Busch - RPI 4
The States
q1 q2
a, b c
Input
symbol
Pop
symbol
Push
symbol
5. Fall 2006 Costas Busch - RPI 5
q1 q2
a, b c
a
b top
input
stack
a
Replace
e
h
$
e
h
$
c
6. Fall 2006 Costas Busch - RPI 6
q1 q2
a, c
a a
Push
b
e
h
$
e
h
$
b
c
top
input
stack
7. Fall 2006 Costas Busch - RPI 7
q1 q2
a, b
a a
Pop
b
e
h
$
e
h
$
top
input
stack
8. Fall 2006 Costas Busch - RPI 8
q1 q2
a,
a a
No Change
b
e
h
$
e
h
$
btop
input
stack
9. Fall 2006 Costas Busch - RPI 9
q1 q2
cba ,
a
Pop
top
input
stack
Pop from Empty Stack
Automaton halts!
If the automaton attempts to pop from
empty stack then it halts and rejects input
10. Fall 2006 Costas Busch - RPI 10
Non-Determinism
q1
q2a, b c
q3
a, b c
q1 q2
, b c
transition
PDAs are non-deterministic
Allowed non-deterministic transitions
11. Fall 2006 Costas Busch - RPI 11
Example PDA
,
a, a
b, a q0 q1 q2 q3
b, a
, $ $
PDA :M }0:{)( nbaML nn
12. Fall 2006 Costas Busch - RPI 12
,
a, a
b, a q0 q1 q2 q3
b, a
, $ $
}0:{)( nbaML nn
Basic Idea:
1. Push the a’s
on the stack
2. Match the b’s on input
with a’s on stack
3. Match
found
13. Fall 2006 Costas Busch - RPI 13
a, a
b, a
0q q1 q2 q3
Execution Example:
Input
a a a b b b
current
state
b, a
Time 0
, , $ $
Stack
$
14. Fall 2006 Costas Busch - RPI 14
a, a
b, a q0 q1 q2 q3
Input
a a a b b b
b, a
Time 1
, , $ $
Stack
$
15. Fall 2006 Costas Busch - RPI 15
a, a
b, a q0 q1 q2 q3
Input
Stack
a a a b b b
$
a
b, a
Time 2
, , $ $
16. Fall 2006 Costas Busch - RPI 16
a, a
b, a q0 q1 q2 q3
Input
Stack
a a a b b b
$
a
a
b, a
Time 3
, , $ $
17. Fall 2006 Costas Busch - RPI 17
a, a
b, a q0 q1 q2 q3
Input
Stack
a a a b b b
$
a
a
a
b, a
Time 4
, , $ $
18. Fall 2006 Costas Busch - RPI 18
a, a
b, a q0 q1 q2 q3
Input
a a a b b b
Stack
$
a
a
a
b, a
Time 5
, , $ $
19. Fall 2006 Costas Busch - RPI 19
a, a
b, a q0 q1 q2 q3
Input
a a a b b b
$
a
Stack
b, a
Time 6
, , $ $
a
20. Fall 2006 Costas Busch - RPI 20
a, a
b, a q0 q1 q2 q3
Input
a a a b b b
$
Stack
b, a
Time 7
, , $ $
a
21. Fall 2006 Costas Busch - RPI 21
a, a
b, a q0 q1 q2 q3
Input
a a a b b b
b, a
Time 8
accept
, , $ $
$
Stack
22. Fall 2006 Costas Busch - RPI 22
A string is accepted if there is
a computation such that:
All the input is consumed
AND
The last state is an accepting state
we do not care about the stack contents
at the end of the accepting computation
23. Fall 2006 Costas Busch - RPI 23
0q
a, a
b, a q1 q2 q3
Rejection Example:
Input
a a b
current
state
b, a
Time 0
, , $ $
Stack
$
24. Fall 2006 Costas Busch - RPI 24
0q
a, a
b, a q1 q2 q3
Rejection Example:
Input
a a b
current
state
b, a
Time 1
, , $ $
Stack
$
25. Fall 2006 Costas Busch - RPI 25
0q
a, a
b, a q1 q2 q3
Rejection Example:
Input
a a b
current
state
b, a
Time 2
, , $ $
Stack
$
a
26. Fall 2006 Costas Busch - RPI 26
0q
a, a
b, a q1 q2 q3
Rejection Example:
Input
a a b
current
state
b, a
Time 3
, , $ $
Stack
$
a
a
27. Fall 2006 Costas Busch - RPI 27
0q
a, a
b, a q1 q2 q3
Rejection Example:
Input
a a b
current
state
b, a
Time 4
, , $ $
Stack
$
a
a
28. Fall 2006 Costas Busch - RPI 28
0q
a, a
b, a q1 q2 q3
Rejection Example:
Input
a a b
current
state
b, a
Time 4
, , $ $
Stack
$
a
a
reject
29. Fall 2006 Costas Busch - RPI 29
The string is rejected by the PDAaab
a, a
b, a q0 q1 q2 q3
b, a
, , $ $
There is no accepting computation for aab
30. Fall 2006 Costas Busch - RPI 30
Another PDA example
, $ $q1
q2
bb
aa
,
,
, q0
bb
aa
,
,
PDA :M }},{:{)(
bavvvML R
31. Fall 2006 Costas Busch - RPI 31
, $ $q1
q2
bb
aa
,
,
, q0
bb
aa
,
,
}},{:{)(
bavvvML R
Basic Idea:
1. Push v
on stack
2. Guess
middle
of input
3. Match on input
with v on stack
R
v
4. Match
found
32. Fall 2006 Costas Busch - RPI 32
Execution Example:
Input
Time 0
Stack
$
, $ $q1
q2
bb
aa
,
,
, q0
bb
aa
,
,
a ab b
33. Fall 2006 Costas Busch - RPI 33
Input
a ab
Time 1
Stack
$
, $ $q1
q2
bb
aa
,
,
, q0
bb
aa
,
,
ab
34. Fall 2006 Costas Busch - RPI 34
Input
Time 2
Stack
$
, $ $q1
q2
bb
aa
,
,
, q0
bb
aa
,
,
a
a ab b
b
35. Fall 2006 Costas Busch - RPI 35
Input
Time 3
Stack
$
, $ $q1
q2
bb
aa
,
,
, q0
bb
aa
,
,
a
a ab b
b
Guess the middle
of string
36. Fall 2006 Costas Busch - RPI 36
Input
Time 4
Stack
$
, $ $q1
q2
bb
aa
,
,
, q0
bb
aa
,
,
a
a ab b
b
37. Fall 2006 Costas Busch - RPI 37
Input
Time 5
Stack
$
, $ $
1q q2
bb
aa
,
,
, q0
bb
aa
,
,
a ab b a
38. Fall 2006 Costas Busch - RPI 38
Input
Time 6
Stack
$
, $ $q1
bb
aa
,
,
, q0
bb
aa
,
,
a ab b
accept
q2
39. Fall 2006 Costas Busch - RPI 39
Rejection Example:
Input
Time 0
Stack
$
, $ $q1
q2
bb
aa
,
,
, q0
bb
aa
,
,
a b b b
40. Fall 2006 Costas Busch - RPI 40
Input
Time 1
Stack
$
, $ $q1
q2
bb
aa
,
,
, q0
bb
aa
,
,
a
a b b b
41. Fall 2006 Costas Busch - RPI 41
Input
Time 2
Stack
$
, $ $q1
q2
bb
aa
,
,
, q0
bb
aa
,
,
a
b
a b b b
42. Fall 2006 Costas Busch - RPI 42
Input
Time 3
Stack
$
, $ $q1
q2
bb
aa
,
,
, q0
bb
aa
,
,
a
b
Guess the middle
of string
a b b b
43. Fall 2006 Costas Busch - RPI 43
Input
Time 4
Stack
$
, $ $q1
q2
bb
aa
,
,
, q0
bb
aa
,
,
a
b
a b b b
44. Fall 2006 Costas Busch - RPI 44
Input
Time 5
Stack
$
, $ $
1q q2
bb
aa
,
,
, q0
bb
aa
,
,
a
a b b b
There is no possible transition.
Input is not
consumed
45. Fall 2006 Costas Busch - RPI 45
Another computation on same string:
Input Time 0
Stack
$
, $ $q1
q2
bb
aa
,
,
, q0
bb
aa
,
,
a b b b
46. Fall 2006 Costas Busch - RPI 46
Input
Time 1
Stack
$
, $ $q1
q2
bb
aa
,
,
, q0
bb
aa
,
,
a
a b b b
47. Fall 2006 Costas Busch - RPI 47
Input
Time 2
Stack
$
, $ $q1
q2
bb
aa
,
,
, q0
bb
aa
,
,
a
b
a b b b
48. Fall 2006 Costas Busch - RPI 48
Input
Time 3
Stack
$
a
b
a b b b
, $ $q1
q2
bb
aa
,
,
, q0
bb
aa
,
,
b
49. Fall 2006 Costas Busch - RPI 49
Input
Time 4
Stack
a b b b
, $ $q1
q2
bb
aa
,
,
, q0
bb
aa
,
,
$
a
b
b
b
50. Fall 2006 Costas Busch - RPI 50
Input
Time 5
Stack
a b b b
$
a
b
b
b
, $ $q1
q2
bb
aa
,
,
, q0
bb
aa
,
,
No accept state
is reached
51. Fall 2006 Costas Busch - RPI 51
, $ $q1
q2
bb
aa
,
,
, q0
bb
aa
,
,
There is no computation
that accepts string abbb
)(MLabbb
52. Fall 2006 Costas Busch - RPI 52
Pushing & Popping Strings
q1 q2
21, wwa
Input
symbol
Push
string
Pop
string
53. Fall 2006 Costas Busch - RPI 53
q1 q2
cdfeba ,
aL L
b
top
input
stack
aL L
Replace
e
h h
e
c
d
f
push
string
Example:
$ $
e
pop
string
top
54. Fall 2006 Costas Busch - RPI 54
q1 q2
cdfeba ,
q1
q2
ea, ba,
fa ,
,
da , ca ,
pop
push
Equivalent
transitions
55. Fall 2006 Costas Busch - RPI 55
Another PDA example
$$, q1 q2
a, $ 0$
a, 0 00
a,1
b, $ 1$
b,1 11
b, 0
PDA M
)}()(:},{{)( *
wnwnbawML ba
56. Fall 2006 Costas Busch - RPI 56
Time 0
Input
a ab b b
current
state
a
$
Stack
$$, q1 q2
a, $ 0$
a, 0 00
a,1
b, $ 1$
b,1 11
b, 0
Execution Example:
57. Fall 2006 Costas Busch - RPI 57
Time 1
Input
a ab b b a
$
Stack
0
$$, q1 q2
a, $ 0$
a, 0 00
a,1
b, $ 1$
b,1 11
b, 0
58. Fall 2006 Costas Busch - RPI 58
Time 3
Input
a bb b a
$
Stack
a
$
$$, q1 q2
a, $ 0$
a, 0 00
a,1
b, $ 1$
b,1 11
b, 0
0
59. Fall 2006 Costas Busch - RPI 59
Time 4
Input
a bb b a
$
Stack
a
1
$$, q1 q2
a, $ 0$
a, 0 00
a,1
b, $ 1$
b,1 11
b, 0
60. Fall 2006 Costas Busch - RPI 60
Time 5
Input
a bb b a
$
Stack
a
1
1
$$, q1 q2
a, $ 0$
a, 0 00
a,1
b, $ 1$
b,1 11
b, 0
61. Fall 2006 Costas Busch - RPI 61
Time 6
Input
a bb b a
$
Stack
a
1
$$, q1 q2
a, $ 0$
a, 0 00
a,1
b, $ 1$
b,1 11
b, 0
1
62. Fall 2006 Costas Busch - RPI 62
Time 7
Input
a bb b a
$
Stack
a
1
$$, q1 q2
a, $ 0$
a, 0 00
a,1
b, $ 1$
b,1 11
b, 0
63. Fall 2006 Costas Busch - RPI 63
Time 8
Input
a bb b a a
$
Stack
$$, q1 q2
a, $ 0$
a, 0 00
a,1
b, $ 1$
b,1 11
b, 0
accept
67. Fall 2006 Costas Busch - RPI 67
Formal Definition
Pushdown Automaton (PDA)
),,,δ,Γ,Σ,( 0 FzqQM
States
Input
alphabet
Stack
alphabet
Transition
function
Accept
states
Stack
start
symbol
Initial
state
68. Fall 2006 Costas Busch - RPI 68
Instantaneous Description
),,( suq
Current
state
Remaining
input
Current
stack
contents
69. Fall 2006 Costas Busch - RPI 69
a, a
b, a q0 q1 q2 q3
Input
Stack
a a a b b b
$
a
a
b, a
Time 4:
, , $ $
Example: Instantaneous Description
$),,( 1 aaabbbq
a
70. Fall 2006 Costas Busch - RPI 70
a, a
b, a q0 q1 q2 q3
Input
Stack
a a a b b b
$
a
a
b, a
Time 5:
, , $ $
Example: Instantaneous Description
$),,( 2 aabbq
a
71. Fall 2006 Costas Busch - RPI 71
We write:
$),,($),,( 21 aabbqaaabbbq
Time 4 Time 5
72. Fall 2006 Costas Busch - RPI 72
a, a
b, a q0 q1 q2 q3
b, a
, , $ $
,$),(,$),($),,($),,(
$),,($),,($),,(
,$),(,$),(
3222
111
10
qqabqaabbq
aaabbbqaaabbbqaaabbbq
aaabbbqaaabbbq
A computation:
73. Fall 2006 Costas Busch - RPI 73
,$),(,$),($),,($),,(
$),,($),,($),,(
,$),(,$),(
3222
111
10
qqabqaabbq
aaabbbqaaabbbqaaabbbq
aaabbbqaaabbbq
For convenience we write:
,$),(,$),( 30 qaaabbbq
74. Fall 2006 Costas Busch - RPI 74
Language of PDA
Language accepted by PDA :M
)},,(),,(:{)( 0 sqzwqwML f
Initial state Accept state
)(ML
75. Fall 2006 Costas Busch - RPI 75
Example:
,$),(,$),( 30 qaaabbbq
a, a
b, a q0 q1 q2 q3
b, a
, , $ $
PDA :M
)(MLaaabbb
76. Fall 2006 Costas Busch - RPI 76
,$),(,$),( 30 qbaq nn
a, a
b, a q0 q1 q2 q3
b, a
, , $ $
)(MLba nn
PDA :M
77. Fall 2006 Costas Busch - RPI 77
a, a
b, a q0 q1 q2 q3
b, a
, , $ $
PDA :M
}0:{)( nbaML nnTherefore: