Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS 3240 – Chapter 7. LanguageMachineGrammar RegularFinite AutomatonRegular Expression, Regular Grammar Context-FreePushdown AutomatonContext-Free Grammar.

Similar presentations


Presentation on theme: "CS 3240 – Chapter 7. LanguageMachineGrammar RegularFinite AutomatonRegular Expression, Regular Grammar Context-FreePushdown AutomatonContext-Free Grammar."— Presentation transcript:

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


Download ppt "CS 3240 – Chapter 7. LanguageMachineGrammar RegularFinite AutomatonRegular Expression, Regular Grammar Context-FreePushdown AutomatonContext-Free Grammar."

Similar presentations


Ads by Google