Title: CMPT 308
1CMPT 308 Computability and Complexity Fall 2004
Instructor Andrei Bulatov, email
abulatov_at_cs.sfu.ca
TA Ramsay Dyer, email
rhdyer_at_cs.sfu.ca
Learning resources
- Prerequisites MACM 201
- Lectures MWF 1030 1120, in WMX
3210 (37 lectures) - Course Text Introduction to the Theory of
Computation - by Mike
Sipser - Instructors office hours W 1300
1400 in ASB 10855, or by appointment - Assignments 5 sets of exercises,
solutions to the first one are due to Sept 29th - TAs office hours TBA
Course web page www.cs.sfu.ca/abulatov/CMP
T308
Marking scheme
- 5 homework assignments, worth 6 each
- midterm, worth 30, and
- final exam, worth 40
2Computability and Complexity
1-1
Introduction
Introduction
Computability and Complexity Andrei Bulatov
3Computability and Complexity
1-2
Fundamental Questions
A computer scientist might be expected to have
answers to some Fundamental questions such as
- What is a computer ?
- What problems can computers solve?
- Can these problems be classified ?
4Computability and Complexity
1-3
Problems
Given 2 collections of DNA sequences
and
- What is the shortest DNA sequence that contains
all of - and as
subsequences? - What is the shortest DNA sequence, formed by
overlapping elements - from these sets, which begins with
and ends with ? - Is there a set of indices
such that - Can each be paired with a distinct in
such a way that and - are 99 identical? How many ways
can this be done?
5Computability 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
6Computability and Complexity
1-5
More examples
- Computer viruses Write a program that prints
its own - source code
- Perfect virus detection software Write a
program that detects - whether any given program prints its own
text - Can mathematics be automatized? Does there
exist a computer - program that would distinguish true
mathematical statements - from false ones?
easy
impossible
impossible
7Computability and Complexity
1-6
Aims
This course is designed to enable you to
- State precisely what it means for a problem to be
computable, and show that some problems are not
computable - State precisely what it means to reduce one
problem to another, and construct reductions for
simplest examples - Classify problems into appropriate complexity
classes, and use this information effectively
8Computability and Complexity
1-7
Prehistory
1900
1928
1933
Hilberts 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 mechanical rule
to determine whether a given mathematical
statement is true or false
Even for arithmetic at most one of the first two
properties can be reached
9Computability and Complexity
1-8
The Machine
10Computability and Complexity
1-9
Complexity Measures and Non-Determinism
11Computability and Complexity
1-10
Other Computational Models
12Computability and Complexity
1-11
Course Outline
- Turing Machine and other computational models
- Theory of Computability and Undecidable
problems - First Order Logic and Gödels 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
13- Is the relation (a,b),(b,a) on a,b
symmetric? - Is the function f from 1,2,3 to a,b
defined by f(1)a, f(2)b, f(3)a
bijective? - Can one make a list of all real numbers?
- Is the language natural
regular? - Is the graph
bipartite? - How many edges has a 6-vertex tree?
- Does the graph
- contain a 4-clique?
- Is a CNF?
- Is equivalent to x?
y?