Top Banner
CSE 105 THEORY OF COMPUTATION Fall 2016 http://cseweb.ucsd.edu/classes/fa16/cse105-abc/
37

THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Apr 23, 2018

Download

Documents

dohanh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

CSE 105 THEORY OF COMPUTATION Fall 2016 http://cseweb.ucsd.edu/classes/fa16/cse105-abc/

Page 2: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Today's learning goals Sipser Ch 2 • Define push down automata •  Trace the computation of a push down automaton • Design a push down automaton recognizing a given

language • Compare class of regular languages and class of CFLs

Page 3: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Notation:

Terminology: sequence of rule applications is

derivation

Context-free language Sipser p. 104

The language of a CFG (V, Σ, R, S) is

{ w in Σ* | Starting with the Start variable and applying one or more rules, can get to w}

Page 4: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Context-free languages

Regular languages vs. CFL

Regular languages

Page 5: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Designing CFGs Sipser p. 104

Given a language L over Σ, to prove L is a context-free language need to build a CFG that generates it. How? • Express L as union of simpler languages •  If L is regular, design DFA and convert into CFG • Exploit any recursive structure in L.

Page 6: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Example Design a CFG recognizing the language

{anbm | n ≠ m}

On Thursday, we showed that the language {anbn | n ≥ 0} is a CFL. How can we use its CFG for this example? A.  Use the same CFG but reverse the role of variables and terminals. B.  Use the same set of variables, terminals, and start state, but reverse the RHS and LHS

of each rule. C.  We can't use it directly: the two sets are not related. D.  We can't use it directly: the class of CFLs is not closed under complementation. E.  I don't know.

Page 7: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Example Design a CFG recognizing the language

{anbm | n ≠ m} = {anbm | n > m} U {anbm | n < m} Simpler problem: Design a CFG generating the language

{anbm | n > m}

Page 8: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Example Design a CFG recognizing the language

{anbm | n ≠ m} = {anbm | n > m} U {anbm | n < m} Simpler problem: Design a CFG generating the language

{anbm | n > m} G1 = ( {S1}, {a,b}, R, S1) with rules S1à aS1b | aS1 | a

Page 9: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Example Design a CFG recognizing the language

{anbm | n ≠ m} = {anbm | n > m} U {anbm | n < m} CFG generating the language {anbm | n > m} is G1 = ( {S1}, {a,b}, R, S1) with rules S1à aS1b | aS1 | a CFG generating the language {anbm | n < m} is G2 = ( {S2}, {a,b}, R, S2) with rules S2à aS2b | S2b | b

Page 10: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Example For {anbm | n > m}: G1 = ( {S1}, {a,b}, R, S1) with S1à aS1b | aS1 | a For {anbm | n < m}: G2 = ( {S2}, {a,b}, R, S2) with S2à aS2b | S2b | b What is CFG generating {anbm | n ≠ m} ? A.  G1 U G2 B.  ( {S1, S2}, {a,b}, R, S1) with S1à aS1b | aS1 | a, S2à aS2b | S2b | b C.  ( {S1, S2}, {a,b}, R, S2) with S1à aS1b | aS1 | aS2, S2à aS2b | S2b | b D.  ( {S, S1, S2}, {a,b}, R, S) with S à S1 | S2 , S1à aS1b | aS1 | a, S2à aS2b | S2b | b E.  I don't know.

Page 11: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

An alternative … Sipser p. 109 • NFA + stack

Page 12: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Pushdown automata Sipser p. 109 •  NFA + stack

At each step 1. Transition to new state based on current state, letter read, and top letter of stack. 2. (Possibly) push or pop a letter to (or from) top of stack

Page 13: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Pushdown automata Sipser p. 109 • NFA + stack

Accept a string if there is some sequence of states and some sequence of stack contents which processes the entire input string and ends in an accepting state.

Page 14: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

State diagram for PDA Sipser p. 109 If hand-drawn or in Sipser State transition labelled a, b à c means "when machine reads an a from the input and the top symbol of the stack is a b, it may replace the b with a c." In JFLAP: use ; instead of à

Page 15: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

State diagram for PDA Sipser p. 109 If hand-drawn or in Sipser State transition labelled a, b à c means "when machine reads an a from the input and the top symbol of the stack is a b, it may replace the b with a c." What edge label would indicate "Read a 0, don't pop anything from stack, don’t push anything to the stack"? A.  0, ε à ε B.  ε, 0 à ε C.  ε, ε à 0 D.  ε à ε, 0 E.  I don't know.

Page 16: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Useful trick What would ε, ε à $ mean? A.  Without reading any input or popping any symbol from stack, push $ B.  If the input string and stack are both empty strings, push $ C.  At the end of reading the input string, push $ to top of stack D.  I don't know.

Page 17: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Useful trick

Why is this useful? Commonly used from initial state (at start of computation) to record top of stack with a special symbol)… we'll see applications soon!

What would ε, ε à $ mean? A.  Without reading any input or popping any symbol from stack, push $ B.  If the input string and stack are both empty strings, push $ C.  At the end of reading the input string, push $ to top of stack D.  I don't know.

Page 18: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Formal definition of PDA Sipser Def 2.13 p. 111

Page 19: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Designing a PDA L = { 0i1i+1 | i ≥ 0 }

Informal description of PDA: Read symbols from the input. As each 0 is read, push it onto the stack. As soon as 1s are seen, pop a 0 off the stack for each 1 read. If the stack becomes empty and there is exactly one 1 left to read, read that 1 and accept the input. If the stack becomes empty and there are either zero or more than one 1s left to read, or if the 1s are finished while the stack still contains 0s, or if any 0s appear in the input following 1s, reject the input.

