Please give details of your answer. A direct answer without explanation is not counted.

Similar documents
CSE 105 THEORY OF COMPUTATION

CS5371 Theory of Computation. Lecture 12: Computability III (Decidable Languages relating to DFA, NFA, and CFG)

AC68 FINITE AUTOMATA & FORMULA LANGUAGES DEC 2013

CSE 105 THEORY OF COMPUTATION

Pushdown Automata (Pre Lecture)

CpSc 421 Final Exam December 15, 2006

Introduction to Theory of Computing

Please give details of your calculation. A direct answer without explanation is not counted.

Please give details of your answer. A direct answer without explanation is not counted.

CSE 105 THEORY OF COMPUTATION. Spring 2018 review class

Harvard CS 121 and CSCI E-207 Lecture 10: CFLs: PDAs, Closure Properties, and Non-CFLs

CISC 4090 Theory of Computation

Languages, regular languages, finite automata

Context-Free Languages

CS 301. Lecture 18 Decidable languages. Stephen Checkoway. April 2, 2018

SE 3310b Theoretical Foundations of Software Engineering. Turing Machines. Aleksander Essex

Part 4 out of 5 DFA NFA REX. Automata & languages. A primer on the Theory of Computation. Last week, we showed the equivalence of DFA, NFA and REX

CS 311 Sample Final Examination

Foundations of Informatics: a Bridging Course

FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY

CSE 105 THEORY OF COMPUTATION

CISC4090: Theory of Computation

CSE 105 THEORY OF COMPUTATION

Automata and Computability. Solutions to Exercises

PS2 - Comments. University of Virginia - cs3102: Theory of Computation Spring 2010

FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY

Theory of Computation (IV) Yijia Chen Fudan University

CPS 220 Theory of Computation Pushdown Automata (PDA)

(pp ) PDAs and CFGs (Sec. 2.2)

Recap DFA,NFA, DTM. Slides by Prof. Debasis Mitra, FIT.

Automata and Computability. Solutions to Exercises

Rumination on the Formal Definition of DPDA

Part I: Definitions and Properties

Accept or reject. Stack

Theory of Computation Turing Machine and Pushdown Automata

Non-context-Free Languages. CS215, Lecture 5 c

V Honors Theory of Computation

CSE 105 THEORY OF COMPUTATION

Midterm Exam 2 CS 341: Foundations of Computer Science II Fall 2018, face-to-face day section Prof. Marvin K. Nakayama

Pushdown Automata (2015/11/23)

Theory Bridge Exam Example Questions

CS5371 Theory of Computation. Lecture 10: Computability Theory I (Turing Machine)

Pushdown Automata. Pushdown Automata. Pushdown Automata. Pushdown Automata. Pushdown Automata. Pushdown Automata. The stack

CS500 Homework #2 Solutions

Chomsky Normal Form and TURING MACHINES. TUESDAY Feb 4

CSE 355 Test 2, Fall 2016

CS5371 Theory of Computation. Lecture 10: Computability Theory I (Turing Machine)

Fundamentele Informatica II

Final Exam Comments. UVa - cs302: Theory of Computation Spring < Total

Homework Assignment 6 Answers

CS154 Final Examination

SCHEME FOR INTERNAL ASSESSMENT TEST 3

Formal Definition of a Finite Automaton. August 26, 2013

CSCC63 Worksheet Turing Machines

Section 1 (closed-book) Total points 30

CISC 4090 Theory of Computation

Pumping Lemma for CFLs

Harvard CS 121 and CSCI E-207 Lecture 10: Ambiguity, Pushdown Automata

CFGs and PDAs are Equivalent. We provide algorithms to convert a CFG to a PDA and vice versa.

October 6, Equivalence of Pushdown Automata with Context-Free Gramm

I have read and understand all of the instructions below, and I will obey the University Code on Academic Integrity.

Turing Machine Variants

Outline 1 PCP. 2 Decision problems about CFGs. M.Mitra (ISI) Post s Correspondence Problem 1 / 10

Turing Machines A Turing Machine is a 7-tuple, (Q, Σ, Γ, δ, q0, qaccept, qreject), where Q, Σ, Γ are all finite

CS5371 Theory of Computation. Lecture 14: Computability V (Prove by Reduction)

Theory of Computation

CS481F01 Prelim 2 Solutions

NPDA, CFG equivalence

Nondeterminism. September 7, Nondeterminism

Automata & languages. A primer on the Theory of Computation. Laurent Vanbever. ETH Zürich (D-ITET) October,

Solution Scoring: SD Reg exp.: a(a

(Note that these points are to give a relative sense of the weights on the final exam and have no bearing on extra credit points)

The Post Correspondence Problem

Cliff s notes for equivalence of CFLs and L(PDAs) LisaCFL L = L(M) for some PDA M L=L(M)forsomePDAM L = L(G) for some CFG G

Introduction to Formal Languages, Automata and Computability p.1/42

10. The GNFA method is used to show that

False. They are the same language.

Harvard CS 121 and CSCI E-207 Lecture 12: General Context-Free Recognition

Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2018

CMSC 330: Organization of Programming Languages

CISC 4090: Theory of Computation Chapter 1 Regular Languages. Section 1.1: Finite Automata. What is a computer? Finite automata

Note: In any grammar here, the meaning and usage of P (productions) is equivalent to R (rules).

CS154 Final Examination

CS21 Decidability and Tractability

FORMAL LANGUAGES, AUTOMATA AND COMPUTATION

CpSc 421 Homework 9 Solution

TAFL 1 (ECS-403) Unit- IV. 4.1 Push Down Automata. 4.2 The Formal Definition of Pushdown Automata. EXAMPLES for PDA. 4.3 The languages of PDA

CSE 105 THEORY OF COMPUTATION

1. Induction on Strings

Deterministic Finite Automata. Non deterministic finite automata. Non-Deterministic Finite Automata (NFA) Non-Deterministic Finite Automata (NFA)

Finite Automata Theory and Formal Languages TMV026/TMV027/DIT321 Responsible: Ana Bove

CS311 Computational Structures More about PDAs & Context-Free Languages. Lecture 9. Andrew P. Black Andrew Tolmach

Computability and Complexity

Mapping Reducibility. Human-aware Robotics. 2017/11/16 Chapter 5.3 in Sipser Ø Announcement:

Computational Models - Lecture 5 1

CS375: Logic and Theory of Computing

CS5371 Theory of Computation. Lecture 7: Automata Theory V (CFG, CFL, CNF)

Griffith University 3130CIT Theory of Computation (Based on slides by Harald Søndergaard of The University of Melbourne) Turing Machines 9-0

Theory of Computation (Classroom Practice Booklet Solutions)

Lecture 13: Turing Machine

Transcription:

Please give details of your answer. A direct answer without explanation is not counted. Your answers must be in English. Please carefully read problem statements. During the exam you are not allowed to borrow others class notes. Try to work on easier questions first. Problem 1 (5 pts) Consider the following DFA, a start q 1 a q 2 b b b q 3 a. Give a CFG with 8 rules to describe the above language. Answer (1) For each state q i, use a variable S i to represent strings ending in q i. (2) For each transition function start from state q i, add rules: δ(q 1, a) = q 2 δ(q 1, b) = q S 1 as 2 bs 3 3 δ(q 2, a) = q 1 δ(q 2, b) = q 2 δ(q 3, a) = q 2 δ(q 3, b) = q 1 S 2 as 1 bs 2 S 3 as 2 bs 1 1

(3) Add S i ɛ for accept state q i, and the DFA can be finally described as the following CFG: S 1 as 2 bs 3 S 2 bs 2 as 1 ɛ S 3 bs 1 as 2 ɛ The start variable is S 1. We can remove S 3 to have S 1 as 2 bbs 3 bas 2 b S 2 bs 2 as 1 ɛ Common Mistakes 1. Your CFG has more rules than what you are allowed. Problem 2 (10 pts) Consider the following language, { a i b j c k i = j or i = k, i 0, j 0, k 0 } Give a CFG with 10 rules for this language. Answer (1) Use two separated rules S A B to identify either i = j or i = k. (2) For S A, i.e. a i b j c k where i = j, To generate a i b i, there must be a recursive rule such as S asb. Thus c shouldn t occur on the right-hand side of S, otherwise, c will appear on the left-hand side of b. So there must be two different variables S 1, S 2 to separately represent a i b i and c k. Therefore, A S 1 S 2 S 1 as 1 b ɛ S 2 cs 2 ɛ 2

(3) For S B, i.e. a i b j c k where i = k, To generate a i c i, there must be a recursive rule such as S asc, and b j should be in the middle between a i and c i. So the variable B can be represented as: B S 3 S 3 as 3 c S 4 S 4 bs 4 ɛ (4) Remove S A and S B. We can get the simplified 10-rule CFG as follows: Common Mistakes S S 1 S 2 S 3 S 1 as 1 b ɛ S 2 cs 2 ɛ S 3 as 3 c S 4 S 4 bs 4 ɛ 1. Your CFG has more rules than what you are allowed. 2. Some wrongly give CFG for the case of i = k or j = k. Problem 3 (15 pts) Consider the following CFG, S S 1 S 2 S 1 0S 1 1 ɛ S 2 1S 2 0 ɛ Convert this CFG to CNF by following the procedure in the textbook. Your number of rules should be 13. (Hint: you can remove redundant rules after finishing the procedure.) 3

Answer Add a new start variable S 0 : S 0 S S S 1 S 2 S 1 0S 1 1 ɛ S 2 1S 2 0 ɛ Remove ɛ-rules S 1 ɛ and S 2 ɛ: S 0 S ɛ S S 1 S 2 S 1 0S 1 1 01 S 2 1S 2 0 10 Remove unit rules S S 1 and S S 2 : S 0 S ɛ S 0S 1 1 01 1S 2 0 10 S 1 0S 1 1 01 S 2 1S 2 0 10 Remove unit rule S 0 S: S 0 0S 1 1 01 1S 2 0 10 ɛ S 0S 1 1 01 1S 2 0 10 S 1 0S 1 1 01 S 2 1S 2 0 10 Add additional rules A 1 and B 0: S 0 BS 1 A BA AS 2 B AB ɛ S BS 1 A BA AS 2 B AB S 1 BS 1 A BA S 2 AS 2 B AB A 1 B 0 4

Convert remaining rules into proper form: S 0 BY 1 BA AY 2 AB ɛ S BY 1 BA AY 2 AB S 1 BY 1 BA S 2 AY 2 AB Y 1 S 1 A Y 2 S 2 B A 1 B 0 Finally, we can simplify the CNF by merging the rules starting with S 0 and S: S BY 1 BA AY 2 AB ɛ S 1 BY 1 BA S 2 AY 2 AB Y 1 S 1 A Y 2 S 2 B A 1 B 0 Problem 4 (20 pts) Consider the following state diagram of a PDA, start q 1 0, ɛ 0 1, 0 ɛ q 2 1, 0 ɛ. Assume Σ = {0, 1} (a) What is the corresponding language? Give the formal definition of this PDA including a table for the δ function. (b) Give a CFG with 3 rules for this language. 5

(c) We would like to have a DPDA for the same language. Give the formal definition including a table for the δ function. Answer (a) {0 m 1 n m n 0}. Becuase the PDA keeps pushing 0s when it sees input 0, and starts popping 0 when it sees input 1, it will accept the string {0 m 1 n } for some m, n. In addition, when it starts popping 0s, it is at accept state, and the start state is also an accept state, so m n 0. Its formal definition is (Q, Σ, Γ, δ, q 1, F ), where Q = {q 1, q 2 } Σ = {0, 1} Γ = {0} q 1 is the start state. {q 1, q 2 } is the set of accept states. The transition function δ is: 0 1 ɛ Σ ɛ 0 ɛ 0 ɛ 0 ɛ Γ ɛ q 1 {(q 1, 0)} {(q 2, ɛ)} q 2 {(q 2, ɛ)} (b) We can split the string accepted by the PDA in (a) into 0 n 0 m n 1 n, so we at least need two rules to generate it. That is, one is for 0 m n, and the other is for 0 n and 1 n. Thus, we can write it as A 0A1 B ɛ (1) B 0B ɛ In addition, we can further reduce (1) to A 0A 0A1 ɛ because the generating order of 0s is exchangeable. (c) The DPDA is: 6

start q 1 0, ɛ 0 1, 0 ɛ q 2 1, 0 ɛ 0, ɛ ɛ 1, ɛ ɛ q r 0, ɛ ɛ. Its formal definition is (Q, Σ, Γ, δ, q 1, F ), where Q = {q 1, q 2, q r } Σ = {0, 1} Γ = {0} q 1 is the start state. {q 1, q 2 } is the set of accept states. The transition function δ is: 0 1 ɛ Σ ɛ 0 ɛ 0 ɛ 0 ɛ Γ ɛ q 1 (q 1, 0) (q 2, ɛ) q 2 (q r, ɛ) (q 2, ɛ) q r (q r, ɛ) (q r, ɛ) From the table we can see that for every q Q, a Σ and x Γ, exactly one of the values δ(q, a, x), δ(q, a, ɛ), δ(q, ɛ, x) and δ(q, ɛ, ɛ) is not. Alternative Solution for (c). 1. The last column of the table can also be q r (q r, ɛ) (q r, ɛ) and 7

q r (q r, ɛ) Common Mistake. 1. δ is: Q Σ ɛ Γ ɛ P (Q Γ ɛ ), so your δ table should have a column for ɛ Σ ɛ. Problem 5 (30 pts) Use the language and diagram in Problem 4. (a) Modify the PDA to satisfy: 1. Each link is either push or pop; 2. Single accept state; 3. Stack is empty before accepting a string. Your diagram should have 4 states. (Hint: you may introduce extra symbols in the stack.) (b) Use (a) and the procedure in Lemma 2.27 to generate a CFG for the language. (c) Is it possible to simplify results in (b) to those in Problem 4 (b)? (d) Give two strings s 1 and s 2 with s 1 = s 2 = 3, s 1, s 2 {0, 1}, and s 1 is accepted while s 2 is rejected. Use the PDA obtained in (a) to simulate the two strings. Note that you must draw trees like what we did in the lecture (it is similar to how we simulate NFA). Answer (a) Consider the PDA of Problem 4. It accepts the strings with non-empty stack for m > n. To make the stack empty when accepting the string, it is necessary to pop some 0s from stack earlier. The idea is to pop 0s nondeterministically before reading 1s from input and accept only some unique number of pops. Therefore, we need at least two states, one is for pushing 0s, and the other is for popping 0s. However, we cannot link these two states with ɛ, ɛ ɛ because each operation should be push or pop. To do so, we introduce a new stack variable, and push it once nondeterministically when reading 0s from input, then pop it before reading 1s from input. In addition, we add a start state 0 and an accept state 3, as well as the push/pop operation of $. 8

ɛ, ɛ $ ɛ, ɛ ɛ, $ ɛ start 0 1 2 3 ɛ, 0 ɛ 0, ɛ 0 ɛ, ɛ 1, 0 ɛ. (b) To convert the PDA to CFG, we start from the start variable A 03 to get Then, we add rules A 03 A 12 A 12 0A 12 1 0A 11 A 22 A 11 0A 11 (2) A ik A ij A jk (0 i, j, k 3, total 64 rules) (3) Finally, we add rules A ii ɛ (0 i 3, total 4 rules) (4) (c) Yes. To simplify the CFG, we first show that rules in (3) are redundant. Because only A 03, A 12, A 00, A 11, A 22, A 33 appear on the left-hand side of (2) and (4), all we have to do is to show that for these A ij, is redundant. First, we consider the rules A ij A i? A?j A ii A ij A ji, 0 i 3, 0 j 3 For j = 0, we have A ii A i0 A 0i. Because A 00 is the only one among A i0 that appear in (2) and (4), A ii A ix A y0 A 0i a string implies that y = 0. Then eventually x = 0, but A i0, i 0 does not generate any string by (2) or (4). Therefore, the only possibility is that i = 0 and A 00 A 00 A 00 A 00. (5) 9

For j = 2 and 3, the situation is similar because A 22 ɛ and A 33 ɛ are what we only have in (2) and (4). For j = 1, note that in (2) we have A 11 0A 11. By a similar argument, all we have is A 11 a string of A 11 and 0 (6) a string of 0 Clearly, (5) and (6) can be handled by rules in (2) and (4), so they are redundant. For A 03, we have A 03 A 0x A x3 A 00 A 03 (7) A 00 A 0x A 03 or A 03 A 03 A 33 (8) A 03 A 3x A 33. The reason is that A 00 and A 33 are those of A 0? that appear in (2) and (4). For (7), x must be 0 or 3, while for (8), x must be 3 because A 3? has only A 33 in (2) and (4). In the end, the right-hand side of (7) and (8) is a string of A 00 and A 03, or A 03 and A 33. From (2) and (4), they are redundant. The situation for A 12 A 1? A?2 is similar. Therefore, all the 64 rules in (4) can be removed. Then, by changing the variables A 03 to S, A 12 to A, A 11 to B in (b) and removing the redundant rules, we can get S A A 0A1 0B ɛ (9) We can replace in (9) with because of B 0B ɛ A 0B ɛ A B B 0B ɛ Finally, (9) becomes the same as (1) 10

(d) Let s 1 = 001 and s 2 = 011. 1. Simulate s 1 : q 0, φ q 1, {$} q 2, { $} q 2, {$} q 3, {φ} 0 q 1, {0$} q 1, {$} q 2, { $} q 2, {$} q 3, φ 0 q 2, { 0$} q 2, {0$} q 1, {00$} q 1, {0$} q 1, {$} q 2, { $} q 2, {$} q 3, φ q 2, { 0$} q 2, {0$} 1 q 2, { 00$} q 2, {00$} q 2, {$} q 3, φ q 2, {0$} 11

2. Simulate s 2 : q 0, φ q 1, {$} q 2, { $} q 2, {$} q 3, {φ} 0 q 1, {0$} q 1, {$} q 2, { $} q 2, {$} q 3, φ q 2, { 0$} q 2, {0$} 1 q 2, {$} q 3, φ 1 Therefore, s 1 is accepted and s 2 is rejected. Alternative Solution for (a). 1. Here is the alternative PDA: ɛ, ɛ $ ɛ, ɛ ɛ, $ ɛ start 0 1 2 3 0, ɛ 0 ɛ, ɛ ɛ, 0 ɛ 1, 0 ɛ. 2. Here is another alternative PDA: 12

ɛ, $ ɛ ɛ, ɛ $ 1, 0 ɛ ɛ, $ ɛ start 0 1 2 3 0, ɛ 0 ɛ, 0 ɛ 1, 0 ɛ. However, you cannot do ɛ, $ ɛ ɛ, ɛ $ 1, 0 ɛ ɛ, $ ɛ start 0 1 2 3 0, ɛ 0 1, 0 ɛ ɛ, 0 ɛ. because 0 + cannot be accepted. Common Mistakes. 1. For (c), you need to explain why the 64 rules of are redundant. A ij A ik A kj Problem 6 (20 pts) Consider the language {0 2n n 0} We would like to use a 2-tape TM to recognize the language by following procedure: Repeat 1. Copy half of tape 1 to tape 2 and make tape 1 empty; 2. Copy tape 2 back to tape 1; 13

until tape 1 is empty. (a) Please give a state diagram for this TM. The number of states should be 6 (including q a and q r ). (b) Simulate the strings ɛ (i.e., empty string), 0000 and 000000. Please note that the movement of the head can be L, R and S. Answer (a) The state diagram of this TM can be described as follows: q 1 0, R S start q 2 q 3 L L q a 0, R 0, R R S L x, L 0 q 4 q r 0 0, L, L x S S. All other links go to q r. This TM does the following actions. i) Copy half of tape 1 to tape 2 (Loop between q 1 and q 2 ) If the length is even, the loop stops at q 1 and goes to q 4. If the length is odd, stops at q 2 and goes to q 3. 14

ii) If the length of tape 1 is even, reject if it is empty. (q 4 q r ) Otherwise, we should copy tape 2 to tape 1 (Loop on q 4 ). Then we should start from i) again, to check if it is 0 2n for some n. iii) If the length of tape 1 is odd, then we are at q 3 and tape 2 may or may not have 0s. We then can check if tape 2 has 0s or not. Accept if it is blank. That is, tape 2 has no 0s, and the length is 1. (q 3 q a ) Reject otherwise. The length of tape 1 is an odd number larger than 1. (q 3 q r ) The reason of putting an x on tape 2 in q 1 q 4 is to distinguish the empty input from other even length inputs on q 1. If the additional alphabet is not added, then an additional state is required to handle this. (b) Simulate empty string, string 0000 and 000000 as follows (read down the columns and left to right): 1. Simulate ɛ: { q 1 q 1 { q 4 q 4 x Reject ɛ. 2. Simulate 0000 : { q 10000 q 1 { q 1 00q 1 { q 100 q 1 x { q 4 0 q 4 xx { q 2000 q 2 { q 4 0q 4 0x { q 20 q 2 x { q 10 q 1 xx { q 100 0q 1 { q 4 0 q 4 0 x { q 1 0q 1 x { q 2 q 2 xx { q 20 0q 2 { q 4 00 q 4 x { q 4 q 4 0xx { q 3 q 3 xx Accept 0000 15

3. Simulate 000000 : { q 1000000 q 1 { q 100 00q 1 { q 4 0 0q 4 0 x { q 200 q 2 x { q 200000 q 2 { q 20 00q 2 { q 4 00 q 4 0 x { q 10 0q 1 x { q 10000 0q 1 { q 1 000q 1 { q 4 000 q 4 x { q 2 0q 2 x { q 2000 0q 2 { q 4 00q 4 0x { q 1000 q 1 x { q 3 q 3 0 x Reject 000000 Common Mistakes 1. ɛ should be rejected rather than accepted. 2. By definition, you cannot assume that there is a before the input string. However some of you asked the TA during the exam and their answer was yes. So we still give credits if you made such an assumption. 3. You can validate your diagram by checking 0 and 00 first. Both should be accepted. 16