Download presentation
Presentation is loading. Please wait.
Published byShanon Glenn Modified over 8 years ago
1
Push-down Automata Section 3.3 Fri, Oct 21, 2005
2
Push-Down Automata Recall that DFAs accept regular languages. We want to design machines similar to DFAs that will accept context-free languages. These machines will need to be more powerful. To handle a language like {a n b n | n 0}, the machine needs to “remember” the number of as. To do this, we use a stack. A push-down automaton (PDA) is essentially an NFA with a stack.
3
Definition of a Push-Down Automaton A push-down automaton (PDA) is a sextuple (K, Σ, Γ, Δ, s, F) where K is a finite set of states. Σ is a finite alphabet of tape symbols. Γ is a finite alphabet of stack symbols. s K is the start state. F K is the set of final states. Δ is the transition relation, i.e., Δ is a finite subset of (K (Σ {e}) Γ * ) (K Γ * ).
4
Transitions Let ((p, a, β), (q, γ)) Δ be a transition. It means that we Move from state p. Read a from the tape, Pop the string β from the stack, Move to state q, Push string γ onto the stack. The first three (p, a, β), are “input.” The last two (q, γ) are “output.”
5
Transitions We will draw it as pq a, ;
6
Pushing and Popping When we push β, we push the symbols of β as we read them right to left. When we push the string abc, we push c, then push b, then push a. When we pop γ, we pop the symbols of γ as we read them from left to right (reverse order). When we pop the string abc, we pop a, then pop b, then pop c.
7
Pushing and Popping Thus, if we push the string abc and then pop it, we will get back abc, not cba. If we wanted to reverse the order, we would use three separate transitions: Push a Push b Push c
8
Configurations A configuration fully describes the current “state” of the PDA. The current state p. The remaining input w. The current stack contents . Thus, a configuration is a triple (p, w, ) (K, *, * ).
9
Computations A configuration (p, w, ) yields a configuration (p', w', ') in one step, denoted (p, w, ) (p', w', '), if there is a transition ((p, a, ), (p', )) Δ such that w = aw', = , and ' = for some *. The reflexive, transitive closure of is denoted *.
10
Accepting Strings After processing the string on the tape, The PDA is in either a final or a nonfinal state, and The stack is either empty or not empty. The input string is accepted if The ending state is a final state, and The stack is empty. That is, the string w * is accepted if (s, w, e) * (f, e, e) for some f F.
11
Accepting Strings One may define acceptance “by final state” only. The input is accepted if and only if the last state is a final state, regardless of whether the stack is empty. One may define acceptance “by empty stack” only. The input is accepted if and only if the stack is empty once the input is processed, regardless of which state the PDA is in.
12
Example of a PDA Run the following PDA on the input string aaabbb. sp q a, e; a b, a; e a, e; a
13
Example of a PDA The steps in the processing are (s, aaabbb, e) (p, aabbb, a) (p, abbb, aa) (p, bbb, aaa) (p, bb, aa) (p, b, a) (q, e, e).
14
The Language of a PDA The language of a PDA A is L(A) = {w * A accepts w}. What is the language of the PDA in the previous example?
15
s p e, e; e b, a; ea, e; a Example of a PDA What is the language of the following PDA?
16
Examples of PDAs Let = {a, b}. Design a PDA that accepts the language {wcw R | w * }. Design a PDA that accepts the language {ww R | w * }.
17
Examples of PDAs Design a PDA whose language is {a m b n 0 m < n}. Design a PDA whose language is {a m b n 0 n < m}.
18
Examples of PDAs Design a PDA whose language is {a m b n c n d m | m 0, n 0}. Design a PDA whose language is {a m b m c n d n | m 0, n 0}. Design a PDA whose language is {a m b n c p d q | m + n = p + q}. Design a PDA whose language is {a m b n c k | m = n or m = k}.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.