Page 20: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Designing/Tracing a PDA L = { 0i1i+1 | i ≥ 0 }

What are the contents of the stack

after processing 001? A.  (TOP) $00 B.  (TOP) 00$ C.  (TOP) 0$ D.  (TOP) 100$ E.  I don't know.

Page 21: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Designing/Tracing a PDA L = { 0i1i+1 | i ≥ 0 }

Which of the following strings are not accepted by this PDA? A.  0 B.  1 C.  01 D.  011 E.  I don't know.

Page 22: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Designing/Tracing a PDA L = { 0i1i+1 | i ≥ 0 }

Which of these CFGs generate L? Assume V = set of variables mentioned in rules; Σ={0,1}, S start A.  S à ε | 0S1 B.  S à ε | 0S11 C.  S à T1 | 0S1, T à ε D.  S à ε | 0T1, T à ε | 0T1 E.  I don't know.

Page 23: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

PDAs and CFGs are equivalently expressive Theorem 2.20: A language is context-free if and only some nondeterministic PDA recognizes it. Consequences -  Quick proof that every regular language is context free -  To prove closure of class of CFLs under a given operation, can choose two

modes of proof (via CFGs or PDAs) depending on which is easier

Page 24: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Example L = { aibjck | i=j or i=k, with i,j,k≥0 }

Which of the following strings are

not in L? A.  b B.  abc C.  abbcc D.  aabcc E.  I don't know.

Page 25: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Example L = { aibjck | i=j or i=k, with i,j,k≥0 }

To design a CFG that generates L…

L = { aibjck | i=j, with i,j,k≥0 } U { aibjck | i=k, with i,j,k≥0 }

Page 26: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Example L = { aibjck | i=j or i=k, with i,j,k≥0 }

To design a CFG that generates L…

L = { aibjck | i=j, with i,j,k≥0 } U { aibjck | i=k, with i,j,k≥0 }

S à Sc | T T à aTb | ε

Page 27: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Example L = { aibjck | i=j or i=k, with i,j,k≥0 }

To design a CFG that generates L…

L = { aibjck | i=j, with i,j,k≥0 } U { aibjck | i=k, with i,j,k≥0 }

S à T | aSc T à Tb | ε

Page 28: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Designing a PDA L = { aibjck | i=j or i=k, with i,j,k≥0 }

Informal description of PDA: How would you design an algorithm that, given a string, decides if it is in this set? - What information do you need to track? - How much memory do you need? - Are you using non-determinism?

Page 29: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Designing a PDA L = { aibjck | i=j or i=k, with i,j,k≥0 }

Informal description of PDA: •  The PDA pushes a $ to indicate the top of the stack, then starts reading a's, pushing

each one on to the stack. •  The PDA guesses when it's reached the end of the a's and whether to match the

number of a's to the number of b's or the number of c's. •  If trying to match number of b's with number of a's: PDA pops off a's for each b read.

If there are more a's on the stack but no more b's being read, reject. When the end of the stack ($) is reached, the number of a's matches the number of b's. If this is the end of the input or if any number of c's is read at this point, accept; otherwise, reject.

•  If trying to match the number of c's with number of a's: first read any number of b's without changing stack contents and then nondeterministically guess when to start reading c's. For each c read, pop one a off the stack. When the end of the stack ($) is reached the number of a's and c's so far match.

Page 30: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Designing a PDA L = { aibjck | i=j or i=k, with i,j,k≥0 }

Formal definition of PDA:

Page 31: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Conventions for PDAs • Can "test for end of stack" without providing details

•  We can always push the end-of-stack symbol, $, at the start.

• Can "test for end of input" without providing details •  Can transform PDA to one where accepting states are only those

reachable when there are no more input symbols.

• Don't always need to provide a state transition diagram!

Page 32: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Context-free languages

Overview

Regular languages

???

Page 33: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Other classes of languages?

Are all strings context-free? A.  Yes, because every string is finite. B.  Yes, because the set of all strings is regular. C. No, because the computation could get stuck. D. No, because the type is wrong. E.  I don't know.

Page 34: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Other classes of languages?

Are all sets of strings over fixed alphabet Σ context-free? A.  Yes, because the class of CFL is a strict superset of RL. B.  Yes, because the set of all strings is regular. C. No, because we can apply the Pumping Lemma. D. No, because the diagonalization argument applies again. E.  I don't know.

Page 35: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Informal intuition

Which specific language is not context-free? A.  { 0n1m0n | m,n≥0 } B.  { 0n1n0n | n≥0 } C.  { 0n12n | n≥0 } D.  { 0n12m | m,n≥0 } E.  I don't know.

Page 36: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Examples of non-context-free languages •  { anbncn | 0 ≤ n } Sipser Ex 2.36

•  {aibjck | 0 ≤ i ≤ j ≤ k } Sipser Ex 2.37

•  { w w | w is in {0,1}* } Sipser Ex 2.38

To prove… Pumping lemma for CFLs

Page 37: THEORY OF COMPUTATION - Computer Science and …cseweb.ucsd.edu/classes/fa16/cse105-abc/Slides/Lect10_CSE105B00… · CSE 105 THEORY OF COMPUTATION Fall 2016

Closure properties of .. The class of regular languages is closed under •  Union •  Concatenation •  Star •  Complementation •  Intersection •  Difference •  Reversal

The class of context-free languages is closed under •  Union •  Concatenation •  Star •  Reversal The class CFL is not closed under •  Intersection •  Complement •  Difference