Title: Pushdown Automata (PDA
1Lecture 33
- Pushdown Automata (PDAs)
- definition
- example
2Pushdown Automata
- Definition and Motivating Example
3PDAs
- In this presentation we introduce the PDA model
of computation (programming language). - We first begin with an example NFA
- We augment this NFA with external memory in the
form of a counter - We then transform the counter into a stack to
produce a PDA - We define configurations and computations of
these new computational models - We define L(M) for these new computational models
4NFA for ambn m,n gt 0
- Consider the language anbn n gt 0.
- This NFA can recognize strings which have the
correct form, - as followed by bs.
- However, the NFA cannot remember the relative
number of as and bs seen at any point in time.
- What strings end up in each state of the above
NFA? - A The set of strings in a.
- B The set of strings in ab.
- C The set of strings in ab.
5NFA for anbn n gt0
Imagine we now have memory in the form of a
counter which we can increment or decrement every
time we see an input character. When we see an a
in state A, we do the following two actions 1)
We increment the counter value by 1. 2) We stay
in state A. When we see a b in state B, we do
the following two actions 1) We decrement the
counter value by 1. 2) We stay in state B. From
state B, we allow a /\-transition to state C only
if 1) The counter has value 0. Finally, when we
begin, the counter should have value 0.
6Defining Configurations of NFA
- The following information needs to be recorded in
a configuration of a computation of an NFA M on
an input string x. - 1) Current state
- 2) Remaining input to be processed
- 3) Current counter value
- Note, the counter is NOT part of the input.
- It is part of the computational model.
- Its current value needs to be recorded in a
configuration.
7Computation Tree of NFA
Computation Tree for this NFA on the input
string aabb
(A,aabb,0)
8Questions about NFA
1) Why can this NFA accept anbn n gt 0?
That is, how do we get around the Myhill-Nerode
Theorem? 2) What happens if the counter has a
finite capacity? For example, it can only go
up to 10. Can some NFA still accept anbn
n gt 0? 3) Suppose that we have a stack data
structure instead of a counter. Can we do
anything we could with the counter? Can we
do something we could not do with only a counter?
9PDA for anbn n gt 0
Here is a pushdown automaton (PDA) for this
language. A PDA is essentially an NFA augmented
with an infinite capacity stack. The pushdown
part of the name supposedly comes from the
stacks trays in cafeterias where you have to
pushdown on the stack to add a tray to it. In
this example, only one character a is ever pushed
onto the stack.
NFA
10Defining Configurations of PDA
The following information needs to be recorded in
a configuration of a computation of an PDA M on
an input string x. 1) Current state 2) Remaining
input to be processed 3) Current stack
contents. Note again, the stack is NOT part of
the input. It is part of the computational
model. However, its current value needs to be
recorded in a configuration. We will represent
the stack contents by a string of
characters. The leftmost character is on top of
the stack. The rightmost character is at the
bottom of the stack. We will represent an empty
stack with the string /\.
11Computation Graph of PDA
Computation graph for this PDA on the input
string aabb
(A,aabb,/\)
12PDA for anbn n gt 0
1) The first black character is the current input
symbol. 2) The second red character is the
current top stack symbol. 3) The third string of
characters is the stack update action. The stack
character Z is a special character which we
will always keep on the bottom of the stack.
Note it is part of G, though, so it may be used
other places as well.
13Computation Graph of PDA
Computation graph for this PDA on the input
string aabb
(A,aabb,Z)
14Formal Definition of PDA
A PDA M (Q, S, G, q0, Z, A, d) Items common to
NFAs Q is the set of states S is the input
alphabet q0 is the initial state A is the set
of accepting states Modified items G is the
stack alphabet - Z is a special character in
G - The stack always begins containing 1 Z d
modified as follows pops/reads top stack
symbol as well as current input
character describes how to update stack note
push /\ results in pop!
Q I, B, C S a,b G Z, a q0 I Z is
the initial stack character A
C d state input top stack next state stack
update I a a I push aa I a Z I push
aZ I /\ a B push a I /\ Z B push Z B b a B push
/\ B /\ Z C push Z
15Nondeterministic vs Deterministic
- PDA M (Q, S, G, q0, Z, A, d)
- A PDA is deterministic if
- For all q in Q and a in S,
- d(q,a) p (or is undefined) AND
- if d(q,/\) is defined, then d(q,a) is undefined
- A PDA is nondeterministic otherwise
- This is our default assumption
16L(M) for a PDA
A string x is in L(M) if and only if it there
exists an accepting configuration (q, /\,
anything) in the computation graph of M on x
. An accepting configuration satisfies the
following two conditions 1) The PDA must be in
an accepting state 2) The input string must be
completely processed Note, the stack contents is
unimportant. This is known as acceptance by
final state.
17Deterministic PDAs
- A PDA is deterministic if its transition function
satisfies both of the following properties - For all q in Q, a in S union l, and X in G,
- the set d(q,a) has at most one element
- For all q in Q and X in G,
- if d(q, l, X) lt gt , then d(q,a,X) for
all a in S - A computation graph is now just a path again
18LPDA and DCFL
- A language L is in language class LPDA if and
only if there exists a PDA M such that L(M) L - A language L is in language class DCFL
(Deterministic Context-Free Languages) if and
only if there exists a deterministic PDA M such
that L(M) L - To be proven
- LPDA CFL which is a proper superset of DCFL
19PDA Comments
- Note, we can use the stack for much more than
just a counter - See examples in section 6.1 for some details