fall 2005costas busch - rpi1 pushdown automata pdas
Post on 22-Dec-2015
223 views
TRANSCRIPT
Fall 2005 Costas Busch - RPI 3
Initial Stack Symbol
Stack
$
Stack
z
bottomspecial symbol
stackhead
top
Appears at time 0
Fall 2005 Costas Busch - RPI 9
q1 q2$,a
a a
Pop$ top
input
stack
Empty Stack
empty
When the stack gets empty,the automaton HALTS(no more transitions after ) q2
Fall 2005 Costas Busch - RPI 11
Non-Determinism
q1
q2a, b c
q3a, b c
q1 q2, b c
transition
PDAs are non-deterministic
Allowed non-deterministic transitions
Fall 2005 Costas Busch - RPI 12
Example PDA
,
a, a
b, a q0 q1 q2 q3
b, a
, $ $
PDA : M }0:{)( nbaML nn
Fall 2005 Costas Busch - RPI 13
,
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
Fall 2005 Costas Busch - RPI 14
a, a
b, a 0q q1 q2 q3
Execution Example:
Input
a a a b b b
currentstate
b, a
Time 0
, , $ $
Stack
$
Fall 2005 Costas Busch - RPI 16
a, a
b, a q0 q1 q2 q3
Input
Stack
a a a b b b
$
a
b, a
Time 2
, , $ $
Fall 2005 Costas Busch - RPI 17
a, a
b, a q0 q1 q2 q3
Input
Stack
a a a b b b$
aa
b, a
Time 3
, , $ $
Fall 2005 Costas Busch - RPI 18
a, a
b, a q0 q1 q2 q3
Input
Stack
a a a b b b
$
aaa
b, a
Time 4
, , $ $
Fall 2005 Costas Busch - RPI 19
a, a
b, a q0 q1 q2 q3
Input
a a a b b b
Stack
$
aaa
b, a
Time 5
, , $ $
Fall 2005 Costas Busch - RPI 20
a, a
b, a q0 q1 q2 q3
Input
a a a b b b$
a
Stack
b, a
Time 6
, , $ $
a
Fall 2005 Costas Busch - RPI 21
a, a
b, a q0 q1 q2 q3
Input
a a a b b b$
Stack
b, a
Time 7
, , $ $
a
Fall 2005 Costas Busch - RPI 22
a, a
b, a q0 q1 q2 q3
Input
a a a b b b
b, a
Time 8
accept, , $ $
$
Stack
Fall 2005 Costas Busch - RPI 23
A string is accepted if there is a computation such that:
All the input is consumed AND The last state is an accepting state
At the end of the computation,we do not care about the stack contents(the stack can be empty at the last state)
Fall 2005 Costas Busch - RPI 24
The input stringis accepted by the PDA:
aaabbb
a, a
b, a q0 q1 q2 q3
b, a
, , $ $
Fall 2005 Costas Busch - RPI 25
}0:{ nbaL nn
is the language accepted by the PDA:
a, a
b, a q0 q1 q2 q3
b, a
In general,
, , $ $
Fall 2005 Costas Busch - RPI 26
0q
a, a
b, a q1 q2 q3
Rejection Example:
Input
a a b
currentstate
b, a
Time 0
, , $ $
Stack
$
Fall 2005 Costas Busch - RPI 27
0q
a, a
b, a q1 q2 q3
Rejection Example:
Input
a a b
currentstate
b, a
Time 1
, , $ $
Stack
$
Fall 2005 Costas Busch - RPI 28
0q
a, a
b, a q1 q2 q3
Rejection Example:
Input
a a b
currentstate
b, a
Time 2
, , $ $
Stack
$
a
Fall 2005 Costas Busch - RPI 29
0q
a, a
b, a q1 q2 q3
Rejection Example:
Input
a a b
currentstate
b, a
Time 3
, , $ $
Stack
$
aa
Fall 2005 Costas Busch - RPI 30
0q
a, a
b, a q1 q2 q3
Rejection Example:
Input
a a b
currentstate
b, a
Time 4
, , $ $
Stack
$
aa
Fall 2005 Costas Busch - RPI 31
0q
a, a
b, a q1 q2 q3
Rejection Example:
Input
a a b
currentstate
b, a
Time 4
, , $ $
Stack
$
aa
reject
Fall 2005 Costas Busch - RPI 32
The input stringis rejected by the PDA:
aab
a, a
b, a q0 q1 q2 q3
b, a
, , $ $
Fall 2005 Costas Busch - RPI 33
A string is rejected if there is
no computation such that:
All the input is consumed AND The last state is an accept state
At the end of the computation,we do not care about the stack contents
Fall 2005 Costas Busch - RPI 34
Another PDA example
, $ $q1 q2
bb
aa
,
,
, q0
bb
aa
,
,
PDA : M }},{:{)( bavvvML R
Fall 2005 Costas Busch - RPI 35
, $ $q1 q2
bb
aa
,
,
, q0
bb
aa
,
,
}},{:{)( bavvvML RBasic Idea:
1. Push v on stack
2. Guess middle of input
3. Match on input with v on stack
Rv
4. Match found
Fall 2005 Costas Busch - RPI 36
Execution Example:
Input
Time 0
Stack
$
, $ $q1 q2
bb
aa
,
,
, q0
bb
aa
,
,
a ab b
Fall 2005 Costas Busch - RPI 39
Input
Time 3
Stack
$
, $ $q1 q2
bb
aa
,
,
, q0
bb
aa
,
,
aa ab b
b
Guess the middle of string
Fall 2005 Costas Busch - RPI 42
Input
Time 6
Stack
$
, $ $q1
bb
aa
,
,
, q0
bb
aa
,
,
a ab b
accept
q2
Fall 2005 Costas Busch - RPI 43
Rejection Example:
Input
Time 0
Stack
$
, $ $q1 q2
bb
aa
,
,
, q0
bb
aa
,
,
a b b b
Fall 2005 Costas Busch - RPI 46
Input
Time 3
Stack
$
, $ $q1 q2
bb
aa
,
,
, q0
bb
aa
,
,
ab
Guess the middle of string
a b b b
Fall 2005 Costas Busch - RPI 48
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 2005 Costas Busch - RPI 49
Another computation on same string:
Input Time 0
Stack
$
, $ $q1 q2
bb
aa
,
,
, q0
bb
aa
,
,
a b b b
Fall 2005 Costas Busch - RPI 52
Input
Time 3
Stack
$ab
a b b b
, $ $q1 q2
bb
aa
,
,
, q0
bb
aa
,
,
b
Fall 2005 Costas Busch - RPI 53
Input
Time 4
Stack
a b b b
, $ $q1 q2
bb
aa
,
,
, q0
bb
aa
,
,
$abbb
Fall 2005 Costas Busch - RPI 54
Input
Time 5
Stack
a b b b
$abbb
, $ $q1 q2
bb
aa
,
,
, q0
bb
aa
,
,
No final state is reached
Fall 2005 Costas Busch - RPI 55
, $ $q1 q2
bb
aa
,
,
, q0
bb
aa
,
,
There is no computation that accepts string abbb
)(MLabbb
Fall 2005 Costas Busch - RPI 56
Another PDA example
q0
PDA M
}1)()( ,prefix every in :},{{)( * vnvnvbawML ba
$,
,
,
b
ab
aa
Fall 2005 Costas Busch - RPI 67
q1 q2a, b cdf
a
b top
input
stack
a
Push
eh h
e
cdf
pushedstring
Example:
$ $
Fall 2005 Costas Busch - RPI 68
Another PDA example
$$, q1 q2
a, $ 0$a, 0 00a,1
b, $ 1$b, 1 11b, 0
PDA M
)}()(:},{{)( * wnwnbawML ba
Fall 2005 Costas Busch - RPI 69
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 2005 Costas Busch - RPI 70
Time 1
Input
a ab b b a
$
Stack
0
$$, q1 q2
a, $ 0$a, 0 00a,1
b, $ 1$b, 1 11b, 0
Fall 2005 Costas Busch - RPI 71
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 2005 Costas Busch - RPI 72
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 2005 Costas Busch - RPI 73
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 2005 Costas Busch - RPI 74
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 2005 Costas Busch - RPI 75
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 2005 Costas Busch - RPI 76
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 2005 Costas Busch - RPI 80
Formal Definition
Pushdown Automaton (PDA)
),,,δ,Γ,Σ,( 0 FzqQM
States
Inputalphabet
Stackalphabet
Transitionfunction
Acceptstates
Stackstartsymbol
Initialstate
Fall 2005 Costas Busch - RPI 81
Instantaneous Description
),,( suq
Currentstate Remaining
input
Currentstackcontents
Fall 2005 Costas Busch - RPI 82
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
Fall 2005 Costas Busch - RPI 83
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
Fall 2005 Costas Busch - RPI 85
a, a
b, a q0 q1 q2 q3
b, a
, , $ $
,$),(,$),($),,($),,(
$),,($),,($),,(
,$),(,$),(
3222
111
10
qqabqaabbq
aaabbbqaaabbbqaaabbbq
aaabbbqaaabbbq
A computation:
Fall 2005 Costas Busch - RPI 86
,$),(,$),($),,($),,(
$),,($),,($),,(
,$),(,$),(
3222
111
10
qqabqaabbq
aaabbbqaaabbbqaaabbbq
aaabbbqaaabbbq
For convenience we write:
,$),(,$),( 30 qaaabbbq
Fall 2005 Costas Busch - RPI 87
Formal Definition
Language accepted by PDA :M
)}',,(),,(:{)( 0 sqswqwML f
Initial state Accept state
)(ML
Fall 2005 Costas Busch - RPI 88
Example:,$),(,$),( 30 qaaabbbq
a, a
b, a q0 q1 q2 q3
b, a
, , $ $
PDA :M
)(MLaaabbb
Fall 2005 Costas Busch - RPI 89
,$),(,$),( 30 qbaq nn
a, a
b, a q0 q1 q2 q3
b, a
, , $ $
)(MLba nn
PDA :M