Courtesy Costas Busch - R PI 1 Pushdown Automata PDAs
Feb 25, 2016
Courtesy Costas Busch - RPI 1
Pushdown AutomataPDAs
Courtesy Costas Busch - RPI 2
Pushdown Automaton -- PDAInput String
Stack
States
Courtesy Costas Busch - RPI 3
Initial Stack Symbol
Stack
$
Stack
z
bottomspecial symbol
stackhead top
Courtesy Costas Busch - RPI 4
The States
q1 q2a, b c
Inputsymbol
Popsymbol
Pushsymbol
q1 q2cba /,
Alternatively
Courtesy Costas Busch - RPI 5
q1 q2a, b c
a
b top
input
stack
a
Replaceeh
$eh
$
c
Courtesy Costas Busch - RPI 6
q1 q2a, c
a a
Pushb
eh
$eh
$
bc
top
input
stack
Courtesy Costas Busch - RPI 7
q1 q2a, b
a a
Popb
eh
$eh
$
top
input
stack
Courtesy Costas Busch - RPI 8
q1 q2a,
a a
No Changeb
eh
$eh
$
btop
input
stack
Courtesy Costas Busch - RPI 9
q1 q2$,a
a a
Pop$ top
input
stack
A Possible Transition
empty
Courtesy Costas Busch - RPI 10
q1 q2cba ,
a input
A Bad Transition
The automaton Halts in state and Rejects the input string
Empty stack
q1
HALT
Courtesy Costas Busch - RPI 11
q1 q2ca ,
a input
A Bad Transition
The automaton Halts in state and Rejects the input string
Empty stack
q1
HALT
Courtesy Costas Busch - RPI 12
q1 q2zyx ,
No transition is allowed to be followedWhen the stack is empty
Empty stack
Courtesy Costas Busch - RPI 13
q1 q2ba $,
a a
Pop$ top
input
stack
A Good Transition
b
Courtesy Costas Busch - RPI 14
Non-Determinism
q1
q2a, b c
q3a, b c
q1 q2, b c
transition
These are allowed transitions in a Non-deterministic PDA (NPDA)
Courtesy Costas Busch - RPI 15
NPDA: Non-Deterministic PDA
Example:
,
a, a
b, a q0 q1 q2 q3
b, a
, $ $
Courtesy Costas Busch - RPI 16
a, a
b, a 0q q1 q2 q3
Execution Example:Inputa a a b b b
currentstate
b, a
Time 0
, , $ $
Stack$
Courtesy Costas Busch - RPI 17
a, a
b, a q0 q1 q2 q3
Inputa a a b b b
b, a
Time 1
, , $ $
Stack$
Courtesy Costas Busch - RPI 18
a, a
b, a q0 q1 q2 q3
Input
Stack
a a a b b b$a
b, a
Time 2
, , $ $
Courtesy Costas Busch - RPI 19
a, a
b, a q0 q1 q2 q3
Input
Stack
a a a b b b$aa
b, a
Time 3
, , $ $
Courtesy Costas Busch - RPI 20
a, a
b, a q0 q1 q2 q3
Input
Stack
a a a b b b
$aaa
b, a
Time 4
, , $ $
Courtesy Costas Busch - RPI 21
a, a
b, a q0 q1 q2 q3
Inputa a a b b b
Stack$aaa
b, a
Time 5
, , $ $
Courtesy Costas Busch - RPI 22
a, a
b, a q0 q1 q2 q3
Inputa a a b b b
$a
Stack
b, a
Time 6
, , $ $
a
Courtesy Costas Busch - RPI 23
a, a
b, a q0 q1 q2 q3
Inputa a a b b b
$Stack
b, a
Time 7
, , $ $
a
Courtesy Costas Busch - RPI 24
a, a
b, a q0 q1 q2 q3
Inputa a a b b b
b, a
Time 8
accept, , $ $
$Stack
Courtesy Costas Busch - RPI 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
Courtesy Costas Busch - RPI 26
The input stringis accepted by the NPDA:
aaabbb
a, a
b, a q0 q1 q2 q3
b, a
, , $ $
Courtesy Costas Busch - RPI 27
}0:{ nbaL nn
is the language accepted by the NPDA:
a, a
b, a q0 q1 q2 q3
b, a
In general,
, , $ $
Courtesy Costas Busch - RPI 28
Another NPDA example
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
NPDA M
}{)( RwwML
Courtesy Costas Busch - RPI 29
Execution Example:Input
Time 0
Stack$
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
a ab b
Courtesy Costas Busch - RPI 30
Inputa ab
Time 1
Stack$
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
ab
Courtesy Costas Busch - RPI 31
InputTime 2
Stack$
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
aa ab bb
Courtesy Costas Busch - RPI 32
InputTime 3
Stack$
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
aa ab bb
Guess the middle of string
Courtesy Costas Busch - RPI 33
InputTime 4
Stack$
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
aa ab bb
Courtesy Costas Busch - RPI 34
InputTime 5
Stack$
, $ $1q q2
bbaa
,,
, q0
bbaa
,,
a ab b a
Courtesy Costas Busch - RPI 35
InputTime 6
Stack$
, $ $q1
bbaa
,,
, q0
bbaa
,,
a ab b
acceptq2
Courtesy Costas Busch - RPI 36
Rejection Example:Input
Time 0
Stack$
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
a b b b
Courtesy Costas Busch - RPI 37
InputTime 1
Stack$
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
aa b b b
Courtesy Costas Busch - RPI 38
InputTime 2
Stack$
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
ab
a b b b
Courtesy Costas Busch - RPI 39
InputTime 3
Stack$
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
ab
Guess the middle of string
a b b b
Courtesy Costas Busch - RPI 40
InputTime 4
Stack$
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
ab
a b b b
Courtesy Costas Busch - RPI 41
InputTime 5
Stack$
, $ $1q q2
bbaa
,,
, q0
bbaa
,,
aa b b b
There is no possible transition.
Input is not consumed
Courtesy Costas Busch - RPI 42
Another computation on same string:Input Time 0
Stack$
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
a b b b
Courtesy Costas Busch - RPI 43
InputTime 1
Stack$
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
aa b b b
Courtesy Costas Busch - RPI 44
InputTime 2
Stack$
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
ab
a b b b
Courtesy Costas Busch - RPI 45
InputTime 3
Stack$ab
a b b b
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
b
Courtesy Costas Busch - RPI 46
InputTime 4
Stack
a b b b
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
$abbb
Courtesy Costas Busch - RPI 47
InputTime 5
Stack
a b b b
$abbb
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
No final state is reached
Courtesy Costas Busch - RPI 48
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
There is no computation that accepts string abbb
)(MLabbb
Courtesy Costas Busch - RPI 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
Courtesy Costas Busch - RPI 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
Courtesy Costas Busch - RPI 51
Another NPDA example
abaa
,,
q0
NPDA M
}1:{)( mnbaML mn
Courtesy Costas Busch - RPI 52
Execution Example:Input
Time 0
Stack
a a b
$,,,
bab
aa
q0
$
Courtesy Costas Busch - RPI 53
InputTime 1
Stack
a a b
q0
a$
$,,,
bab
aa
Courtesy Costas Busch - RPI 54
InputTime 2
Stack
a a b
q0
aa
$
$,,,
bab
aa
Courtesy Costas Busch - RPI 55
InputTime 3
Stack
a a b
q0
a
accept
$
$,,,
bab
aa
Courtesy Costas Busch - RPI 56
Rejection example:Input
Time 0
Stack
a b b
q0
b$
Courtesy Costas Busch - RPI 57
InputTime 1
Stack
q0
aa b b b$
$,,,
bab
aa
Courtesy Costas Busch - RPI 58
InputTime 2
Stack
q0
a b b b$
$,,,
bab
aa
Courtesy Costas Busch - RPI 59
InputTime 3
Stack
q0
a b b b
$,,,
bab
aa
Courtesy Costas Busch - RPI 60
InputTime 4
Stack
q0Halt and Reject
a b b b
$,,,
bab
aa
Courtesy Costas Busch - RPI 61
Pushing Strings
q1 q2a, b w
Inputsymbol
Popsymbol
Pushstring
Courtesy Costas Busch - RPI 62
q1 q2a, b cdf
a
b top
input
stack
a
Pusheh h
e
cdf
pushedstring
Example:
$ $
Courtesy Costas Busch - RPI 63
Another NPDA example
$$, q1 q2
a, $ 0$a, 0 00a,1
b, $ 1$b, 1 11b, 0
NPDA M
}:{)( ba nnwML
Courtesy Costas Busch - RPI 64
Time 0Inputa ab b b
currentstate
a
$Stack
$$, q1 q2
a, $ 0$a, 0 00a,1
b, $ 1$b, 1 11b, 0
Execution Example:
Courtesy Costas Busch - RPI 65
Time 1Inputa ab b ba
$Stack
0
$$, q1 q2
a, $ 0$a, 0 00a,1
b, $ 1$b, 1 11b, 0
Courtesy Costas Busch - RPI 66
Time 3Inputa bb b a
$Stack
a
$
$$, q1 q2
a, $ 0$a, 0 00a,1
b, $ 1$b, 1 11b, 0
0
Courtesy Costas Busch - RPI 67
Time 4Inputa bb b a
$Stack
a1
$$, q1 q2
a, $ 0$a, 0 00a,1
b, $ 1$b, 1 11b, 0
Courtesy Costas Busch - RPI 68
Time 5Inputa bb b a
$Stack
a11
$$, q1 q2
a, $ 0$a, 0 00a,1
b, $ 1$b, 1 11b, 0
Courtesy Costas Busch - RPI 69
Time 6Inputa bb b a
$Stack
a1
$$, q1 q2
a, $ 0$a, 0 00a,1
b, $ 1$b, 1 11b, 0
1
Courtesy Costas Busch - RPI 70
Time 7Inputa bb b a
$Stack
a1
$$, q1 q2
a, $ 0$a, 0 00a,1
b, $ 1$b, 1 11b, 0
Courtesy Costas Busch - RPI 71
Time 8Inputa bb b a a
$Stack
$$, q1 q2
a, $ 0$a, 0 00a,1
b, $ 1$b, 1 11b, 0
accept
Courtesy Costas Busch - RPI 72
Formalities for NPDAs
Courtesy Costas Busch - RPI 73
q1 q2a, b w
)},{(),,( 21 wqbaq
Transition function:
Courtesy Costas Busch - RPI 74
q1
q2wba ,
q3wba ,
)},(),,{(),,( 321 wqwqbaq
Transition function:
Courtesy Costas Busch - RPI 75
Formal DefinitionNon-Deterministic Pushdown Automaton NPDA
),,,δ,Γ,Σ,( 0 FzqQM
States
Inputalphabet
Stackalphabet
Transitionfunction
Finalstates
Stackstartsymbol
Initialstate
Courtesy Costas Busch - RPI 76
Instantaneous Description
),,( suq
Currentstate Remaining
input
Currentstackcontents
Courtesy Costas Busch - RPI 77
a, a
b, a q0 q1 q2 q3
Input
Stack
a a a b b b$aa
b, a
Time 4:
, , $ $
Example: Instantaneous Description$),,( 1 aaabbbq
a
Courtesy Costas Busch - RPI 78
a, a
b, a q0 q1 q2 q3
Input
Stack
a a a b b b$aa
b, a
Time 5:
, , $ $
Example: Instantaneous Description$),,( 2 aabbq
a
Courtesy Costas Busch - RPI 79
We write:
$),,($),,( 21 aabbqaaabbbq
Time 4 Time 5
Courtesy Costas Busch - RPI 80
a, a
b, a q0 q1 q2 q3
b, a
, , $ $
,$),(,$),($),,($),,($),,($),,($),,(
,$),(,$),(
3222
111
10
qqabqaabbqaaabbbqaaabbbqaaabbbq
aaabbbqaaabbbq
A computation:
Courtesy Costas Busch - RPI 81
,$),(,$),($),,($),,($),,($),,($),,(
,$),(,$),(
3222
111
10
qqabqaabbqaaabbbqaaabbbqaaabbbq
aaabbbqaaabbbq
For convenience we write:
,$),(,$),( 30 qaaabbbq
Courtesy Costas Busch - RPI 82
Formal Definition
Language of NPDA :M
)}',,(),,(:{)( 0 sqswqwML f
Initial state Final state
)(ML
Courtesy Costas Busch - RPI 83
Example:,$),(,$),( 30 qaaabbbq
a, a
b, a q0 q1 q2 q3
b, a
, , $ $
NPDA :M
)(MLaaabbb
Courtesy Costas Busch - RPI 84
,$),(,$),( 30 qbaq nn
a, a
b, a q0 q1 q2 q3
b, a
, , $ $
NPDA :M
)(MLba nn
Courtesy Costas Busch - RPI 85
a, a
b, a q0 q1 q2 q3
b, a
, , $ $
NPDA :M
}0:{)( nbaML nnTherefore: