Pushdown Automata (PDA). Part 2

Slides:



Advertisements
Similar presentations
CS2303-THEORY OF COMPUTATION Push Down Automata (PDA)
Advertisements

Chapter 5 Pushdown Automata
Pushdown Automata (PDA)
Introduction to Computability Theory
1 Introduction to Computability Theory Lecture7: PushDown Automata (Part 1) Prof. Amos Israeli.
Costas Busch - RPI1 Pushdown Automata PDAs. Costas Busch - RPI2 Pushdown Automaton -- PDA Input String Stack States.
1 … NPDAs continued. 2 Pushing Strings Input symbol Pop symbol Push string.
Courtesy Costas Busch - RPI1 Pushdown Automata PDAs.
Courtesy Costas Busch - RPI1 NPDAs Accept Context-Free Languages.
Fall 2004COMP 3351 Pushdown Automata PDAs. Fall 2004COMP 3352 Pushdown Automaton -- PDA Input String Stack States.
Fall 2006Costas Busch - RPI1 Pushdown Automata PDAs.
January 14, 2015CS21 Lecture 51 CS21 Decidability and Tractability Lecture 5 January 14, 2015.
CS5371 Theory of Computation Lecture 8: Automata Theory VI (PDA, PDA = CFG)
Prof. Busch - LSU1 Pushdown Automata PDAs. Prof. Busch - LSU2 Pushdown Automaton -- PDA Input String Stack States.
Fall 2005Costas Busch - RPI1 Pushdown Automata PDAs.
1 Pushdown Automata PDAs. 2 Pushdown Automaton -- PDA Input String Stack States.
CS 3240: Languages and Computation Pushdown Automata & CF Grammars NOTE: THESE ARE ONLY PARTIAL SLIDES RELATED TO WEEKS 9 AND 10. PLEASE REFER TO THE TEXTBOOK.
1 CD5560 FABER Formal Languages, Automata and Models of Computation Lecture 8 Mälardalen University 2010.
Pushdown Automata.
Pushdown Automata CS 130: Theory of Computation HMU textbook, Chap 6.
Pushdown Automata (PDAs)
Definition Moves of the PDA Languages of the PDA Deterministic PDA’s Pushdown Automata 11.
Lecture Pushdown Automata. stack stack head finite control tape head tape.
1 CD5560 FABER Formal Languages, Automata and Models of Computation Lecture 11 Midterm Exam 2 -Context-Free Languages Mälardalen University 2005.
1 CDT314 FABER Formal Languages, Automata and Models of Computation Lecture 6 Mälardalen University 2010.
Complexity and Computability Theory I Lecture #11 Instructor: Rina Zviel-Girshin Lea Epstein.
PushDown Automata. What is a stack? A stack is a Last In First Out data structure where I only have access to the last element inserted in the stack.
Foundations of (Theoretical) Computer Science Chapter 2 Lecture Notes (Section 2.2: Pushdown Automata) Prof. Karen Daniels, Fall 2010 with acknowledgement.
Formal Languages, Automata and Models of Computation
1 Chapter 6 Pushdown automata Sagrada Familia ( 聖家 堂 ), Barcelona, Spain.
1 Pushdown Automata Definition Moves of the PDA Languages of the PDA Deterministic PDA’s.
Lecture 14 Push Down Automata (PDA) Topics:  Definition  Moves of the PDA  Languages of the PDA  Deterministic PDA’s June 18, 2015 CSCE 355 Foundations.
CSC 3130: Automata theory and formal languages Andrej Bogdanov The Chinese University of Hong Kong Pushdown.
Donghyun (David) Kim Department of Mathematics and Physics North Carolina Central University 1 Chapter 2 Context-Free Languages Some slides are in courtesy.
CSC 3130: Automata theory and formal languages Andrej Bogdanov The Chinese University of Hong Kong Pushdown.
Grammar Set of variables Set of terminal symbols Start variable Set of Production rules.
1 CDT314 FABER Formal Languages, Automata and Models of Computation Lecture 8 Mälardalen University 2011.
CS 154 Formal Languages and Computability March 10 Class Meeting Department of Computer Science San Jose State University Spring 2016 Instructor: Ron Mak.
CS 154 Formal Languages and Computability March 15 Class Meeting Department of Computer Science San Jose State University Spring 2016 Instructor: Ron Mak.
Theory of Computation Automata Theory Dr. Ayman Srour.
Lecture 11  2004 SDU Lecture7 Pushdown Automaton.
6. Pushdown Automata CIS Automata and Formal Languages – Pei Wang.
Formal Languages, Automata and Models of Computation
Pushdown Automata.
Closed book, closed notes
Lecture 14 Push Down Automata (PDA)
CSE 105 theory of computation
CSE 105 theory of computation
CIS Automata and Formal Languages – Pei Wang
Pushdown Automata PDAs
Pushdown Automata PDAs
Pushdown Automata PDAs
Pushdown Automata PDAs
Chapter 7 PUSHDOWN AUTOMATA.
AUTOMATA THEORY VI.
Pushdown Automata (PDA). Part 1
Pushdown Automata (PDA)
Pushdown Automata (PDA). Part 3
Pushdown Automata Reading: Chapter 6.
Pushdown automata and CFG ↔ PDA conversions
Definition Moves of the PDA Languages of the PDA Deterministic PDA’s
Definition Moves of the PDA Languages of the PDA Deterministic PDA’s
Chapter 2 Context-Free Language - 01
CSE 105 theory of computation
… NPDAs continued.
Pushdown automata The Chinese University of Hong Kong Fall 2011
CSE 105 theory of computation
Push Down Automata Push Down Automata (PDAs) are L-NFAs with stack memory. Transitions are labeled by an input symbol together with a pair of the form.
CSE 105 theory of computation
Presentation transcript:

