pushdown automata pdas
DESCRIPTION
Pushdown Automata PDAs. Pushdown Automaton -- PDA. Input String. Stack. States. Initial Stack Symbol. Stack. Stack. stack head. top. bottom. special symbol. The States. Pop symbol. Input symbol. Push symbol. Alternatively. input. stack. top. Replace. input. stack. top. - PowerPoint PPT PresentationTRANSCRIPT
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: