Formal LanguagesPush-Down Automata (PDAs)
2
Pushdown Automaton -- PDAInput String
Stack
States
3
Initial Stack Symbol
Stack
$
Stack
z
bottomspecial symbol
stackhead top
Appears at time 0
4
The States
q1 q2a, b c
Inputsymbol
Popsymbol
Pushsymbol
5
q1 q2a, b c
a
b top
input
stack
a
Replaceeh
$eh
$
c
6
q1 q2a, c
a a
Pushb
eh
$eh
$
bc
top
input
stack
7
q1 q2a, b
a a
Popb
eh
$eh
$
top
input
stack
8
q1 q2a,
a a
No Changeb
eh
$eh
$
btop
input
stack
9
q1 q2$,a
a a
Pop$ top
input
stack
Empty Stack
empty
The automaton HALTSNo possible transition after q2
10
q1 q2ba $,
a a
Pop$ top
input
stack
A Possible Transition
b
11
Non-Determinism
q1
q2a, b c
q3a, b c
q1 q2, b c
transition
PDAs are non-deterministicAllow non-deterministic transitions
12
Example PDA: Basic Idea?
,
a, a
b, a q0 q1 q2 q3
b, a
, $ $
PDA M
}0:{)( nbaML nn
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
14
a, a
b, a 0q q1 q2 q3
Execution Example:Inputa a a b b b
currentstate
b, a
Time 0
, , $ $
Stack$
15
a, a
b, a q0 q1 q2 q3
Inputa a a b b b
b, a
Time 1
, , $ $
Stack$
16
a, a
b, a q0 q1 q2 q3
Input
Stack
a a a b b b$a
b, a
Time 2
, , $ $
17
a, a
b, a q0 q1 q2 q3
Input
Stack
a a a b b b$aa
b, a
Time 3
, , $ $
18
a, a
b, a q0 q1 q2 q3
Input
Stack
a a a b b b
$aaa
b, a
Time 4
, , $ $
19
a, a
b, a q0 q1 q2 q3
Inputa a a b b b
Stack$aaa
b, a
Time 5
, , $ $
20
a, a
b, a q0 q1 q2 q3
Inputa a a b b b
$a
Stack
b, a
Time 6
, , $ $
a
21
a, a
b, a q0 q1 q2 q3
Inputa a a b b b
$Stack
b, a
Time 7
, , $ $
a
22
a, a
b, a q0 q1 q2 q3
Inputa a a b b b
b, a
Time 8
accept, , $ $
$Stack
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)
24
The input stringis accepted by the PDA:
aaabbb
a, a
b, a q0 q1 q2 q3
b, a
, , $ $
25
}0:{ nbaL nn
is the language accepted by the PDA:
a, a
b, a q0 q1 q2 q3
b, a
In general,
, , $ $
26
0q
a, a
b, a q1 q2 q3
Rejection Example:Inputa a b
currentstate
b, a
Time 0
, , $ $
Stack$
27
0q
a, a
b, a q1 q2 q3
Rejection Example:Inputa a b
currentstate
b, a
Time 1
, , $ $
Stack$
28
0q
a, a
b, a q1 q2 q3
Rejection Example:Inputa a b
currentstate
b, a
Time 2
, , $ $
Stack$
a
29
0q
a, a
b, a q1 q2 q3
Rejection Example:Inputa a b
currentstate
b, a
Time 3
, , $ $
Stack$
aa
30
0q
a, a
b, a q1 q2 q3
Rejection Example:Inputa a b
currentstate
b, a
Time 4
, , $ $
Stack$
aa
31
0q
a, a
b, a q1 q2 q3
Rejection Example:Inputa a b
currentstate
b, a
Time 4
, , $ $
Stack$
aa
reject
32
The input stringis rejected by the PDA:
aab
a, a
b, a q0 q1 q2 q3
b, a
, , $ $
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
34
Another PDA example: Language?
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
PDA M
35
Another PDA example
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
PDA M
}},{:{)( bavvvML R
36
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
}},{:{)( 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
37
Execution Example:Input
Time 0
Stack$
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
a ab b
38
Inputa ab
Time 1
Stack$
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
ab
39
InputTime 2
Stack$
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
aa ab bb
40
InputTime 3
Stack$
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
aa ab bb
Guess the middle of string
41
InputTime 4
Stack$
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
aa ab bb
42
InputTime 5
Stack$
, $ $1q q2
bbaa
,,
, q0
bbaa
,,
a ab b a
43
InputTime 6
Stack$
, $ $q1
bbaa
,,
, q0
bbaa
,,
a ab b
acceptq2
44
Rejection Example:Input
Time 0
Stack$
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
a b b b
45
InputTime 1
Stack$
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
aa b b b
46
InputTime 2
Stack$
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
ab
a b b b
47
InputTime 3
Stack$
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
ab
Guess the middle of string
a b b b
48
InputTime 4
Stack$
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
ab
a b b b
49
InputTime 5
Stack$
, $ $1q q2
bbaa
,,
, q0
bbaa
,,
aa b b b
There is no possible transition.
Input is not consumed
50
Another computation on same string:Input Time 0
Stack$
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
a b b b
51
InputTime 1
Stack$
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
aa b b b
52
InputTime 2
Stack$
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
ab
a b b b
53
InputTime 3
Stack$ab
a b b b
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
b
54
InputTime 4
Stack
a b b b
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
$abbb
55
InputTime 5
Stack
a b b b
$abbb
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
No final state is reached
56
, $ $q1 q2
bbaa
,,
, q0
bbaa
,,
There is no computation that accepts string abbb
)(MLabbb
57
Another PDA example: Language?
abaa
,,
q0
PDA M
58
Another PDA example
abaa
,,
q0
PDA M
)}()( ,prefix every in :},{{)( *
vnvnvbawML
ba
59
Execution Example:Input
Time 0
Stack
a a b
$,,,
bab
aa
q0
$
60
InputTime 1
Stack
a a b
q0
a$
$,,,
bab
aa
61
InputTime 2
Stack
a a b
q0
aa
$
$,,,
bab
aa
62
InputTime 3
Stack
a a b
q0
a
accept
$
$,,,
bab
aa
63
Rejection example:Input
Time 0
Stack
a b b
q0
b$
64
InputTime 1
Stack
q0
aa b b b$
$,,,
bab
aa
65
InputTime 2
Stack
q0
a b b b$
$,,,
bab
aa
66
InputTime 3
Stack
q0
a b b b
$,,,
bab
aa
67
InputTime 4
Stack
q0Halt and Reject
a b b b
$,,,
bab
aa
68
Pushing Strings
q1 q2a, b w
Inputsymbol
Popsymbol
Pushstring
69
q1 q2a, b cdf
a
b top
input
stack
a
Pusheh h
e
cdf
pushedstring
Example:
$ $
70
Another PDA example: Language?
$$, q1 q2
a, $ 0$a, 0 00a,1
b, $ 1$b, 1 11b, 0
PDA M
71
Another PDA example
$$, q1 q2
a, $ 0$a, 0 00a,1
b, $ 1$b, 1 11b, 0
PDA M
)}()(:},{{)( * wnwnbawML ba
72
Time 0Inputa ab b b
currentstate
a
$Stack
$$, q1 q2
a, $ 0$a, 0 00a,1
b, $ 1$b, 1 11b, 0
Execution Example:
73
Time 1Inputa ab b b a
$Stack
0
$$, q1 q2
a, $ 0$a, 0 00a,1
b, $ 1$b, 1 11b, 0
74
Time 3Inputa bb b a
$Stack
a
$
$$, q1 q2
a, $ 0$a, 0 00a,1
b, $ 1$b, 1 11b, 0
0
75
Time 4Inputa bb b a
$Stack
a1
$$, q1 q2
a, $ 0$a, 0 00a,1
b, $ 1$b, 1 11b, 0
76
Time 5Inputa bb b a
$Stack
a11
$$, q1 q2
a, $ 0$a, 0 00a,1
b, $ 1$b, 1 11b, 0
77
Time 6Inputa bb b a
$Stack
a1
$$, q1 q2
a, $ 0$a, 0 00a,1
b, $ 1$b, 1 11b, 0
1
78
Time 7Inputa bb b a
$Stack
a1
$$, q1 q2
a, $ 0$a, 0 00a,1
b, $ 1$b, 1 11b, 0
79
Time 8Inputa bb b a a
$Stack
$$, q1 q2
a, $ 0$a, 0 00a,1
b, $ 1$b, 1 11b, 0
accept
80
PDAs: Formal Definition
81
q1 q2a, b w
)},{(),,( 21 wqbaq
Transition function:
82
q1
q2wba ,
q3wba ,
)},(),,{(),,( 321 wqwqbaq
Transition function:
83
Formal DefinitionPushdown Automaton (PDA)
),,,δ,Γ,Σ,( 0 FzqQM
States
Inputalphabet
Stackalphabet
Transitionfunction
Finalstates
Stackstartsymbol
Initialstate