Pushdown Automata (PDA). Part 2 Cpt S 317: Spring 2009 Pushdown Automata (PDA). Part 2 The structure and the content of the lecture is based on http://www.eecs.wsu.edu/~ananth/CptS317/Lectures/index.htm School of EECS, WSU

PDA - the automata for CFLs Cpt S 317: Spring 2009 PDA - the automata for CFLs What is? FA to Reg Lang, PDA is to CFL PDA == [  -NFA + “a stack” ] Why a stack? PDA can remember an infinite amount of information but the access is only at the top (different to Turing machines - computers) -NFA Input string Accept/reject A stack filled with “stack symbols” School of EECS, WSU

Pushdown Automata - Definition Cpt S 317: Spring 2009 Pushdown Automata - Definition A PDA P := ( Q,∑,, δ,q0,Z0,F ): Q: states of the -NFA ∑: input alphabet  : stack symbols δ: transition function q0: start state Z0: Initial stack top symbol F: Final/accepting states School of EECS, WSU

δ : The Transition Function Cpt S 317: Spring 2009 old state Stack top input symb. new state(s) new Stack top(s) δ : Q x ∑ x  => Q x  δ : The Transition Function δ(q,a,X) = {(p,Y), …} state transition from q to p a is the next input symbol X is the current stack top symbol Y is the replacement for X; it is in * (a string of stack symbols) Set Y =  for: Pop(X) If Y=X: stack top is unchanged If Y=Z1Z2…Zk: X is popped and is replaced by Y in reverse order (i.e., Z1 will be the new stack top) a X Y q p Non-determinism Y = ? Action i) Y= Pop(X) ii) Y=X Pop(X) Push(X) iii) Y=Z1Z2..Zk Push(Zk) Push(Zk-1) … Push(Z2) Push(Z1) School of EECS, WSU

Example Let Lwwr = {wwR | w is in {0,1}*} Cpt S 317: Spring 2009 Example Let Lwwr = {wwR | w is in {0,1}*} CFG for Lwwr : S==> 0S0 | 1S1 |  PDA for Lwwr : P := ( Q,∑, , δ,q0,Z0,F ) = ( {q0, q1, q2},{0,1},{0,1,Z0},δ,q0,Z0,{q2}) Z0 marks the bottom of the stack. We need to have this symbol present s.t. After we pop w from the stack and realized we have seen ww^R on the input we still have smth on the stack to permit a transition to the accepting state. Mark the botom of the stack School of EECS, WSU

PDA for Lwwr Initial state of the PDA: q0 Stack top Cpt S 317: Spring 2009 Z0 Initial state of the PDA: q0 Stack top PDA for Lwwr δ(q0,0, Z0)={(q0,0Z0)} δ(q0,1, Z0)={(q0,1Z0)} δ(q0,0, 0)={(q0,00)} δ(q0,0, 1)={(q0,01)} δ(q0,1, 0)={(q0,10)} δ(q0,1, 1)={(q0,11)} δ(q0, , 0)={(q1, 0)} δ(q0, , 1)={(q1, 1)} δ(q0, , Z0)={(q1, Z0)} δ(q1,0, 0)={(q1, )} δ(q1,1, 1)={(q1, )} δ(q1, , Z0)={(q2, Z0)} First symbol push on stack Grow the stack by pushing new symbols on top of old (w-part) Switch to popping mode, nondeterministically (boundary between w and wR) Shrink the stack by popping matching symbols (wR-part) Enter acceptance state School of EECS, WSU

PDA as a state diagram δ(qi,a, X)={(qj,Y)} Next input symbol Current Cpt S 317: Spring 2009 PDA as a state diagram δ(qi,a, X)={(qj,Y)} Next input symbol Current stack top Stack Top Replacement (w/ string Y) Current state Next state a, X / Y qi qj School of EECS, WSU

PDA for Lwwr: Transition Diagram Cpt S 317: Spring 2009 PDA for Lwwr: Transition Diagram ∑ = {0, 1} = {Z0, 0, 1} Q = {q0,q1,q2} Grow stack 0, Z0/0Z0 1, Z0/1Z0 0, 0/00 0, 1/01 1, 0/10 1, 1/11 Pop stack for matching symbols 0, 0/  1, 1/  q0 q1 q2 , Z0/Z0 , Z0/Z0 , 0/0 , 1/1 , Z0/Z0 Go to acceptance Push input symbols onto the stack Non-deterministically move to a popping state (with or without consuming a single input symbol) If next input symbol is same as top of stack, pop If Z0 on top of stack move to accept state Switch to popping mode Non-deterministic PDA: 2 output trasitions i.e. (q0, 0, 0) = (q0, 0), (q0, , 0) = (q1, 0): School of EECS, WSU

How does the PDA for Lwwr work on input “1111”? Cpt S 317: Spring 2009 How does the PDA for Lwwr work on input “1111”? All moves made by the non-deterministic PDA Instantaneous Description (ID) (q0,1111,Z0) (q1,1111,Z0) Path dies… (q0,111,1Z0) Path dies… (q0,11,11Z0) (q1,111,1Z0) (q0,1,111Z0) (q1,11,11Z0) (q1,1,1Z0) (q0,,1111Z0) (q1,1,111Z0) Acceptance by final state: = empty input AND final state (q1, ,Z0) (q1, ,1111Z0) (q1, ,11Z0) Path dies… Path dies… (q2, ,Z0) School of EECS, WSU

PDA for Lwwr: Transition Diagram Cpt S 317: Spring 2009 PDA for Lwwr: Transition Diagram ∑ = {0, 1} = {Z0, 0, 1} Q = {q0,q1,q2} Grow stack 0, Z0/0Z0 1, Z0/1Z0 0, 0/00 0, 1/01 1, 0/10 1, 1/11 Pop stack for matching symbols 0, 0/  1, 1/  q0 q1 q2 , Z0/Z0 , Z0/Z0 , 0/0 , 1/1 , Z0/Z0 Go to acceptance Switch to popping mode Can we avoid final state but still recognizing the same language? School of EECS, WSU

