Summary. Reg Dodds Department of Computer Science University of the Western Cape 2016 Reg Dodds

Similar documents
Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2018

THEORY OF COMPUTATION (AUBER) EXAM CRIB SHEET

CSE 105 THEORY OF COMPUTATION

COMP/MATH 300 Topics for Spring 2017 June 5, Review and Regular Languages

Final exam study sheet for CS3719 Turing machines and decidability.

Decidability. Human-aware Robotics. 2017/10/31 Chapter 4.1 in Sipser Ø Announcement:

CSE 105 THEORY OF COMPUTATION

Theory of Computation p.1/?? Theory of Computation p.2/?? We develop examples of languages that are decidable

MA/CSSE 474 Theory of Computation

DD2371 Automata Theory

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

FORMAL LANGUAGES, AUTOMATA AND COMPUTATION

CSE 105 THEORY OF COMPUTATION. Spring 2018 review class

SYLLABUS. Introduction to Finite Automata, Central Concepts of Automata Theory. CHAPTER - 3 : REGULAR EXPRESSIONS AND LANGUAGES

Foundations of Informatics: a Bridging Course

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

CSCE 551: Chin-Tser Huang. University of South Carolina

Decidability (What, stuff is unsolvable?)

Pushdown automata. Twan van Laarhoven. Institute for Computing and Information Sciences Intelligent Systems Radboud University Nijmegen

Lecture 17: Language Recognition

ACS2: Decidability Decidability

FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY

CSE 105 THEORY OF COMPUTATION

COMP-330 Theory of Computation. Fall Prof. Claude Crépeau. Lec. 16 : Turing Machines

Decidability: Church-Turing Thesis

Undecidability COMS Ashley Montanaro 4 April Department of Computer Science, University of Bristol Bristol, UK

CSE 105 THEORY OF COMPUTATION

Part I: Definitions and Properties

Computational Models - Lecture 4

CSE 105 THEORY OF COMPUTATION

DM17. Beregnelighed. Jacob Aae Mikkelsen

CISC4090: Theory of Computation

NODIA AND COMPANY. GATE SOLVED PAPER Computer Science Engineering Theory of Computation. Copyright By NODIA & COMPANY

Theory of Computation (Classroom Practice Booklet Solutions)

CS 154, Lecture 2: Finite Automata, Closure Properties Nondeterminism,

Theory of Computation (IX) Yijia Chen Fudan University

Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2018

CSE 105 THEORY OF COMPUTATION

CS Lecture 29 P, NP, and NP-Completeness. k ) for all k. Fall The class P. The class NP

COMP-330 Theory of Computation. Fall Prof. Claude Crépeau. Lec. 14 : Turing Machines

Theory of Computation CS3102 Spring 2014 A tale of computers, math, problem solving, life, love and tragic death

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

What languages are Turing-decidable? What languages are not Turing-decidable? Is there a language that isn t even Turingrecognizable?

Exam Computability and Complexity

Pushdown Automata (2015/11/23)

