Theory of Computation Automata Theory Dr. Ayman Srour.

Slides:



Advertisements
Similar presentations
Theory of Computation CS3102 – Spring 2014 A tale of computers, math, problem solving, life, love and tragic death Nathan Brunelle Department of Computer.
Advertisements

Pushdown Automata Section 2.2 CSC 4170 Theory of Computation.
C O N T E X T - F R E E LANGUAGES ( use a grammar to describe a language) 1.
Pushdown Automata Chapter 12. Recognizing Context-Free Languages Two notions of recognition: (1) Say yes or no, just like with FSMs (2) Say yes or no,
Pushdown Automata (PDA)
Pushdown Automata Part II: PDAs and CFG Chapter 12.
CS21 Decidability and Tractability
PDAs => CFGs Sipser 2.2 (pages ). Last time…
PDAs => CFGs Sipser 2.2 (pages ). Last time…
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.
Introduction to the Theory of Computation John Paxton Montana State University Summer 2003.
CS 310 – Fall 2006 Pacific University CS310 Pushdown Automata Sections: 2.2 page 109 October 11, 2006.
CS 310 – Fall 2006 Pacific University CS310 Pushdown Automata Sections: 2.2 page 109 October 9, 2006.
CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT Lecture 4 Context-free grammars Jan Maluszynski, IDA, 2007
1 Normal Forms for Context-free Grammars. 2 Chomsky Normal Form All productions have form: variable and terminal.
Foundations of (Theoretical) Computer Science Chapter 2 Lecture Notes (Section 2.2: Pushdown Automata) Prof. Karen Daniels, Fall 2009 with acknowledgement.
Fall 2006Costas Busch - RPI1 Pushdown Automata PDAs.
January 14, 2015CS21 Lecture 51 CS21 Decidability and Tractability Lecture 5 January 14, 2015.
CS 490: Automata and Language Theory Daniel Firpo Spring 2003.
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.
Nathan Brunelle Department of Computer Science University of Virginia Theory of Computation CS3102 – Spring 2014 A tale.
CSCI 2670 Introduction to Theory of Computing September 21, 2005.
Pushdown Automata.
CSCI 2670 Introduction to Theory of Computing September 20, 2005.
Pushdown Automata CS 130: Theory of Computation HMU textbook, Chap 6.
Pushdown Automata (PDAs)
Push-down Automata Section 3.3 Fri, Oct 21, 2005.
Pushdown Automata Chapters Generators vs. Recognizers For Regular Languages: –regular expressions are generators –FAs are recognizers For Context-free.
CS 208: Computing Theory Assoc. Prof. Dr. Brahim Hnich Faculty of Computer Sciences Izmir University of Economics.
1Computer Sciences Department. Book: INTRODUCTION TO THE THEORY OF COMPUTATION, SECOND EDITION, by: MICHAEL SIPSER Reference 3Computer Sciences Department.
Foundations of (Theoretical) Computer Science Chapter 2 Lecture Notes (Section 2.2: Pushdown Automata) Prof. Karen Daniels, Fall 2010 with acknowledgement.
CSCI 3130: Automata theory and formal languages Andrej Bogdanov The Chinese University of Hong Kong Pushdown.
CSCI 2670 Introduction to Theory of Computing October 13, 2005.
Lecture 14UofH - COSC Dr. Verma 1 COSC 3340: Introduction to Theory of Computation University of Houston Dr. Verma Lecture 14.
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.
Pushdown Automata Hopcroft, Motawi, Ullman, Chap 6.
Grammar Set of variables Set of terminal symbols Start variable Set of Production rules.
FORMAL LANGUAGES, AUTOMATA, AND COMPUTABILITY
Pushdown Automata Chapter 12. Recognizing Context-Free Languages Two notions of recognition: (1) Say yes or no, just like with FSMs (2) Say yes or no,
1 Chapter Pushdown Automata. 2 Section 12.2 Pushdown Automata A pushdown automaton (PDA) is a finite automaton with a stack that has stack operations.
CS 154 Formal Languages and Computability March 15 Class Meeting Department of Computer Science San Jose State University Spring 2016 Instructor: Ron Mak.
CS6800 Advance Theory of Computation Spring 2016 Nasser Alsaedi
Lecture 11  2004 SDU Lecture7 Pushdown Automaton.
CSCI 2670 Introduction to Theory of Computing September 22, 2004.
Theory of Computation Automata Theory Dr. Ayman Srour.
6. Pushdown Automata CIS Automata and Formal Languages – Pei Wang.
Pushdown Automata.
CSE 105 theory of computation
CSE 105 theory of computation
Pushdown Automata (PDA). Part 2
Pushdown Automata PDAs
Pushdown Automata PDAs
Pushdown Automata PDAs
Pushdown Automata PDAs
Pushdown automata and CFG ↔ PDA conversions
Context-Free Languages
Chapter 2 Context-Free Language - 01
CSE 105 theory of computation
Pushdown automata The Chinese University of Hong Kong Fall 2011
CSE 105 theory of computation
CSE 105 theory of computation
Presentation transcript:

Theory of Computation Automata Theory Dr. Ayman Srour

4. Introduction We had two ways to describe regular languages How about context-free languages? regular expression DFANFA syntactic computational CFGpushdown automaton syntactic computational

4.1 Introduction Pushdown automata versus NFA Since context-free is more powerful than regular, pushdown automata must generalize NFAs state control 0100 input NFA

4.1 Introduction Pushdown automata A pushdown automaton has access to a stack, which is a potentially infinite supply of memory state control 0100 input pushdown automaton (PDA) … stack

