Download presentation
Presentation is loading. Please wait.
Published byMarjorie Wheeler Modified over 8 years ago
1
CS 3240 – Chapter 7
2
LanguageMachineGrammar RegularFinite AutomatonRegular Expression, Regular Grammar Context-FreePushdown AutomatonContext-Free Grammar Recursively Enumerable Turing MachineUnrestricted Phrase- Structure Grammar 2CS 3240 - Introduction
3
Take an FA and add a stack A restricted form of unbounded memory Operations: Pop Push Ignore (λ) (Pop always precedes push) 3CS 3240 - Pushdown Automata
4
Three items per transition edge ,, any or all could be λ A PDA accepts when: An accepting state is reached, and The stack is empty ▪ Different from book! ▪ The machine crashes when no move is possible ▪ implicit jail 4CS 3240 - Pushdown Automata
5
A deterministic PDA (no choices; λ is okay sometimes). The stack alphabet (Γ = {X}) can differ from the input alphabet (Σ = {a, b}). Trace aabb… 5CS 3240 - Pushdown Automata
6
q 0 aabbλ q 0 abbX q 0 bbXX q 1 bX q 1 λλ 6CS 3240 - Pushdown Automata Traditional notation (see book): (q 0,aabb, λ) ⊢ (q 0,abb,X) ⊢ (q 0,bb,XX) ⊢ (q 1,b,X) ⊢ (q 1,λ, λ) Also: (q 0,aabb,λ) ⊢ * (q 1,λ, λ) ( ⇒ aabb ∈ L)
7
7CS 3240 - Pushdown Automata
8
8 How would you do a 2n b n ?
9
CS 3240 - Pushdown Automata9 Each b must pop 2 X’s
10
Is this deterministic? Trace the string abaacaaba. 10CS 3240 - Pushdown Automata
11
Input: (state-1, input character, pop character) Output: (state-2, push character(s)) Example: The edge (a,λ,a) on previous slide: δ(q 0,a,λ) = (q 0,a) Exercise: Rewrite wcw R in functional form CS 3240 - Pushdown Automata11
12
Is this deterministic? Trace the string abaaaaaba. Trace the string abaabaaba. Trace the string abaaaaba. 12CS 3240 - Pushdown Automata
13
13 Trace aaabbbb The grammar: S → aSb | aSbb | λ
14
CS 3240 - Pushdown Automata14 Trace ababbaab
15
CS 3240 - Pushdown Automata15
16
CS 3240 - Pushdown Automata16 Try abababbbb. How would you do Twice a ? Reasoning: There must be 2 b’s for every a. When we read an a, there are three possibilities: 1)Its 2 b’s have already been read 2)1 b has been read and 1 remains 3)Both b’s are yet to be read
17
CS 3240 - Pushdown Automata17
18
CS 3240 - Pushdown Automata18
19
CS 3240 - Pushdown Automata19
20
Q:set of states ∑: input alphabet Γ: stack alphabet δ: Q x (∑ ∪ λ) x (Γ ∪ λ) → finite subsets of Q x Γ * q 0 : start state F ⊆ Q: final states (z Γ: optional stack start symbol) CS 3240 - Pushdown Automata20
21
Not strictly necessary Can serve as a “bottom marker” to allow detection of an empty stack A convenience Can make things easier to design/understand Sometimes handy when seeking an associated CFG Can eliminate some lambda pops ▪ Handy later CS 3240 - Pushdown Automata21
22
CS 3240 - Pushdown Automata22
23
CS 3240 - Pushdown Automata23
24
CS 3240 - Pushdown Automata24
25
CS 3240 - Pushdown Automata25
26
How do we know that PDAs are the correct machine model for CFLs? 1) Must show that for any CFG, there is a PDA that accepts its language 2) Must show that for any PDA, there is a CFG that generates its language The first case is easier than the second! It can be handy to go back and forth CS 3240 - Pushdown Automata26
27
The leading character is read The LHS variable is popped The RHS string is pushed Initial transition pushes S See next slide CS 3240 - Pushdown Automata27
28
CS 3240 - Pushdown Automata28
29
CS 3240 - Pushdown Automata29
30
Very trivial (Yay!) But the (2-state) PDA is non-deterministic State-2 is a final state 1) Push S on the stack; move to state-2 2) For every rule, have a transition that: pops the left-hand side and pushes the right-hand side 3) For every character, c, in Σ, have a rule that: consumes and pops c simultaneously CS 3240 - Pushdown Automata30
31
CS 3240 - Pushdown Automata31 S → aSb | aSbb | λ Trace aaabbbbb: (q 0,aaabbbbb,λ) ⊢ (q 1,aaabbbbb,S) ⊢ (q 1,aaabbbbb,aSbb) ⊢ (q 1,aabbbbb,Sbb) ⊢ (q 1,aabbbbb,aSbbbb) ⊢ (q 1,abbbbb,Sbbbb) ⊢ (q 1,abbbbb,aSbbbbb) ⊢ (q 1,bbbbb,Sbbbbb) ⊢ (q 1,bbbbb,bbbbb) ⊢ * (q 1,λ,λ)
32
CS 3240 - Pushdown Automata32 S → aSbSbS | bSaSbS | bSbSaS | λ … And trace bbabaabbb
33
CS 3240 - Pushdown Automata33 S => (S) | SS | λ Derive ()(()) from the grammar. Then accept it by the machine. Then find a one-state DPDA for this language.
34
We need to relate PDA movement to a CFG production rule somehow Key: consuming a character in the PDA corresponds to generating a character in the CFG The stack contents must also be part of all this CS 3240 - Pushdown Automata34
35
PDAs of the form below have a natural translation to a CFG the reverse of CFG-to-PDA conversion (conveniently) call the stack start symbol S Translate each transition in state-2 into a rule: ▪ c,X,Y X → cY (i.e., → ) ▪ (X cannot be λ) CS 3240 - Pushdown Automata35
36
CS 3240 - Pushdown Automata36 S → aXS | bYS | λ X → aXX | bYX | b Y → bYY | aXY | a Derive abbbaaba
37
CS 3240 - Pushdown Automata37 Go back and find grammars for slides 22,24-25. Also, work backward from the (()) DPDA to a grammar.
38
We must also track state changes Our variables must therefore contain state and stack information Very tricky! CS 3240 - Pushdown Automata38
39
Suppose X is on the stack and ‘a’ is read What can happen to X? It will be popped (and possibly put back) It may be replaced by one or more other stack symbols ▪ Which symbols will also later be popped, replaced, etc… ▪ The stack grows and shrinks and grows and shrinks … Eventually, as more input is consumed, the effect of having pushed X on the stack must be erased (or we’ll never reach an empty stack!) And the state may change many times! CS 3240 - Pushdown Automata39
40
… (q i, x 1 x 2 …x k, Y 1 Y 2 …Y k ) ⊢ * (q j, x 2 …x k, Y 2 …Y k ) ⊢ * (q n, x k, Y k ) ⊢ * (q f, λ, λ) 40CS 3240 - Pushdown Automata
41
Let the symbol represent the sequence of movements in a PDA that: starts in state q eventually ends in state p eventually removes A and its after-effects from the stack The symbol then represents accepting a valid string (if s is the start state and f is a final state) These symbols will be our variables Because they track the machine configuration that accepts strings Just as the grammar will generate those strings 41CS 3240 - Pushdown Automata
42
Consider the transition δ(q,a,X) = (p,Y) This means that a is consumed, X is popped, we move directly to state p, and subsequent processing must eventually erase Y and its follow-on effects A corresponding grammar rule is: → a (?’s represent the same state) We don’t know where we’ll eventually end up when the stack is back to where it was before the X was first pushed All we know is we immediately go through p So we entertain all possibilities (see 3 and 4 on next slide) 42CS 3240 - Pushdown Automata
43
1) S → for all final states, f 2) → λ for all states, q These will serve as terminators 3) For transitions δ(q,a,X) = (p,Y): → a for all states, r 4) For transitions δ(q,a,X) = (p,Y 1 Y 2 ): → a for all states, r, s And so on, for longer pushed strings 43CS 3240 - Pushdown Automata
44
The process requires: No multiple pops ▪ So spread them out over multiple states if needed Also, for every lambda-pop c,λ,X: Add an equivalent rule for each letter of Γ (the stack alphabet) as follows: ▪ (c,X,XX) ▪ (c,Y,XY) ▪ etc. ▪ And keep the original lambda pop!!! CS 3240 - Pushdown Automata44
45
45CS 3240 - Pushdown Automata Call the start state, s, and the final state, f. Add the following transition on s: (a,X,XX) 1) S → 2) → λ; → λ Now go through each transition…
46
1. δ(s,a,λ) = (s,X): → a 2. δ(s,a,X) = (s,XX): → a CS 3240 - Pushdown Automata46
47
3. δ(s,b,X) = (f,λ): → b 4. δ(f,b,X) = (f,λ): → b CS 3240 - Pushdown Automata47
48
CS 3240 - Pushdown Automata48 S → → a | λ → λ → a → a | a | b → b
49
CS 3240 - Pushdown Automata49 S → → a | λ → a → a | a | b → b
50
CS 3240 - Pushdown Automata50 S → → a → a | b → b
51
CS 3240 - Pushdown Automata51 S → a → a | b → b
52
CS 3240 - Pushdown Automata52 S → a → a b | b
53
CS 3240 - Pushdown Automata53 S → aX X → aXb | b Done! (finally :-)
54
Find a CFG for n b = n a + 1 using the generic conversion process CS 3240 - Pushdown Automata54
55
A PDA is deterministic if there are no choices: Depends on a state’s pair: 1) δ(q,a,X) has only one choice (a could be λ), and 2) If a is not λ, then there is no δ(q,λ,X) edge, and 3) if X is not λ, then there is no δ(q,a,λ) edge. NOTE: Some PDAs are inherently non- deterministic (no deterministic equivalent, e.g., ww R ) CS 3240 - Pushdown Automata55
56
Revisit previous PDAs and check for determinacy CS 3240 - Pushdown Automata56
57
Languages accepted by nondeterministic PDA Languages accepted by deterministic PDA Languages accepted by DFA CS 3240 - Pushdown Automata57
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.