Example 2: language of balanced paranthesis Cpt S 317: Spring 2009 Example 2: language of balanced paranthesis Pop stack for matching symbols ∑ = { (, ) } = {Z0, ( } Q = {q0,q1,q2} Grow stack (, Z0 / ( Z0 (, ( / ( ( ), ( /  q2 q0 q1 , Z0 / Z0 ), ( /  , Z0 / Z0 , Z0 / Z0 Go to acceptance (by final state) when you see the stack bottom symbol Switch to popping mode (, ( / ( ( (, Z0 / ( Z0 To allow adjacent blocks of nested paranthesis On seeing a ( push it onto the stack On seeing a ) pop if a ( is in the stack School of EECS, WSU

Example 2: language of balanced paranthesis (another design) Cpt S 317: Spring 2009 Example 2: language of balanced paranthesis (another design) ∑ = { (, ) } = {Z0, ( } Q = {q0,q1} (,Z0 / ( Z0 (,( / ( ( ), ( /  ,Z0/ Z0 start q0 q1 ,Z0/ Z0 School of EECS, WSU

Acceptance by… PDAs that accept by final state: Cpt S 317: Spring 2009 There are two types of PDAs that one can design: those that accept by final state or by empty stack Acceptance by… PDAs that accept by final state: For a PDA P, the language accepted by P, denoted by L(P) by final state, is: {w | (q0,w,Z0) |---* (q,, A) }, s.t., q  F PDAs that accept by empty stack: For a PDA P, the language accepted by P, denoted by N(P) by empty stack, is: {w | (q0,w,Z0) |---* (q, , ) }, for any q  Q. Checklist: - input exhausted? - in a final state? Q) Does a PDA that accepts by empty stack need any final state specified in the design? Checklist: - input exhausted? - is the stack empty? School of EECS, WSU

Example: L of balanced parenthesis q0 start (,Z0 / ( Z0 (, ( / ( ( ), ( /  ,Z0 /  An equivalent PDA that accepts by empty stack ,Z0/ Z0 PDA that accepts by final state PN: PF: (,Z0 / ( Z0 (,( / ( ( ), ( /  ,Z0/ Z0 start q0 q1 ,Z0/ Z0 How will these two PDAs work on the input: ( ( ( ) ) ( ) ) ( )

Equivalence of PDAs and CFGs Cpt S 317: Spring 2009 Equivalence of PDAs and CFGs School of EECS, WSU

CFGs == PDAs ==> CFLs Cpt S 317: Spring 2009 CFGs == PDAs ==> CFLs PDA by final state PDA by empty stack ≡ ? CFG School of EECS, WSU

Cpt S 317: Spring 2009 This is same as: “implementing a CFG using a PDA” Converting CFG to PDA Main idea: The PDA simulates the leftmost derivation on a given w, and upon consuming it fully it either arrives at acceptance (by empty stack) or non-acceptance. accept PDA (acceptance by empty stack) w INPUT OUTPUT reject implements CFG School of EECS, WSU

Converting a CFG into a PDA Cpt S 317: Spring 2009 This is same as: “implementing a CFG using a PDA” Converting a CFG into a PDA Main idea: The PDA simulates the leftmost derivation on a given w, and upon consuming it fully it either arrives at acceptance (by empty stack) or non-acceptance. Steps: Push the right hand side of the production onto the stack, with leftmost symbol at the stack top If stack top is the leftmost variable, then replace it by all its productions (each possible substitution will represent a distinct path taken by the non-deterministic PDA) If stack top has a terminal symbol, and if it matches with the next symbol in the input string, then pop it. School of EECS, WSU

Formal construction of PDA from CFG Cpt S 317: Spring 2009 Formal construction of PDA from CFG Note: Initial stack symbol (S) same as the start variable in the grammar Given: G= (V,T,P,S) Output: PN = ({q}, T, V U T, δ, q, S) δ: For all A  V , add the following transition(s) in the PDA: δ(q,  ,A) = { (q, ) | “A ==>”  P} For all a  T, add the following transition(s) in the PDA: δ(q,a,a)= { (q,  ) } ( Q,∑, , δ,q0,Z0,F ) A Before: …  After: … a Before: … a After: … a… pop School of EECS, WSU

Example: CFG to PDA G = ( {S,A}, {0,1}, P, S) P: Cpt S 317: Spring 2009 Example: CFG to PDA q ,S / S 1,1 /  0,0 /  ,A / 01 ,A / A1 ,A / 0A1 ,S /  ,S / AS G = ( {S,A}, {0,1}, P, S) P: S ==> AS |  A ==> 0A1 | A1 | 01 PDA = ({q}, {0,1}, {0,1,A,S}, δ, q, S) δ: δ(q,  , S) = { (q, AS), (q,  )} δ(q,  , A) = { (q,0A1), (q,A1), (q,01) } δ(q, 0, 0) = { (q,  ) } δ(q, 1, 1) = { (q,  ) } How will this new PDA work? Lets simulate string 0011 School of EECS, WSU

Simulating string 0011 on the new PDA … S => AS => 0A1S => 0011S => 0011 Leftmost deriv.: 1,1 /  0,0 /  ,A / 01 ,A / A1 ,A / 0A1 ,S /  ,S / AS PDA (δ): δ(q,  , S) = { (q, AS), (q,  )} δ(q,  , A) = { (q,0A1), (q,A1), (q,01) } δ(q, 0, 0) = { (q,  ) } δ(q, 1, 1) = { (q,  ) } ,S / S Stack moves (shows only the successful path): q S S A S 1 A S 1 A S 1 S 1 S 1 S 1  Accept by empty stack S =>AS =>0A1S =>0011S => 0011