4.1 Introduction Pushdown automata As the PDA is reading the input, it can push / pop symbols in / out of the stack state control 0100 input pushdown automaton (PDA) Z0Z0 01 stack … 1

4.2 Rules for pushdown automata The transitions are nondeterministic Stack is always accessed from the top Each transition can pop a symbol from the stack and / or push another symbol onto the stack Transitions depend on input symbol and on last symbol popped from stack Automaton accepts if after reading whole input, it can reach an accepting state

4.3 Formal definition

4.3 Example 1

We write "a,b -> c" to signify that when the machine is reading an a from the input it may replace the symbol b on the top of the stack with a c. Any of a, b, and c may be ε. If a is ε, the machine may make this transition without reading any symbol from the input. If b is ε, the machine may make this transition without reading and popping any symbol from the stack. If c is ε, the machine does not write any symbol on the stack when going along this transition.

4.3 Example 2 Describe PDAs for the following languages: L = {w#w R : w  ∈  *},  = {0, 1, #} L = {ww R : w  ∈  *},  = {0, 1} L = {w: w has same number of 0s and 1s},  = {0, 1} L = {0 i 1 j : i ≤ j ≤ 2i},  = {0, 1}

4.4 Main theorem A language L is context-free if and only if it is accepted by some pushdown automaton. context-free grammarpushdown automaton

4.4.1 From CFGs to PDAs Step 1: e, e->$ : push the stack symbol at the start state q start. Step 2; push the stating variable at the top of the stack. Step 3: at q loop push the variable and terminals at the right hand side of all production starting from the rightmost symbols. First replace the start symbol with the rightmost symbol and keep pusing the rset of the symbols from right to left. Step 4: keep poping terminals from the productions. Step 5: at q accept pub the stack symbol e,$->e.

4.4.1 From CFGs to PDAs/Example construct a PDA PI from the following CFG G. S - >aTb | b T – >Ta | E

4.4.1 From CFGs to PDAs/Example construct a PDA PI from the following CFG G. S - >aTb | b T – >Ta | e

4.4.1 From CFGs to PDAs Idea: Use PDA to simulate (rightmost) derivations A → 0A1 A → B B → # A  0A1  00A11  00B11  00#11 PDA control: CFG: write start variable stack: Z0AZ0A replace production in reverse Z 0 1A0 pop terminals and match Z 0 1A e, e / A 0, 0 / e e, A / 1A0 input: 00#11 0#11 replace production in reverse Z 0 11A0e, A / 1A0 0#11 pop terminals and match Z 0 11A0, 0 / e #11 replace production in reverse Z 0 11Be, A / B #11

4.4.1 From CFGs to PDAs If, after reading whole input, PDA ends up with an empty stack, derivation must be valid Conversely, if there is no valid derivation, PDA will get stuck somewhere Either unable to match next input symbol, Or match whole input but stack non empty

4.4.1 From CFGs to PDAs Repeat the following steps: If the top of the stack is a variable A : Choose a rule A →  and substitute A with  If the top of the stack is a terminal a : Read next input symbol and compare to a If they don’t match, reject (die) If top of stack is Z 0, go to accept state

4.4.1 From CFGs to PDAs q0q0 q1q1 q2q2 ,  / S a, a /  for every terminal a , A /  k...  1 for every production A →  1...  k , Z 0 / 

4.4.2 From PDAs to CFGs First, we simplify the PDA: It has a single accept state q f Z 0 is always popped exactly before accepting Each transition is either a push, or a pop, but not both context-free grammarpushdown automaton ✓

4.4.2 From PDAs to CFGs a Z0Z0 Z0Z0 a Z0Z0 a Z0Z0 a Z0Z0 a Z0Z0 a Z0Z0 a Z0Z0 a Z0Z0 a Z0Z0 Z0Z0 baccc a q0q0 q1q1 q3q3 q1q1 q7q7 q1q1 q2q2 q1q1 q7q7  11  01  0 00 input state stack A 11 A 03 0  A 11 → 0A 03  q0q0 q3q3 qfqf

4.4.2 From PDAs to CFGs a Z0Z0 Z0Z0 a Z0Z0 a Z0Z0 a Z0Z0 a Z0Z0 a Z0Z0 a Z0Z0 a Z0Z0 a Z0Z0 Z0Z0 baccc a q0q0 q1q1 q3q3 q1q1 q7q7 q1q1 q2q2 q1q1 q7q7  11  01  0 00 input state stack A 03 A 13 A 13 → A 10 A 03 q0q0 q3q3 A 10 qfqf

4.4.2 From PDAs to CFGs qiqi qjqj a,  / t b, t /  q i’ q j’ A ij → aA i’j’ b qiqi qjqj qkqk A ik → A ij A jk qiqi A ii →  variables: A ij qfqf a, Z 0 /  qiqi A 0f → A 0i a start variable: A0fA0f

4.4.2 From PDAs to CFGs 0,  / a #,  / , Z 0 /  1, a /  q0q0 q1q1 q2q2 start variable: A 02 productions: A 00 → A 00 A 00 A 00 → A 01 A 10 A 00 → A 03 A 30 A 01 → A 01 A 11 A 01 → A 02 A 21 A 00 → ... A 11 →  A 22 →  A 01 → 0A 01 1 A 01 → #A 33 A 33 →  0,  / a #,  / $ , Z 0 /  1, a /  q0q0 q1q1 q2q2 q3q3 , $ /  A 02 → A 01