The Pumping Lemma. for all n 0, u 1 v n u 2 L (i.e. u 1 u 2 L, u 1 vu 2 L [but we knew that anyway], u 1 vvu 2 L, u 1 vvvu 2 L, etc.

Computability Theory. CS215, Lecture 6,

Introduction to Turing Machines

Decidable and undecidable languages

V Honors Theory of Computation

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

SCHEME FOR INTERNAL ASSESSMENT TEST 3

Computational Models - Lecture 5 1

ECS 120: Theory of Computation UC Davis Phillip Rogaway February 16, Midterm Exam

CS 301. Lecture 17 Church Turing thesis. Stephen Checkoway. March 19, 2018

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

Decidable Languages - relationship with other classes.

Automata and Computability. Solutions to Exercises

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

Automata and Computability. Solutions to Exercises

Introduction to Languages and Computation

Turing Machines. Reading Assignment: Sipser Chapter 3.1, 4.2

Reading Assignment: Sipser Chapter 3.1, 4.2

St.MARTIN S ENGINEERING COLLEGE Dhulapally, Secunderabad

Undecidable Problems and Reducibility

CpSc 421 Final Exam December 15, 2006

Theory of Computation Turing Machine and Pushdown Automata

Introduction to the Theory of Computing

Reducability. Sipser, pages

CP405 Theory of Computation

CPSC 421: Tutorial #1

Computability and Complexity

acs-07: Decidability Decidability Andreas Karwath und Malte Helmert Informatik Theorie II (A) WS2009/10

CPS 220 Theory of Computation

Pushdown Automata. Chapter 12

INSTITUTE OF AERONAUTICAL ENGINEERING

Before We Start. The Pumping Lemma. Languages. Context Free Languages. Plan for today. Now our picture looks like. Any questions?

Theory of Computation

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

Theory Bridge Exam Example Questions

Introduction to Turing Machines. Reading: Chapters 8 & 9

UNIT-VIII COMPUTABILITY THEORY

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

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

COM364 Automata Theory Lecture Note 2 - Nondeterminism

CS Lecture 28 P, NP, and NP-Completeness. Fall 2008

CSE 105 Theory of Computation

TURING MAHINES

Chap. 4,5 Review. Algorithms created in proofs from prior chapters

Computational Models Lecture 8 1

The Turing Machine. Computability. The Church-Turing Thesis (1936) Theory Hall of Fame. Theory Hall of Fame. Undecidability

60-354, Theory of Computation Fall Asish Mukhopadhyay School of Computer Science University of Windsor

Accept or reject. Stack

Computational Models Lecture 8 1

CS20a: Turing Machines (Oct 29, 2002)

FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY

COMP-330 Theory of Computation. Fall Prof. Claude Crépeau. Lecture 1 : Introduction

Testing Emptiness of a CFL. Testing Finiteness of a CFL. Testing Membership in a CFL. CYK Algorithm

Context-Free Languages

CS21 Decidability and Tractability

Transcription:

Theory of Computation Summary Reg Dodds Department of Computer Science University of the Western Cape 2016 Reg Dodds rdodds@uwc.ac.za

CSC 311 Paper I: Theory of Computation CSC 311 Paper I: Theory of Computation Paper and Supplementary Friday 20th January 2017 at 14h30 Venue: Proteaville Recreation Hall Located at the corner of: Abdurahman Street and Peter Barlow Drive Bellville South Note: I do not take any responsibility for informing you of venue or timetable changes. Theory of Computation 2016 venue First four chapters of Sipser 2 / 32

Introduction to the course Euclid (circa 300 BCE) wrestled with what geometrical figures could be constructed with a compass and a ruler. John Napier (1550 1617) by 1614, had already published his work on logarithms, making hand calculations very efficient. Blaise Pascal (1623 1662) built an additive calculator in 1642. During 1670 Isaac Barrow (1630 1677) published his Lectiones Geometricae, which introduced many rules of differential calculus before Newton or Leibniz. Gottfried Leibniz (1646 1716) improved the Pascaline in 1694 1703 so that it could multiply. Leibniz also dreamed of a more general logic machine. Georg Cantor (1846 1918) in 1891 invented diagonalization and that enabled Gödel s discovery. Soon after in 1900 David Hilbert (1862 1943) said, We must know! We will know!, He stated that all of mathematics could, and ultimately would, be built on unshakable logical foundations. Hilbert s great rallying cry was in mathematics there is no ignorabimus. Theory of Computation History of Computation 3 / 32

Introduction to the course Kurt Gödel (1906 1978) in 1931 published an astonishing discovery that proved Hilbert wrong. There are statements in arithmetic that cannot be known. This was followed by a flurry of work that showed how to do computation and what was impossible using that notation. Alonzo Church (1903 1995), using the lambda calculus, showed that the decision problem was undecidable in 1936. Alan Turing (1912 1954), using a Turing machine, showed that the decision problem was undecidable in 1936. Stephen Kleene (1909 1994) established general recursive functions as a basis for computation in 1936. Emil Post (1897 1954) in 1943 published work on his rewriting machines. John von Neumann (1903 1957) showed in 1946 how to build a computer which in which data and instructions shared the same memory. In this course we will show what it is that can and cannot be computed. Theory of Computation History of Computation 4 / 32

Introduction to the course We will introduce a hierarchy of machines with a finite number of components. The simplest machines have no memory. These are the finite state automata, that are either deterministic or non-deterministic. These machines can be formulated as regular grammars or as regular expressions. A slightly more complex machine has a single memory stack. These are nondeterministic pushdown automata that can also be written as context-free grammars. 1 Machines with two stacks are shown to be as powerful as machines with random access memory. These automata can also be written as Turing machines (TMs). TMs are finite state machines with an unbounded tape and a read-write head that can read or write on the tape and move in either direction. More powerful machines do not exist. 1 Stacks or memory have no bounds on their size. Theory of Computation History of Computation 5 / 32

The Hierarchy of Machines and Languages Regular (a 7 ) aaa Decidable Context free {a n b n n 0} Turing recognizable Halting problem l CFLs {a n b n c n n 0} Theory of Computation Hierarchy of Machines and Languages 6 / 32

Introductory chapter The introductory chapter covers important concepts that are assumed in this course. Automata, computability and complexity Mathematical notions and terminology sets, sequences and tuples, functions and relations, graphs, strings and languages, boolean logic proofs by construction contradiction induction Powerset prove that if A is a set then P(A) = 2 A Theory of Computation Hierarchy of Machines and Languages 7 / 32

Regular languages A Deterministic finite automaton (DFA) as a Grammar Deterministic finite automata (DFAs) Equivalent representations of DFAs 1. Graphically as a state-transition diagram 2. Grammatically as a regular grammar 3. Algebraically as a regular expression 4. Functionally as a transition table 5. Programmed (a) with states as callable procedures (b) as an array driven process Definition of a DFA, nondeterminism, regular languages the set of all regular languages L r, pumping lemma for regular languages, languages that are not regular languages Theory of Computation Equivalent representations of DFAs 8 / 32

Implementing a DFA for the odd-parity problem 0 1 0 δ 0 1 q 0 q 1 1 q 0 q 0 q 1 q 1 q 1 q 0 The odd-parity DFA using states as callable procedures. 1 def q0(w): 2 if len(w) == 0: 3 return "reject" 4 elif w[0] == 0 : 5 return q0(w[1:]) 6 elif w[0] == 1 : 7 return q1(w[1:]) 8 else: 9 return "reject" 1 def q1(w): 2 if len(w) == 0: 3 return "accept" 4 elif w[0] == 0 : 5 return q1(w[1:]) 6 elif w[0] == 1 : 7 return q0(w[1:]) 8 else: 9 return "reject" 10 11 w = 1110000011 12 print(w, q0(w)) Theory of Computation Implementing a DFA with states as procedure calls 9 / 32

Implementing a DFA for the odd-parity problem The odd-parity DFA using an array driven loop. 0 1 0 q 0 q 1 1 δ 0 1 q 0 q 0 q 1 q 1 q 1 q 0 1 start = 0 2 F = [False, True] 3 Q = [[0,1], [1,0]] 4 5 state = start 6 w = 11101000011 7 while len(w) > 0: 8 letter = int(w[0]) 9 state = Q[state][letter] 10 w = w[1:] 11 12 if F[state]: 13 print ("accept") 14 else: 15 print ("reject") Theory of Computation Implementing a DFA with an array driven loop 10 / 32

Memo for 2016 ToC examination Introduction The scope of the examination is all of the first four chapters of Sipser. Do all the exercises in those four chapters. Know the flow of ideas through Cantor Hilbert Gödel Church, Turing, Post and Kleene Von Neuman for the invention of digital computers. Topics such as minimization of DFAs, and the CYK algorithm are included although they appear elsewhere as problems in Sipser. These notes intend to be a check list of the work covered. Theory of Computation 2016 exam memo First four chapters of Sipser 11 / 32

Memo for 2016 ToC examination Automata and Languages Regular Languages Contextfree Languages finite automata, Regular Expressions, DFAs, NFAs, closure under,, and, convert NFA to DFA, minimize DFA, NFA to RE, pumping lemma grammar for CFL, grammar for RL, PDAs, closure under,, and, CYK proves decidability, pumping lemma, elephant ear, PDA CFG, a n b n is CF, a n b n c n not CF Scope of theory of computation Computability Theory The Church- Turing Thesis a n b n c n, recognizability, halting problem, equivalence What can and cannot be computed Decidability, Recognizability CFLs decidable, Atm not decidable, but Atm not Turing-recognizable Theory of Computation 2016 exam memo First four chapters of Sipser 12 / 32

Memo for 2016 ToC examination Introduction Cantor Know the flow of ideas leading to the invention of computers Pascal, Leibnitz Von Neuman History Hilbert Gödel Church, Turing, Kleene, Post Theory of Computation 2016 exam memo First four chapters of Sipser 13 / 32

Memo for CSC 311 examination 2016 DFAs, Regular expressions Define a deterministic finite automaton (DFA), pronounced dee-eff-ay, so we write a DFA and many DFAs. Represent finite automata in a variety of ways, using a state transition table, a state chart or diagram, a regular grammar or a regular expression. Implement finite automata with each state as a procedure call. More powerful is the general implementation of finite automata as a state transition table of next states. Theory of Computation 2016 exam memo DFAs representation regular expression 14 / 32

Memo for CSC 311 examination 2016 DFAs, Regular expressions Get the union of two DFAs N 1 and N 2 by combining their transition functions. or get union of two DFAs by construction of a non-deterministic finite state automaton (NFA, pronounced enn-eff-ay so we write an NFA and many NFAs ). Build the concatenation of these two DFAs N 1 N 2 with a constructed NFA. Given a DFA N, build N with NFA construction. Define a regular expression. Theory of Computation 2016 exam memo Operations on DFAs 15 / 32

Memo for CSC 311 examination 2016 DFAs, Regular expressions Convert regular expression to NFA do easy ones using common sense. If converting regular expression to NFA by common sense becomes overwhelming do the conversion element-by-element using the definition of a regular expression and the equivalence of each construct in the definition with its corresponding NFA. Convert NFA to DFA using subset construction. What is the time complexity to convert an NFA to a DFA using subset construction? Minimize a DFA. Convert DFA to regular expression using generalized NFA by ripping. Show that regular expressions are equivalent to finite automata. Theory of Computation 2016 exam memo DFAs NFAs conversion 16 / 32

CSC 311 2016 memo Pumping lemma Give the pumping lemma for regular languages. Prove the pumping lemma for regular languages. The pumping lemma is not used for showing regularity. For what is the pumping lemma useful? There are some examples on the next slide Theory of Computation 2016 exam memo Pumping lemma for regular languages 17 / 32

CSC 311 2016 memo Pumping lemma Show with or without the pumping lemma for regular languages that: 1. {a n n 0 and a Σ} is regular. 2. {a n b n n 0 and a,b Σ} is not regular. 3. {a 2 b 2 a,b Σ} is regular. 4. R = {a j b k c l i 0,j 0 and l 0, and a,b,c Σ} is regular. 5. T = {a n b n c n n 0 and a,b,c Σ} is not regular. 6. T R. 7. {a 3 b 3 c 3 a,b,c Σ} is regular. 8. {a 2n n = 3 and a Σ} is regular. 9. {a 2n n 0 and a Σ} is not regular. 10. {a 2n n = 3 and a Σ} is regular. 11. {a 2n n 0 and a Σ} is not regular. 12. {a n n {Fibonacci numbers} and a Σ} is not regular. 13. {ww R w Σ } is not regular. 14. {wxw R w Σ and x Σ} is not regular. 15. {ww w Σ } is not regular. Theory of Computation 2016 exam memo Pumping lemma for regular languages 18 / 32

CSC 311 2016 memo Regular expressions in languages Most programming languages have regular expression engines for manipulating substrings in text. These regular expressions are written using simple rules. What do the following regular expressions (REs) mean? 1. [0-9], [0-9]*, [0-9]+, [0-9]{3} and [0-9]{1-8} 2. Write [0-9] and [a-z] in another way. 3. [a-za-z], [a-za-z]*, [a-za-z]+ and [ˆa-zA-Z] 4. [ˆ*/], "/*", "*/", [*/], "if", "else" 5. [.], [ˆ.], [.]*, [.]+,.*, [.*]*, [.*], [*]* 6. [+-]?[0-9][.][0-9]{0-7}([Ee][+-]?[0-9]{1-3})? 7. [+-][0-9]?[.][0-9]{0-8}[Ee]?[+-][0-9]{1-3}) 8. Give an RE for a Java variable name. 9. Give an RE to match the, a, an in a text. It need not match these words at the start of a sentence. 10. Adapt the previous to match these words anywhere in a sentence. 11. Give an RE to match palindromes for experts only. Theory of Computation 2016 exam memo Regular expressions in programming 19 / 32

CSC 311 2016 memo Context-free languages (CFL) Let A = L(G), G = (V,Σ,R,S) is a context-free language, and w = Σ. Grammar. CF grammars can be used to define a language. What characterizes a regular grammar? When is a grammar context-free? Give an example of a grammar that is neither context-free or regular. Given a context-free language, give its grammar, such as for: palindromes over Σ; {a n b n n 0 and a,b {a,}}; a grammar for balanced parentheses; unambiguous grammar for arithmetic over the variables a, b and c; etc. What is a parse tree? When is a CFL ambiguous? Using the Cocke-Younger-Kasami procedure determine if w A. If w A, give its right-most and left-most derivation S w in each case. What are the productions of a grammar in Chomsky normal form (CNF). Given G, convert it into Chomsky normal form. If a grammar has the productions S S; S SaSbScSdSeSfSgSiShS, S ε, how many productions need to be added to it to bring it to Chomsky normal form. See Sipser s Example 2.10 on Page 110 of 2nd Ed. to convert rules to CNF. Theory of Computation 2016 exam memo Context-free languages 20 / 32

CSC 311 2016 memo Non-deterministic pushdown automata (PDA) What is a PDA? Remember PDA stands for a non-deterministic pushdown automaton. Deterministic PDAs (DPDAs) are a bit weaker than PDAs but are easier to code. Programming languages usually need only a DPDA. Explain how to construct a DFA for {a n b n n = 10 100 and a,b Σ}. How many states will it require? Can a program that simulates such a DFA be implemented in 2016? PDA is a 6-tuple (Q,Σ,Γ,δ,q 0,F). PDA is more powerful than DFA because it has a memory stack. It can count. PDA can be represented by a state diagram or transition table, and can be programmed. Give a PDA and CF grammar for: 1. {a n b n n 0 and a,b Σ}. 2. {a j b k c l j,k,l 0, and j = k or j = l and a,b,c Σ}. 3. The even palindromes {ww R n 0 and a,b Σ}. 4. The odd palindromes. Theory of Computation 2016 exam memo Non-deterministic pushdown automata 21 / 32

CSC 311 2016 memo Non-deterministic pushdown automata (PDA) PDAs can be used to define languages. A language is context free if and only if some PDA recognizes it. This is proved in two directions. The one direction uses the elephant s ear to construct a PDA from a grammar and the other direction shows how to construct rules for a grammar from the transitions of a PDA. The transition from state p to state q in a PDA with the input a, that pops y off the PDA s stack and writes z in its place, is written as a,y z. a,s vwx is shorthand notation for the three transitions from state p, via q and r, to state s, (1) First from p to q with a,s x, next from (2) q to r with ε,ε w and finally from (3) r to state s with ε,ε v. This implements the transition δ(p,a,s) (s,vwq). Since every regular language has a DFA that recognizes it, and every DFA is a PDA that ignores its stack, it means that every regular language is also context-free language. Theory of Computation 2016 exam memo Non-deterministic pushdown automata 22 / 32

CSC 311 2016 memo Pumping lemma for context-free languages The pumping lemma for context-free languages is used to show that a language is not context-free. Take a non-empty string that is long enough from the language L and show that it cannot be pumped then L is not context free. Sketch the proof. Theory of Computation 2016 exam memo Pumping lemma for context-free languages 23 / 32

CSC 311 2016 memo Pumping lemma Give grammar and PDA when it is context-free, or show with the pumping lemma for context free languages that it is not: 1. {a n n 0 and a Σ} is context-free. 2. {a n b n n 0 and a,b Σ} is context-free. 3. {a 2 b 2 a,b Σ} is context-free. 4. R = {a j b k c l i 0,j 0 and l 0, and a,b,c Σ} is context-free. 5. T = {a n b n c n n 0 and a,b,c Σ} is not context-free. 6. T R. 7. {a 3 b 3 c 3 a,b,c Σ} is context-free. 8. {a 2n n = 3 and a Σ} is context-free. 9. {a 2n n 0 and a Σ} is context-free. 10. {a 2n n = 3 and a Σ} is context-free. 11. {a 2n n 0 and a Σ} is / is not context-free. 12. {a n n {Fibonacci numbers} and a Σ} is / is not context-free. 13. {ww R w Σ } is context-free. 14. {wxw R w Σ and x Σ} is context-free. 15. {ww w Σ } is / is not context-free. Theory of Computation 2016 exam memo Pumping lemma for context-free languages 24 / 32

CSC 311 2016 memo Prove with grammar or PDA or use pumping lemma Give grammar and PDA when it is context-free, or show with the pumping lemma for context free languages that it is not: 1. {a n b n a n b n n 0 and a,b Σ} is not context-free. 2. {a n b n c n d n n 0 and a,b,c,d Σ} is not context-free. 3. {a n b n c m d m n 0 and a,b,c,d Σ} is context-free. 4. {a n ba 2n ba 3n n 0,a,b Σ} is not context-free. 5. {www w Σ } is / is not context-free. Theory of Computation 2016 exam memo Pumping lemma for context-free languages 25 / 32

CSC 311 2016 memo 2PDAs A 2PDA has two stacks is all powerful. All the problems above that are not context-free can be implemented with 2PDAs. Try to create 2PDAs for them. Theory of Computation 2016 exam memo 2PDAs 26 / 32

CSC 311 2016 memo Turing machines Turing machine (TM) is more powerfully that a single stack PDA because tape can be read or written. Most powerful form of automaton. Show sequence of configurations given a TM. Adding memory tapes does not increase power. Making TM non-deterministic does not increase power. What is an algorithm. Church-Turing thesis. Hilbert s 10th problem. Theory of Computation 2016 exam memo Turing machines 27 / 32

CSC 311 2016 memo Decidability The language Adfa is decidable because we can build a machine that will either accept or reject a string. The language Anfa is decidable because we can build a machine that will either accept or reject a string. The language Arex is decidable because we can build a machine that will either accept or reject a string. The language Edfa = { A A is a DFA and L(A) =} is decidable. Why? The language EQdfa = { A,B A and B are DFAs andl(a) = L(B)} is decidable. Understand and be able to explain. The language Acfg is decidable because we can build a machine using CYK to decide if any string has a derivation or not. The language Ecfg = { A A is a CFG and L(A) =} is decidable. Why? The language EQdfa = { A,B A and B are DFAs andl(a) = L(B)} is not decidable. Understand and be able to explain. Every CFG is decidable. Theory of Computation 2016 exam memo Turing machines 28 / 32

CSC 311 2016 memo Turing machines The language Atm = { M,w M is a TM and M accepts w} is Turing-recognizable. The language Atm = { M,w M is a TM and M accepts w} is undecidable. If a set maps one-to-one onto N it is countable or enumerable. Since the mapping J[p,q] (p+q 1)(p+q 2)/2+q maps every pair of in Q onto a unique number in N. The set of rational numbers Q is countable. The set of real numbers R is undenumerable of uncountable and it is proved with Cantor s diagonalization method. There exist languages that are not Turing-recognizable. Atm is undecidable. The language Atm is not Turing-recognizable. Theory of Computation 2016 exam memo The halting problem 29 / 32

Memo for CSC 311 examination 2016 Compatibility and NP complexity This is to remind you of important background material from CSC212 that you should have mastered on or before 2015. Be able to prove that the halting problem is non-computable. Define totality, equivalence. What is meant by partial computability? What are proof systems? Give a class of algorithms that are considered efficient? When do we consider an algorithm intractable? What is meant by NP completeness? Understand and be able to explain what the practical implications are of knowing that an algorithm is NP complete. Give a list of at least 5 problems that are NP complete. Be able to explain how to go about proving that a given problem is NP complete. Theory of Computation 2016 exam memo Background from CSC212 30 / 32

Memo for CSC 311 examination 2016 Layout of paper Similar layout as last year s paper. Theory of Computation 2016 exam memo CSC 311 31 / 32

That s all folks That s all folks! Computation Exam 2016 I hope you enjoyed the course and good luck with your exams and career. 32 / 32