Professional Documents
Culture Documents
PDAs
1
Pushdown Automaton -- PDA
Input String
Stack
States
2
Initial Stack Symbol
Stack Stack
stack
$ z top
head
a, b c
q1 q2
4
a, b c
q1 q2
input
a a
stack
b top c
h Replace h
e e
$ $
5
a, c
q1 q2
input
a a
stack c
b top b
h Push h
e e
$ $
6
a, b
q1 q2
input
a a
stack
b top
h Pop h
e e
$ $
7
a,
q1 q2
input
a a
stack
b top b
h No Change h
e e
$ $
8
Empty Stack
a, $
q1 q2
input
a a
stack empty
$ top Pop
a, $ b
q1 q2
input
a a
stack
$ top Pop b
10
Non-Determinism
PDAs are non-deterministic
Allowed non-deterministic transitions
q2
a, b c
, b c
q1 q1 q2
a, b c
transition
q3
11
Example PDA
PDA M
L( M ) {a b : n 0}
n n
a, a b, a
q0 , q1 b, a q2 , $ $ q3
12
L( M ) {a b : n 0}
n n
Basic Idea:
3. Match
a, a b, a found
q0 , q1 b, a q2 , $ $ q3
13
Execution Example: Time 0
Input
a a a b b b
$
Stack
current a, a b, a
state
q0 , q b, a q , $ $ q
1 2 3
14
Time 1
Input
a a a b b b
$
Stack
a, a b, a
q0 , q1 b, a q2 , $ $ q3
15
Time 2
Input
a a a b b b a
$
Stack
a, a b, a
q0 , q1 b, a q2 , $ $ q3
16
Time 3
Input a
a a a b b b a
$
Stack
a, a b, a
q0 , q1 b, a q2 , $ $ q3
17
Time 4
a
Input
a
a a a b b b a
$
Stack
a, a b, a
q0 , q1 b, a q2 , $ $ q3
18
Time 5
a
Input
a
a a a b b b a
$
Stack
a, a b, a
q0 , q1 b, a q2 , $ $ q3
19
Time 6
Input a
a a a b b b a
$
Stack
a, a b, a
q0 , q1 b, a q2 , $ $ q3
20
Time 7
Input
a a a b b b a
$
Stack
a, a b, a
q0 , q1 b, a q2 , $ $ q3
21
Time 8
Input
a a a b b b
$
Stack
a, a b, a
accept
q0 , q1 b, a q2 , $ $ q3
22
A string is accepted if there is
a computation such that:
a, a b, a
q0 , q1 b, a q2 , $ $ q3
24
In general,
n n
L {a b : n 0}
a, a b, a
q0 , q1 b, a q2 , $ $ q3
25
Rejection Example: Time 0
Input
a a b
$
Stack
current a, a b, a
state
q0 , q b, a q , $ $ q
1 2 3
26
Rejection Example: Time 1
Input
a a b
$
Stack
current a, a b, a
state
q0 , q1 b, a q2 , $ $ q3
27
Rejection Example: Time 2
Input
a
a a b
$
Stack
current a, a b, a
state
q0 , q1 b, a q2 , $ $ q3
28
Rejection Example: Time 3
Input a
a
a a b
$
Stack
current a, a b, a
state
q0 , q1 b, a q2 , $ $ q3
29
Rejection Example: Time 4
Input a
a
a a b
$
Stack
current a, a b, a
state
q0 , q1 b, a q2 , $ $ q3
30
Rejection Example: Time 4
Input a
a
a a b
$
Stack
reject
current a, a b, a
state
q0 , q1 b, a q2 , $ $ q3
31
The input string aab
is rejected by the PDA:
a, a b, a
q0 , q1 b, a q2 , $ $ q3
32
A string is rejected if there is
no computation such that:
L( M ) {vv : v {a, b} }
R
PDA M
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
34
Basic Idea: L( M ) {vv : v {a, b} }
R
q0 , q1 , $ $ q2
35
Execution Example: Time 0
Input
a b b a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
36
Time 1
Input
a b b a
a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
37
Time 2
Input
b
a b b a
a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
38
Time 3
Input
b
a b b a
Guess the middle a
of string $
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
39
Time 4
Input
b
a b b a
a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
40
Time 5
Input
a b b a
a
$
Stack
a, a a, a
b, b b, b
, , $ $ q2
q0 q1
41
Time 6
Input
a b b a
$
Stack
a, a a, a
b, b b, b
accept
q0 , q1 , $ $ q2
42
Rejection Example: Time 0
Input
a b b b
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
43
Time 1
Input
a b b b
a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
44
Time 2
Input
b
a b b b
a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
45
Time 3
Input
b
a b b b
Guess the middle a
of string $
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
46
Time 4
Input
b
a b b b
a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
47
Time 5
Input There is no possible transition.
a b b b Input is not a
consumed
$
Stack
a, a a, a
b, b b, b
, , $ $ q2
q0 q1
48
Another computation on same string:
Input Time 0
a b b b
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
49
Time 1
Input
a b b b
a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
50
Time 2
Input
b
a b b b
a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
51
Time 3
Input b
b
a b b b
a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
52
Time 4 b
Input b
b
a b b b
a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
53
Time 5 b
Input b
No final state b
a b b b is reached a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
54
There is no computation
that accepts string abbb
abbb L(M )
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
55
Another PDA example
L( M ) {w {a, b} :
*
a, a
b, a
PDA M
q0
56
Execution Example: Time 0
Input
a a b
a, a $
b, a Stack
b, $
q0
57
Time 1
Input
a a b a
a, a $
b, a Stack
b, $
q0
58
Time 2
Input
a
a a b a
a, a $
b, a Stack
b, $
q0
59
Time 3
Input
a a b a
a, a $
b, a Stack
b, $
accept
q0
60
Rejection example: Time 0
Input
a b b b
$
Stack
q0
61
Time 1
Input
a b b b a
a, a $
b, a Stack
b, $
q0
62
Time 2
Input
a b b b
a, a $
b, a Stack
b, $
q0
63
Time 3
Input
a b b b
a, a
b, a Stack
b, $
q0
64
Time 4
Input
a b b b
a, a
b, a Stack
b, $
a, b w
q1 q2
66
Example:
a, b cdf
q1 q2
input
a
a
c pushed
stack d
top string
b f
h Push h
e e
$ $
67
Another PDA example
L( M ) {w {a, b} : na ( w) nb ( w)}
*
PDA M
a, $ 0$ b, $ 1$
a, 0 00 b, 1 11
a, 1 b, 0
q1 , $ $ q2
68
Execution Example: Time 0
Input
a b b b a a
$
a, $ 0$ b, $ 1$
Stack
a, 0 00 b, 1 11
a, 1 b, 0
current
state
q1 , $ $ q2
69
Time 1
Input
a b b b a a
0
$
a, $ 0$ b, $ 1$
Stack
a, 0 00 b, 1 11
a, 1 b, 0
q1 , $ $ q2
70
Time 3
Input
a b b b a a
0
$
a, $ 0$ b, $ 1$
Stack
a, 0 00 b, 1 11
a, 1 b, 0
q1 , $ $ q2
71
Time 4
Input
a b b b a a
1
$
a, $ 0$ b, $ 1$
Stack
a, 0 00 b, 1 11
a, 1 b, 0
q1 , $ $ q2
72
Time 5
Input
a b b b a a 1
1
$
a, $ 0$ b, $ 1$
Stack
a, 0 00 b, 1 11
a, 1 b, 0
q1 , $ $ q2
73
Time 6
Input
a b b b a a 1
1
$
a, $ 0$ b, $ 1$
Stack
a, 0 00 b, 1 11
a, 1 b, 0
q1 , $ $ q2
74
Time 7
Input
a b b b a a
1
$
a, $ 0$ b, $ 1$
Stack
a, 0 00 b, 1 11
a, 1 b, 0
q1 , $ $ q2
75
Time 8
Input
a b b b a a
$
a, $ 0$ b, $ 1$
Stack
a, 0 00 b, 1 11
a, 1 b, 0
accept
q1 , $ $ q2
76
Formalities for PDAs
77
a, b w
q1 q2
Transition function:
78
q2
a, b w
q1
a, b w q3
Transition function:
M (Q, Σ, Γ, δ, q0 , z , F )
Final
States states
Input Stack
alphabet Transition Initial start
Stack
function state symbol
alphabet
80
Instantaneous Description
( q, u , s )
Current Current
Remaining
state stack
input
contents
81
Example: Instantaneous Description
(q1, bbb, aaa$)
a
Time 4: Input a
a a a b b b a
$
Stack
a, a b, a
q0 , q1 b, a q2 , $ $ q3
82
Example: Instantaneous Description
(q2 , bb, aa$)
a
Time 5: Input a
a a a b b b a
$
Stack
a, a b, a
q0 , q1 b, a q2 , $ $ q3
83
We write:
84
A computation:
a, a b, a
q0 , q1 b, a q2 , $ $ q3
85
(q0 , aaabbb,$) (q1, aaabbb,$)
(q1, aabbb, a$) (q1, abbb, aa$) (q1, bbb, aaa$)
(q2 , bb, aa$) (q2 , b, a$) (q2 , ,$) (q3 , ,$)
(q0 , aaabbb,$) ( q3 , ,$)
86
Formal Definition
L( M ) {w : (q0 , w, s ) (q f , , s ' )}
87
Example:
(q0 , aaabbb,$) (q3 , ,$)
aaabbb L(M )
PDA M :
a, a b, a
q0 , q1 b, a q2 , $ $ q3
88
n n
(q0 , a b ,$) (q3 , ,$)
n n
a b L(M )
PDA M :
a, a b, a
q0 , q1 b, a q2 , $ $ q3
89
n n
Therefore: L( M ) {a b : n 0}
PDA M :
a, a b, a
q0 , q1 b, a q2 , $ $ q3
90