0% found this document useful (0 votes)
88 views

Pushdown Automata Pdas: Fall 2006 Costas Busch - RPI 1

The document describes pushdown automata (PDA) which are finite state machines that use a stack to process input strings. A PDA consists of states, an input alphabet, a stack alphabet, transition rules that can pop, push or replace symbols on the stack, and initial and accepting states. Transitions are non-deterministic and allow multiple transitions from a state based on the top symbol. Examples are provided to demonstrate how a PDA processes an input string and either accepts or rejects it based on its computations.

Uploaded by

erinchan123
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
88 views

Pushdown Automata Pdas: Fall 2006 Costas Busch - RPI 1

The document describes pushdown automata (PDA) which are finite state machines that use a stack to process input strings. A PDA consists of states, an input alphabet, a stack alphabet, transition rules that can pop, push or replace symbols on the stack, and initial and accepting states. Transitions are non-deterministic and allow multiple transitions from a state based on the top symbol. Examples are provided to demonstrate how a PDA processes an input string and either accepts or rejects it based on its computations.

Uploaded by

erinchan123
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 77

Fall 2006 Costas Busch - RPI 1

Pushdown Automata
PDAs

Fall 2006 Costas Busch - RPI 2
Pushdown Automaton -- PDA
Input String
Stack
States
Fall 2006 Costas Busch - RPI 3
Initial Stack Symbol
Stack
$
Stack
z
bottom special symbol
stack
head
top
Appears at time 0
Fall 2006 Costas Busch - RPI 4
The States
q
1
q
2
a, b c
Input
symbol
Pop
symbol
Push
symbol
Fall 2006 Costas Busch - RPI 5
q
1
q
2
a, b c
a
b
top
input
stack
a
Replace
e
h
$
e
h
$
c
Fall 2006 Costas Busch - RPI 6
q
1
q
2
a, c
a a
Push
b
e
h
$
e
h
$
b
c
top
input
stack
Fall 2006 Costas Busch - RPI 7
q
1
q
2
a, b
a a
Pop
b
e
h
$
e
h
$
top
input
stack
Fall 2006 Costas Busch - RPI 8
q
1
q
2
a,
a a
No Change
b
e
h
$
e
h
$
b
top
input
stack
Fall 2006 Costas Busch - RPI 9
q
1
q
2
c b a ,
a
Pop
top
input
stack
Pop from Empty Stack
Automaton halts!
If the automaton attempts to pop from
empty stack then it halts and rejects input
Fall 2006 Costas Busch - RPI 10
Non-Determinism
q
1
q
2
a, b c
q
3
a, b c
q
1
q
2
, b c
transition
PDAs are non-deterministic
Allowed non-deterministic transitions
Fall 2006 Costas Busch - RPI 11
Example PDA
,
a, a
b, a
q
0
q
1
q
2
q
3
b, a
, $ $
PDA : M } 0 : { ) ( > = n b a M L
n n
Fall 2006 Costas Busch - RPI 12
,
a, a
b, a
q
0
q
1
q
2
q
3
b, a
, $ $
} 0 : { ) ( > = n b a M L
n n
Basic Idea:
1. Push the as
on the stack
2. Match the bs on input
with as on stack
3. Match
found
Fall 2006 Costas Busch - RPI 13
a, a
b, a
0
q
q
1
q
2
q
3
Execution Example:
Input
a a a
b b b
current
state
b, a
Time 0
, , $ $
Stack
$
Fall 2006 Costas Busch - RPI 14
a, a
b, a
q
0
q
1
q
2
q
3
Input
a a a
b b b
b, a
Time 1
, , $ $
Stack
$
Fall 2006 Costas Busch - RPI 15
a, a
b, a
q
0
q
1
q
2
q
3
Input
Stack
a a a
b b b
$
a
b, a
Time 2
, , $ $
Fall 2006 Costas Busch - RPI 16
a, a
b, a
q
0
q
1
q
2
q
3
Input
Stack
a a a
b b b
$
a
a
b, a
Time 3
, , $ $
Fall 2006 Costas Busch - RPI 17
a, a
b, a
q
0
q
1
q
2
q
3
Input
Stack
a a a
b b b
$
a
a
a
b, a
Time 4
, , $ $
Fall 2006 Costas Busch - RPI 18
a, a
b, a
q
0
q
1
q
2
q
3
Input
a a a
b b b
Stack
$
a
a
a
b, a
Time 5
, , $ $
Fall 2006 Costas Busch - RPI 19
a, a
b, a
q
0
q
1
q
2
q
3
Input
a a a
b b b
$
a
Stack
b, a
Time 6
, , $ $
a
Fall 2006 Costas Busch - RPI 20
a, a
b, a
q
0
q
1
q
2
q
3
Input
a a a
b b b
$
Stack
b, a
Time 7
, , $ $
a
Fall 2006 Costas Busch - RPI 21
a, a
b, a
q
0
q
1
q
2
q
3
Input
a a a
b b b
b, a
Time 8
accept
, , $ $
$
Stack
Fall 2006 Costas Busch - RPI 22
A string is accepted if there is
a computation such that:
All the input is consumed
AND
The last state is an accepting state
we do not care about the stack contents
at the end of the accepting computation
Fall 2006 Costas Busch - RPI 23
0
q
a, a
b, a
q
1
q
2
q
3
Rejection Example:
Input
a a
b
current
state
b, a
Time 0
, , $ $
Stack
$
Fall 2006 Costas Busch - RPI 24
0
q
a, a
b, a
q
1
q
2
q
3
Rejection Example:
Input
a a
b
current
state
b, a
Time 1
, , $ $
Stack
$
Fall 2006 Costas Busch - RPI 25
0
q
a, a
b, a
q
1
q
2
q
3
Rejection Example:
Input
a a
b
current
state
b, a
Time 2
, , $ $
Stack
$
a
Fall 2006 Costas Busch - RPI 26
0
q
a, a
b, a
q
1
q
2
q
3
Rejection Example:
Input
a a
b
current
state
b, a
Time 3
, , $ $
Stack
$
a
a
Fall 2006 Costas Busch - RPI 27
0
q
a, a
b, a
q
1
q
2
q
3
Rejection Example:
Input
a a
b
current
state
b, a
Time 4
, , $ $
Stack
$
a
a
Fall 2006 Costas Busch - RPI 28
0
q
a, a
b, a
q
1
q
2
q
3
Rejection Example:
Input
a a
b
current
state
b, a
Time 4
, , $ $
Stack
$
a
a
reject
Fall 2006 Costas Busch - RPI 29
The string is rejected by the PDA aab
a, a
b, a
q
0
q
1
q
2
q
3
b, a
, , $ $
There is no accepting computation for
aab
Fall 2006 Costas Busch - RPI 30
Another PDA example
, $ $
q
1
q
2
b b
a a

,
,
,
q
0

b b
a a
,
,
PDA : M } } , { : { ) (
-
e = b a v vv M L
R
Fall 2006 Costas Busch - RPI 31
, $ $
q
1
q
2
b b
a a

,
,
,
q
0

b b
a a
,
,
} } , { : { ) (
-
e = b a v vv M L
R
Basic Idea:
1. Push v
on stack
2. Guess
middle
of input
3. Match on input
with v on stack
R
v
4. Match
found
Fall 2006 Costas Busch - RPI 32
Execution Example:
Input
Time 0
Stack
$
, $ $
q
1
q
2
b b
a a

,
,
,
q
0

b b
a a
,
,
a
a
b b
Fall 2006 Costas Busch - RPI 33
Input
a
a
b
Time 1
Stack
$
, $ $
q
1
q
2
b b
a a

,
,
,
q
0

b b
a a
,
,
a
b
Fall 2006 Costas Busch - RPI 34
Input
Time 2
Stack
$
, $ $
q
1
q
2
b b
a a

,
,
,
q
0

b b
a a
,
,
a
a
a
b b
b
Fall 2006 Costas Busch - RPI 35
Input
Time 3
Stack
$
, $ $
q
1
q
2
b b
a a

,
,
,
q
0

b b
a a
,
,
a
a
a
b b
b
Guess the middle
of string
Fall 2006 Costas Busch - RPI 36
Input
Time 4
Stack
$
, $ $
q
1
q
2
b b
a a

,
,
,
q
0

b b
a a
,
,
a
a
a
b b
b
Fall 2006 Costas Busch - RPI 37
Input
Time 5
Stack
$
, $ $
1
q
q
2
b b
a a

,
,
,
q
0

b b
a a
,
,
a
a
b b
a
Fall 2006 Costas Busch - RPI 38
Input
Time 6
Stack
$
, $ $
q
1
b b
a a

,
,
,
q
0

b b
a a
,
,
a
a
b b
accept
q
2
Fall 2006 Costas Busch - RPI 39
Rejection Example:
Input
Time 0
Stack
$
, $ $
q
1
q
2
b b
a a

,
,
,
q
0

b b
a a
,
,
a
b b b
Fall 2006 Costas Busch - RPI 40
Input
Time 1
Stack
$
, $ $
q
1
q
2
b b
a a

,
,
,
q
0

b b
a a
,
,
a
a
b b b
Fall 2006 Costas Busch - RPI 41
Input
Time 2
Stack
$
, $ $
q
1
q
2
b b
a a

,
,
,
q
0

b b
a a
,
,
a
b
a
b b b
Fall 2006 Costas Busch - RPI 42
Input
Time 3
Stack
$
, $ $
q
1
q
2
b b
a a

,
,
,
q
0

b b
a a
,
,
a
b
Guess the middle
of string
a
b b b
Fall 2006 Costas Busch - RPI 43
Input
Time 4
Stack
$
, $ $
q
1
q
2
b b
a a

,
,
,
q
0

b b
a a
,
,
a
b
a
b b b
Fall 2006 Costas Busch - RPI 44
Input
Time 5
Stack
$
, $ $
1
q
q
2
b b
a a

,
,
,
q
0

b b
a a
,
,
a
a
b b b
There is no possible transition.
Input is not
consumed
Fall 2006 Costas Busch - RPI 45
Another computation on same string:
Input
Time 0
Stack
$
, $ $
q
1
q
2
b b
a a

,
,
,
q
0

b b
a a
,
,
a
b b b
Fall 2006 Costas Busch - RPI 46
Input
Time 1
Stack
$
, $ $
q
1
q
2
b b
a a

,
,
,
q
0

b b
a a
,
,
a
a
b b b
Fall 2006 Costas Busch - RPI 47
Input
Time 2
Stack
$
, $ $
q
1
q
2
b b
a a

,
,
,
q
0

b b
a a
,
,
a
b
a
b b b
Fall 2006 Costas Busch - RPI 48
Input
Time 3
Stack
$
a
b
a
b b b
, $ $
q
1
q
2
b b
a a

,
,
,
q
0

b b
a a
,
,
b
Fall 2006 Costas Busch - RPI 49
Input
Time 4
Stack
a
b b b
, $ $
q
1
q
2
b b
a a

,
,
,
q
0

b b
a a
,
,
$
a
b
b
b
Fall 2006 Costas Busch - RPI 50
Input
Time 5
Stack
a
b b b
$
a
b
b
b
, $ $
q
1
q
2
b b
a a

,
,
,
q
0

b b
a a
,
,
No accept state
is reached
Fall 2006 Costas Busch - RPI 51
, $ $
q
1
q
2
b b
a a

,
,
,
q
0

b b
a a
,
,
There is no computation
that accepts string
abbb
) (M L abbbe
Fall 2006 Costas Busch - RPI 52
Pushing & Popping Strings
q
1
q
2
2 1
, w w a
Input
symbol
Push
string
Pop
string
Fall 2006 Costas Busch - RPI 53
q
1
q
2
cdf eb a ,
a
b
top
input
stack
a
Replace
e
h
h
e
c
d
f
push
string
Example:
$
$
e
pop
string
top
Fall 2006 Costas Busch - RPI 54
q
1
q
2
cdf eb a ,
q
1
q
2
e a, b a,
f a ,
,
d a ,
c a ,
pop
push
Equivalent
transitions
Fall 2006 Costas Busch - RPI 55
Another PDA example
$ $ ,
q
1
q
2
a, $ 0$
a, 0 00
a, 1
b, $ 1$
b, 111
b, 0
PDA M
)} ( ) ( : } , { { ) (
*
w n w n b a w M L
b a
= e =
Fall 2006 Costas Busch - RPI 56
Time 0
Input
a a
b b b
current
state
a
$
Stack
$ $ ,
q
1
q
2
a, $ 0$
a, 0 00
a, 1
b, $ 1$
b, 111
b, 0
Execution Example:
Fall 2006 Costas Busch - RPI 57
Time 1
Input
a a b b b
a
$
Stack
0
$ $ ,
q
1
q
2
a, $ 0$
a, 0 00
a, 1
b, $ 1$
b, 111
b, 0
Fall 2006 Costas Busch - RPI 58
Time 3
Input
a
b b b
a
$
Stack
a
$
$ $ ,
q
1
q
2
a, $ 0$
a, 0 00
a, 1
b, $ 1$
b, 111
b, 0
0
Fall 2006 Costas Busch - RPI 59
Time 4
Input
a
b b b
a
$
Stack
a
1
$ $ ,
q
1
q
2
a, $ 0$
a, 0 00
a, 1
b, $ 1$
b, 111
b, 0
Fall 2006 Costas Busch - RPI 60
Time 5
Input
a
b b b
a
$
Stack
a
1
1
$ $ ,
q
1
q
2
a, $ 0$
a, 0 00
a, 1
b, $ 1$
b, 111
b, 0
Fall 2006 Costas Busch - RPI 61
Time 6
Input
a
b b b
a
$
Stack
a
1
$ $ ,
q
1
q
2
a, $ 0$
a, 0 00
a, 1
b, $ 1$
b, 111
b, 0
1
Fall 2006 Costas Busch - RPI 62
Time 7
Input
a
b b b
a
$
Stack
a
1
$ $ ,
q
1
q
2
a, $ 0$
a, 0 00
a, 1
b, $ 1$
b, 111
b, 0
Fall 2006 Costas Busch - RPI 63
Time 8
Input
a
b b b
a a
$
Stack
$ $ ,
q
1
q
2
a, $ 0$
a, 0 00
a, 1
b, $ 1$
b, 111
b, 0
accept
Fall 2006 Costas Busch - RPI 64
Formalities for PDAs

Fall 2006 Costas Busch - RPI 65
q
1
q
2
2 1
, w w a
)} , {( ) , , (
2 2 1 1
w q w a q = o
Transition function:
Fall 2006 Costas Busch - RPI 66
q
1
q
2
2 1
, w w a
q
3
3 1
, w w a
)} , ( ), , {( ) , , (
3 3 2 2 1 1
w q w q w a q = o
Transition function:
Fall 2006 Costas Busch - RPI 67
Formal Definition
Pushdown Automaton (PDA)
) , , , , , , (
0
F z q Q M =
States
Input
alphabet
Stack
alphabet
Transition
function
Accept
states
Stack
start
symbol
Initial
state
Fall 2006 Costas Busch - RPI 68
Instantaneous Description
) , , ( s u q
Current
state
Remaining
input
Current
stack
contents
Fall 2006 Costas Busch - RPI 69
a, a
b, a
q
0
q
1
q
2
q
3
Input
Stack
a a a
b b b
$
a
a
b, a
Time 4:
, , $ $
Example: Instantaneous Description
$) , , (
1
aaa bbb q
a
Fall 2006 Costas Busch - RPI 70
a, a
b, a
q
0
q
1
q
2
q
3
Input
Stack
a a a
b b b
$
a
a
b, a
Time 5:
, , $ $
Example: Instantaneous Description
$) , , (
2
aa bb q
a
Fall 2006 Costas Busch - RPI 71
We write:
$) , , ( $) , , (
2 1
aa bb q aaa bbb q
Time 4
Time 5
Fall 2006 Costas Busch - RPI 72
a, a
b, a
q
0
q
1
q
2
q
3
b, a
, , $ $
,$) , ( ,$) , ( $) , , ( $) , , (
$) , , ( $) , , ( $) , , (
,$) , ( ,$) , (
3 2 2 2
1 1 1
1 0
q q a b q aa bb q
aaa bbb q aa abbb q a aabbb q
aaabbb q aaabbb q



A computation:
Fall 2006 Costas Busch - RPI 73
,$) , ( ,$) , ( $) , , ( $) , , (
$) , , ( $) , , ( $) , , (
,$) , ( ,$) , (
3 2 2 2
1 1 1
1 0
q q a b q aa bb q
aaa bbb q aa abbb q a aabbb q
aaabbb q aaabbb q



For convenience we write:
,$) , ( ,$) , (
3 0
q aaabbb q
-

Fall 2006 Costas Busch - RPI 74


Language of PDA
Language accepted by PDA : M
)} , , ( ) , , ( : { ) (
0
s q z w q w M L
f

-
=
Initial state
Accept state
) (M L
Fall 2006 Costas Busch - RPI 75
Example:
,$) , ( ,$) , (
3 0
q aaabbb q
-

a, a
b, a
q
0
q
1
q
2
q
3
b, a
, , $ $
PDA :
M
) (M L aaabbbe
Fall 2006 Costas Busch - RPI 76
,$) , ( ,$) , (
3 0
q b a q
n n
-

a, a
b, a
q
0
q
1
q
2
q
3
b, a
, , $ $
) (M L b a
n n
e
PDA :
M
Fall 2006 Costas Busch - RPI 77
a, a
b, a
q
0
q
1
q
2
q
3
b, a
, , $ $
PDA :
M
} 0 : { ) ( > = n b a M L
n n
Therefore:

You might also like