0% found this document useful (0 votes)
25 views13 pages

Intro

Here are the answers to the questions: 1. Yes, the relation {(a,b),(b,a)} on {a,b} is symmetric since (a,b) is in the relation if and only if (b,a) is in the relation. 2. Yes, the function f from {1,2,3} to {a,b} defined by f(1)=a, f(2)=b, f(3)=a is bijective since it is both injective (one-to-one) and surjective (onto). 3. No, one cannot make a list of all real numbers since the real numbers are uncountably infinite. 4.

Uploaded by

Aneeba Khaliq
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views13 pages

Intro

Here are the answers to the questions: 1. Yes, the relation {(a,b),(b,a)} on {a,b} is symmetric since (a,b) is in the relation if and only if (b,a) is in the relation. 2. Yes, the function f from {1,2,3} to {a,b} defined by f(1)=a, f(2)=b, f(3)=a is bijective since it is both injective (one-to-one) and surjective (onto). 3. No, one cannot make a list of all real numbers since the real numbers are uncountably infinite. 4.

Uploaded by

Aneeba Khaliq
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 13

CMPT 308 — Computability and Complexity

Fall 2004

Instructor: Andrei Bulatov, email: [email protected]


TA: Ramsay Dyer, email: [email protected]
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 appointment
• Assignments: 5 sets of exercises, solutions to the first one are due to Sept 29th
• TA’s office hours: TBA
Course web page: www.cs.sfu.ca/~abulatov/CMPT308
Marking scheme:
• 5 homework assignments, worth 6% each
• midterm, worth 30%, and
• final exam, worth 40%
Computability and Complexity 1-1

Introduction
Introduction

Computability and Complexity


Andrei Bulatov
Computability 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 ?


Computability and Complexity 1-3

Problems

Given 2 collections of DNA sequences {a1 , a2 , , ak } and


{b1 , b2 , , bk }

1. What is the shortest DNA sequence that contains all of a1 , a2 , , ak


and b1 , b2 , , bk as subsequences?

2. What is the shortest DNA sequence, formed by overlapping elements


from these sets, which begins with a1 and ends with bk?

3. Is there a set of indices i1 , i2 , , in such that


ai1  ai2    aik  bi1  bi2    bik

4. Can each ai be paired with a distinct b j in such a way that ai and


b j 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 detects


whether any given program prints its own text
impossible
• Can mathematics be automatized? Does there exist a computer
program that would distinguish true mathematical statements
from false ones?
impossible
Computability and Complexity 1-6

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
Computability and Complexity 1-7

Prehistory
1900 1928 1933

Hilbert’s program Gödel’s Incompleteness Theorem

Formalize mathematics and establish that:


• Math is consistent: a mathematical
statement and its negation cannot ever Even for arithmetic at most one of
both be proved the first two properties can be
reached
• 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”
Computability and Complexity 1-8

The Machine
1936 1937 1945 1951 1960

Turing Machine
Undecidability of Logic

First digital computer

Recursive Functions

Markov’s algorithms
Computability and Complexity 1-9

Complexity Measures and Non-Determinism


1960 1970 1971 1975

Complexity Measures, Birth of CC


Study of Complexity Measures NP-complete problems
Main Complexity Classes
P=NP Question

Cook-Levin’s Theorem
Computability and Complexity 1-10

Other Computational Models


1970 1980 1985 1997

Shor’s integers factoring


New computational models introduced:
Probabilistic Algorithms Quantum algorithms
Approximation Algorithms
Interactive Algorithms
Cryptography
Computability and Complexity 1-11

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. 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 {(ab) n | n 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 ( x  y )  ( x  y ) a CNF?
9. Is x  ( x  y ) equivalent to x? y?

You might also like