Fall 2004 COMP 335 1
Pushdown AutomataPDAs
Fall 2004 COMP 335 2
Pushdown Automaton -- PDA
Input String
Stack
States
Fall 2004 COMP 335 3
Initial Stack Symbol
Stack
$
Stack
z
bottomspecial symbol
stackhead
top
Fall 2004 COMP 335 4
The States
q1 q2a, b c
Inputsymbol
Popsymbol
Pushsymbol
Fall 2004 COMP 335 5
q1 q2a, b c
a
b top
input
stack
a
Replaceeh
$eh
$
c
Fall 2004 COMP 335 6
q1 q2a, c
a a
Pushb
eh
$eh
$
bc
top
input
stack
Fall 2004 COMP 335 7
q1 q2a, b
a a
Popb
eh
$eh
$
top
input
stack
Fall 2004 COMP 335 8
q1 q2a,
a a
No Changeb
eh
$eh
$
btop
input
stack
Fall 2004 COMP 335 9
q1 q2$,a
a a
Pop$ top
input
stack
A Possible Transition
empty
Fall 2004 COMP 335 10
q1 q2cba ,
a input
A Bad Transition
The automaton Halts in state and Rejects the input string
Empty stack
q1
HALT
Fall 2004 COMP 335 11
q1 q2ca ,
a input
A Bad Transition
The automaton Halts in state and Rejects the input string
Empty stack
q1
HALT
Fall 2004 COMP 335 12
q1 q2zyx ,
No transition is allowed to be followedwhen the stack is empty
Empty stack
Fall 2004 COMP 335 13
q1 q2ba $,
a a
Pop$ top
input
stack
A Good Transition
b
Fall 2004 COMP 335 14
Non-Determinism
q1
q2
q3dba ,
q1 q2, b c
transition
These are allowed transitions in a Non-deterministic PDA (NPDA)
cba ,
Fall 2004 COMP 335 15
NPDA: Non-Deterministic PDA
Example:
,
a, a
b, a q0 q1 q2 q3
b, a
, $ $
Fall 2004 COMP 335 16
a, a
b, a 0q q1 q2 q3
Execution Example:
Input
a a a b b b
currentstate
b, a
Time 0
, , $ $
Stack
$
Fall 2004 COMP 335 17
a, a
b, a q0 q1 q2 q3
Input
a a a b b b
b, a
Time 1
, , $ $
Stack
$
Fall 2004 COMP 335 18
a, a
b, a q0 q1 q2 q3
Input
Stack
a a a b b b
$
a
b, a
Time 2
, , $ $
Fall 2004 COMP 335 19
a, a
b, a q0 q1 q2 q3
Input
Stack
a a a b b b$
aa
b, a
Time 3
, , $ $
Fall 2004 COMP 335 20
a, a
b, a q0 q1 q2 q3
Input
Stack
a a a b b b
$
aaa
b, a
Time 4
, , $ $
Fall 2004 COMP 335 21
a, a
b, a q0 q1 q2 q3
Input
a a a b b b
Stack
$
aaa
b, a
Time 5
, , $ $
Fall 2004 COMP 335 22
a, a
b, a q0 q1 q2 q3
Input
a a a b b b$
a
Stack
b, a
Time 6
, , $ $
a
Fall 2004 COMP 335 23
a, a
b, a q0 q1 q2 q3
Input
a a a b b b$
Stack
b, a
Time 7
, , $ $
a
Fall 2004 COMP 335 24
a, a
b, a q0 q1 q2 q3
Input
a a a b b b
b, a
Time 8
accept, , $ $
$
Stack
Fall 2004 COMP 335 25
A string is accepted if there is a computation such that:
All the input is consumed AND The last state is a final state
At the end of the computation,we do not care about the stack contents
Fall 2004 COMP 335 26
The input stringis accepted by the NPDA:
aaabbb
a, a
b, a q0 q1 q2 q3
b, a
, , $ $
Fall 2004 COMP 335 27
}0:{ nbaL nn
is the language accepted by the NPDA:
a, a
b, a q0 q1 q2 q3
b, a
In general,
, , $ $
Fall 2004 COMP 335 28
NPDA -- Another example
, $ $q1 q2
bb
aa
,
,
, q0
bb
aa
,
,
NPDA M
}{)( RwwML
Fall 2004 COMP 335 29
Execution Example:
Input
Time 0
Stack
$
, $ $q1 q2
bb
aa
,
,
, q0
bb
aa
,
,
a ab b
Fall 2004 COMP 335 30
Input
a ab
Time 1
Stack
$
, $ $q1 q2
bb
aa
,
,
, q0
bb
aa
,
,
ab
Fall 2004 COMP 335 31
Input
Time 2
Stack
$
, $ $q1 q2
bb
aa
,
,
, q0
bb
aa
,
,
aa ab b
b
Fall 2004 COMP 335 32
Input
Time 3
Stack
$
, $ $q1 q2
bb
aa
,
,
, q0
bb
aa
,
,
aa ab b
b
Guess the middle of string
Fall 2004 COMP 335 33
Input
Time 4
Stack
$
, $ $q1 q2
bb
aa
,
,
, q0
bb
aa
,
,
aa ab b
b
Fall 2004 COMP 335 34
Input
Time 5
Stack
$
, $ $1q q2
bb
aa
,
,
, q0
bb
aa
,
,
a ab b a
Fall 2004 COMP 335 35
Input
Time 6
Stack
$
, $ $q1
bb
aa
,
,
, q0
bb
aa
,
,
a ab b
accept
q2
Fall 2004 COMP 335 36
Rejection Example:
Input
Time 0
Stack
$
, $ $q1 q2
bb
aa
,
,
, q0
bb
aa
,
,
a b b b
Fall 2004 COMP 335 37
Input
Time 1
Stack
$
, $ $q1 q2
bb
aa
,
,
, q0
bb
aa
,
,
aa b b b
Fall 2004 COMP 335 38
Input
Time 2
Stack
$
, $ $q1 q2
bb
aa
,
,
, q0
bb
aa
,
,
ab
a b b b
Fall 2004 COMP 335 39
Input
Time 3
Stack
$
, $ $q1 q2
bb
aa
,
,
, q0
bb
aa
,
,
ab
Guess the middle of string
a b b b
Fall 2004 COMP 335 40
Input
Time 4
Stack
$
, $ $q1 q2
bb
aa
,
,
, q0
bb
aa
,
,
ab
a b b b
Fall 2004 COMP 335 41
Input
Time 5
Stack
$
, $ $1q q2
bb
aa
,
,
, q0
bb
aa
,
,
aa b b b
There is no possible transition.
Input is not consumed
Fall 2004 COMP 335 42
Another computation on the same string:
Input Time 0
Stack
$
, $ $q1 q2
bb
aa
,
,
, q0
bb
aa
,
,
a b b b
Fall 2004 COMP 335 43
Input
Time 1
Stack
$
, $ $q1 q2
bb
aa
,
,
, q0
bb
aa
,
,
aa b b b
Fall 2004 COMP 335 44
Input
Time 2
Stack
$
, $ $q1 q2
bb
aa
,
,
, q0
bb
aa
,
,
ab
a b b b
Fall 2004 COMP 335 45
Input
Time 3
Stack
$ab
a b b b
, $ $q1 q2
bb
aa
,
,
, q0
bb
aa
,
,
b
Fall 2004 COMP 335 46
Input
Time 4
Stack
a b b b
, $ $q1 q2
bb
aa
,
,
, q0
bb
aa
,
,
$abbb
Fall 2004 COMP 335 47
Input
Time 5
Stack
a b b b
$abbb
, $ $q1 q2
bb
aa
,
,
, q0
bb
aa
,
,
No final state is reached
Fall 2004 COMP 335 48
, $ $q1 q2
bb
aa
,
,
, q0
bb
aa
,
,
There is no computation that accepts string abbb
)(MLabbb
Fall 2004 COMP 335 49
A string is rejected if there is no computation such that:
All the input is consumed AND The last state is a final state
At the end of the computation,we do not care about the stack contents
Fall 2004 COMP 335 50
In other words, a string is rejected if in every computation with this string:
The input cannot be consumed OR
The input is consumed and the last state is not a final state
ORThe stack head moves below the bottom of the stack
Fall 2004 COMP 335 51
q0
aa ,
1q
ab,
$,bab,
NPDA – Another Example
$,b
}1:{)( mnbaML mn
}0,:{}1:{ 1 kmbamba mkmmm
Fall 2004 COMP 335 52
Pushing Strings
q1 q2a, b w
Inputsymbol
Popsymbol
Pushstring
Fall 2004 COMP 335 53
q1 q2a, b cdf
a
b top
input
stack
a
Push
eh h
e
cdf
pushedstring
Example:
$ $
Fall 2004 COMP 335 54
Another NPDA example
$$, q1 q2
a, $ 0$a, 0 00a,1
b, $ 1$b, 1 11b, 0
NPDA M
})()(:{)( wnwnwML ba
Fall 2004 COMP 335 55
Time 0
Input
a ab b b
currentstate
a
$
Stack
$$, q1 q2
a, $ 0$a, 0 00a,1
b, $ 1$b, 1 11b, 0
Execution Example:
Fall 2004 COMP 335 56
Time 1
Input
a ab b ba
$
Stack
0
$$, q1 q2
a, $ 0$a, 0 00a,1
b, $ 1$b, 1 11b, 0
Fall 2004 COMP 335 57
Time 3
Input
a bb b a
$
Stack
a
$
$$, q1 q2
a, $ 0$a, 0 00a,1
b, $ 1$b, 1 11b, 0
0
Fall 2004 COMP 335 58
Time 4
Input
a bb b a
$
Stack
a
1
$$, q1 q2
a, $ 0$a, 0 00a,1
b, $ 1$b, 1 11b, 0
Fall 2004 COMP 335 59
Time 5
Input
a bb b a
$
Stack
a
11
$$, q1 q2
a, $ 0$a, 0 00a,1
b, $ 1$b, 1 11b, 0
Fall 2004 COMP 335 60
Time 6
Input
a bb b a
$
Stack
a
1
$$, q1 q2
a, $ 0$a, 0 00a,1
b, $ 1$b, 1 11b, 0
1
Fall 2004 COMP 335 61
Time 7
Input
a bb b a
$
Stack
a
1
$$, q1 q2
a, $ 0$a, 0 00a,1
b, $ 1$b, 1 11b, 0
Fall 2004 COMP 335 62
Time 8
Input
a bb b a a
$
Stack
$$, q1 q2
a, $ 0$a, 0 00a,1
b, $ 1$b, 1 11b, 0
accept
Fall 2004 COMP 335 63
Formalities for NPDAs
Fall 2004 COMP 335 64
q1 q2a, b w
)},{(),,( 21 wqbaq
Transition function:
Fall 2004 COMP 335 65
q1
q2wba ,
q3uba ,
)},(),,{(),,( 321 uqwqbaq
Transition function:
Fall 2004 COMP 335 66
Formal Definition
Non-Deterministic Pushdown Automaton NPDA
),,,δ,Γ,Σ,( 0 FzqQM
States
Inputalphabet
Stackalphabet
Transitionfunction
Finalstates
Stackendsymbol
Initialstate
Fall 2004 COMP 335 67
Instantaneous Description (ID)
),,( uvq
Currentstate Remaining
unread input
Currentstackcontents
Fall 2004 COMP 335 68
aa /,
/,abq0 q1 q2 q3
Input
Stack
a a a b b b$
aaTime 4:
/, $/$,
Example: Instantaneous Description (ID)
$),,( 1 aaabbbqa
/,ab
Fall 2004 COMP 335 69
a, a
b, a q0 q1 q2 q3
Input
Stack
a a a b b b$
aa
b, a
Time 5:
, , $ $
Example: Instantaneous Description (ID)
$),,( 2 aabbq
a
Fall 2004 COMP 335 70
We write:
Time 4 Time 5
$),,($),,( 21 aabbqaaabbbq
Fall 2004 COMP 335 71
a, a
b, a q0 q1 q2 q3
b, a
, , $ $
,$),(,$),($),,($),,(
$),,($),,($),,(
,$),(,$),(
3222
111
10
qqabqaabbq
aaabbbqaaabbbqaaabbbq
aaabbbqaaabbbq
A computation:
Fall 2004 COMP 335 72
,$),(,$),($),,($),,(
$),,($),,($),,(
,$),(,$),(
3222
111
10
qqabqaabbq
aaabbbqaaabbbqaaabbbq
aaabbbqaaabbbq
For convenience we write:
,$),(,$),( 30 qaaabbbq
Fall 2004 COMP 335 73
Formal Definition
Language of NPDA :M
}),,,(),,(,:{)( **
0* uuqzwqwwML fM
Initial ID Final ID
)(ML
Fall 2004 COMP 335 74
Example:,$),(,$),( 30 qaaabbbq
a, a
b, a q0 q1 q2 q3
b, a
, , $ $
NPDA :M
)(MLaaabbb
Fall 2004 COMP 335 75
,$),(,$),( 30 qbaq nn
a, a
b, a q0 q1 q2 q3
b, a
, , $ $
NPDA :M
)(MLba nn
Fall 2004 COMP 335 76
a, a
b, a q0 q1 q2 q3
b, a
, , $ $
NPDA :M
}0:{)( nbaML nnTherefore: