CMPT 308 Computability and Complexity Fall 2004 Instructor
CMPT 308 — Computability and Complexity Fall 2004 Instructor: TA: Andrei Bulatov, email: abulatov@cs. sfu. ca Ramsay Dyer, email: rhdyer@cs. sfu. ca Learning resources: • Prerequisites: MACM 201 • Lectures: MWF 10: 30 – 11: 20, in WMX 3210 (37 lectures) • Course Text: Introduction to the Theory of Computation by Mike Sipser • Instructor’s office hours: W 13: 00 – 14: 00 in ASB 10855, or by ap • Assignments: 5 sets of exercises, solutions to the first one are due • TA’s office hours: TBA Course web page: www. cs. sfu. ca/~abulatov/CMPT 308 Marking scheme: • 5 homework assignments, worth 6% each • midterm, worth 30%, and • final exam, worth 40%
Computability and Complexity 1 -1 Introduction Computability and Complexity Andrei Bulatov
Computability and Complexity 1 -2 Fundamental Questions A computer scientist might be expected to have answers to so Fundamental questions such as • What is a computer ? • What problems can computers solve? • Can these problems be classified ?
Computability and Complexity 1 -3 Problems Given 2 collections of DNA sequences and 1. What is the shortest DNA sequence that contains all of and as subsequences? 2. What is the shortest DNA sequence, formed by overlapping from these sets, which begins with and ends with ? 3. Is there a set of indices such that 4. Can each be paired with a distinct in such a way tha are 99% identical? How many ways can this be done
Computability and Complexity 1 -4 Comments • Three of these examples are problems that can be solved by a computer • One is “easy”; the other two are “hard” • The other example cannot be solved by any known computer
Computability and Complexity 1 -5 More examples • Computer viruses: Write a program that prints its own source code easy • Perfect virus detection software: Write a program that det whether any given program prints its own text impossible • Can mathematics be automatized? Does there exist a co program that would distinguish true mathematical statem from false ones? impossible
Computability and Complexity Aims This course is designed to enable you to: 1. State precisely what it means for a problem to be computable, and show that some problems are not computable 2. State precisely what it means to reduce one problem to another, and construct reductions for simplest examples 3. Classify problems into appropriate complexity classes, and use this information effectively 1 -6
Computability and Complexity 1 -7 Prehistory 1900 1928 1933 Hilbert’s program Formalize mathematics and establish that: • Math is consistent: a mathematical statement and its negation cannot ever both be proved • Math is complete: all “true” mathematical statements can be “proved” • Math is decidable: there is a Gödel’s Incompleteness Theorem Even for arithmetic at most one the first two properties can be reached
Computability and Complexity The Machine 193619371945 1951 1960 Turing Machine Undecidability of Logic First digital computer Recursive Functions Markov’s algorithms 1 -8
Computability and Complexity 1 -9 Complexity Measures and Non-Determinism 1960 1971 1975 plexity Measures, Birth of CC Study of Complexity Measures Main Complexity Classes P=NP Question Cook-Levin’s Theorem NP-complete problems
Computability and Complexity 1 -10 Other Computational Models 1970 mputational models introduced: Probabilistic Algorithms Approximation Algorithms Interactive Algorithms Cryptography 19801985 1997 Shor’s integers factori Quantum algorithms
Computability and Complexity Course Outline • Turing Machine and other computational models • Theory of Computability and Undecidable problems • First Order Logic and Gödel’s Incompleteness Theorem • Complexity Measures and Complexity classes • Time Complexity, classes P and NP • Space Complexity, classes L and PSPACE • Probabilistic and Approximation algorithms • Interactive Computation and Cryptography 1 -11
1. Is the relation {(a, b), (b, a)} on {a, b} symmetric? 2. Is the function f from {1, 2, 3} to {a, b} defined by f(1)=a, f(2)=b, f(3)=a bijective? 3. Can one make a list of all real numbers? 4. Is the language natural} regular? 5. Is the graph bipartite? 6. How many edges has a 6 -vertex tree? 7. Does the graph contain a 4 -clique? 8. Is a CNF? 9. Is equivalent to x? y?
- Slides: 13