# Pushdown Automata (PDA)

date post

10-Jan-2016Category

## Documents

view

80download

3

Embed Size (px)

description

### Transcript of Pushdown Automata (PDA)

PUSHDOWN AUTOMATA (PDA)ALAK ROY.Assistant ProfessorDept. of CSENIT AgartalaCSE-501 FORMAL LANGUAGE & AUTOMATA THEORYAug-Dec,2010

*PUSHDOWN AUTOMATA (PDA)Informally:Think of an -NFA with the additional power that it can manipulate a stack.Transitions are modified to accommodate stack operations.

Questions:What is a stack?How does a stack help?

Why PDA?A DFA can remember only a finite amount of information, whereas a PDA can remember an infinite amount of (certain types of) information.

*

Example:

{0n1n | 0=

*

In a DFA, each state remembers a finite amount of information.

To get {0n1n | 0n} with a DFA would require an infinite number of states using the preceding technique.

An infinite stack solves the problem for {0n1n | 0n} as follows:Read all 0s and place them on a stackRead all 1s and match with the corresponding 0s on the stack

Only need two states to do this in a PDA

Similarly for {0n1m0n+m | n,m0}

PDA MODEL

CHARACTERISTIC OF PDAPDS (Pushdown Stack)

*PDABeing nondeterministic, the PDA can have a choice of next moves.

Its moves are determined by:The current state (of its NFA),The current input symbol (or ), and The current symbol on top of its stack.

In each choice, the PDA can:Change state, and alsoReplace the top symbol on the stack by a sequence of zero or more symbols.Zero symbols = pop.Many symbols = sequence of pushes.

*FORMAL DEFINITION OF A PDAA pushdown automaton (PDA) is a seven-tuple:

M = (Q, , , , q0, z0, F)

QA finite set of statesA finite input alphabetA finite stack alphabetq0The initial/starting state, q0 is in Qz0A starting stack symbol, is in FA set of final/accepting states, which is a subset of QA transition function, where : Q x ( U {}) x > finite subsets of Q x *

*Consider the various parts of :

Q x ( U {}) x > finite subsets of Q x *

Q on the LHS means that at each step in a computation, a PDA must consider its current state. on the LHS means that at each step in a computation, a PDA must consider the symbol on top of its stack. U {} on the LHS means that at each step in a computation, a PDA may or may not consider the current input symbol, i.e., it may have epsilon transitions.

Finite subsets on the RHS means that at each step in a computation, a PDA will have several options.Q on the RHS means that each option specifies a new state.* on the RHS means that each option specifies zero or more stack symbols that will replace the top stack symbol.

*CONVENTIONSa, b, are input symbols.But sometimes we allow as a possible value., X, Y, Z are stack symbols., w, x, y, z are strings of input symbols., , are strings of stack symbols.

*THE TRANSITION FUNCTIONTakes three arguments:A state, in Q.An input, which is either a symbol in or .A stack symbol in .(q, a, Z) is a set of zero or more actions of the form (p, ).p is a state; is a string of stack symbols.

*ACTIONS OF THE PDAIf (q, a, Z) contains (p, ) among its actions, then one thing the PDA can do in state q, with a at the front of the input, and Z on top of the stack is:Change the state to p.Remove a from the front of the input (but a may be ).Replace Z on the top of the stack by . (or Pop Z, Push )

*Two types of PDA transitions:

(q, a, z) = {(p1, 1), (p2, 2),, (pm, m)}

Current state is qCurrent input symbol is aSymbol currently on top of the stack zMove to state pi from qReplace z with i on the stack (leftmost symbol on top)Move the input head to the next input symbol

:

qp1p2pma/z/ 1a/z/ 2a/z/ m

*Two types of PDA transitions:

(q, , z) = {(p1, 1), (p2, 2),, (pm, m)}

Current state is qCurrent input symbol is not consideredSymbol currently on top of the stack zMove to state pi from qReplace z with i on the stack (leftmost symbol on top)No input symbol is read

:

qp1p2pm/z/ 1/z/ 2/z/ m

*EXAMPLE: PDADesign a PDA to accept {0n1n | n > 1}.The states:q = start state. We are in state q if we have seen only 0s so far.p = weve seen at least one 1 and may now proceed only if the inputs are 1s.f = final state; accept.

*EXAMPLE: PDA (2)The stack symbols:Z0 = start symbol. Also marks the bottom of the stack, so we know when we have counted the same number of 1s as 0s.X = marker, used to count the number of 0s seen on the input.

*EXAMPLE: PDA (3)The transitions:(q, 0, Z0) = {(q, XZ0)}.(q, 0, X) = {(q, XX)}. These two rules cause one X to be pushed onto the stack for each 0 read from the input.(q, 1, X) = {(p, )}. When we see a 1, go to state p and pop one X.(p, 1, X) = {(p, )}. Pop one X per 1.(p, , Z0) = {(f, Z0)}. Accept at bottom.

ACTIONS OF THE EXAMPLE PDAq 0 0 0 1 1 1Z0

ACTIONS OF THE EXAMPLE PDAq 0 0 1 1 1XZ0

ACTIONS OF THE EXAMPLE PDAq 0 1 1 1XXZ0

ACTIONS OF THE EXAMPLE PDAq1 1 1XXXZ0

*ACTIONS OF THE EXAMPLE PDAp1 1XXZ0

ACTIONS OF THE EXAMPLE PDAp1XZ0

ACTIONS OF THE EXAMPLE PDApZ0

ACTIONS OF THE EXAMPLE PDAfZ0

THANK YOU

***************