CMPS 132 Home Page
Computability and Computational Complexity
Winter 2007

Manfred K. Warmuth

Organisational

       
        Class:	TTh 12-1:45, Social Sciences 263 
 Office hours:	We 11-12:  E2 357 
Prerequisites:	CMPS 130 - CMPS 101 - CE 16
     Textbook:  Martin - Introduction to Languages and the Theory of Computation (Errata)
        Final:  We, March 21, 4-7pm, E2-489

Summary of lectures

1:	General introduction
	Self referential paradoxes 
	Proof of the Halting Problem at programming language level
	Definition of Turing Machines and its motivation
	Examples
	Turing acceptable

	Read Chapter 9

        Syllabus
	Policies, grading
	Halting Problem
	Homework 1 Made one problem extra credit

2:      Definition of Turing computable
	Variations of Turing machines and
	alternates to Turing machines
	(2 stacks and queue machine)
	Mankala Turing machine
	Simulation of nondeterministic Turing machines
	by deterministic ones

3:      Church-Turing Thesis
        Comparison between RAM and Universal Turing Machine
	Encodings and construction of Universal Turing Machine
	Closure properties of Turing acceptable and Turing decidable

	Read Chapter 10
	"Life" implementation of Turing Machines

	Homework 1 Solutions
	Homework 2

4:	Equivalence of Turing enumerable and Turing acceptable
	Universal grammars and equivalence with Turing acceptable 
	Linear bounded automata and the Chomsky hierarchy

5:	Defs of countable and uncountable
	The countably infinite union of countably infinite sets
	is countably infinite
	Diagonalization argument that shows that the power set of
	a countably infinite set is uncountable

	Read Chapter 11

	General proof that |S| less than 2^|S|: Brookshear
	Proof of Schroeder-Bernstein Theorem


	Homework 2 Solutions
	Homework 3

6: 	SA - a Turing acceptable language
	that is not Turing decidable
	NSA - a language that is not Turing acceptable
        There exists a Turing decidable language that is 
 	not context sensitive

	Decision problems
	Definition of the Halting Problem

7:	Discussion of solutions to HW3
        Proof that the rationals are countably infinite
	Alternate proofs

	Definition of the language H corresponding
	to the Halting Problem
        H is Turing acceptable but not Turing decidable
	Various proofs that H is not Turing decidable
	including Turing's original proof based on the
	computable reals
	Intro to reductions between decision problems
 
        Homework 3 Solutions
	Homework 4

8:	Lots of reduction examples

9:	Some more reductions
	Rice's Theorem and how to apply it
	
	Homework 4 Solutions
	Fermat's Theorem checker in Python

	Sample Midterm Questions
	Sample Midterm
	Solutions to Sample Midterm

10:	Review for midterm

11:     Midterm (till Section 11.4)
        Lasts entire class period
	Midterm W07 Solutions

12:    	The Post Correspondence Problem
        Undecidable problem for Context Free languages
        
	Finish Chapter 11


     	Busy Beaver Function
	
	Read Chapter 12
	Homework 5

13:    	Defs of primitive 
  	There exist total computable functions that
	are not primitive recursive	
	Ackermann function
	Def of mu-recursive functions
  	Equivalence between partial computable functions
	and mu-recursive functions

14:	Alternate defs of partial computable functions

	Growth rates
	The class P

        Homework 5 Solutions
	Homework 6

15:	The class NP
	Various definitions
	NP-completeness
	Poly-time reductions

16:	Reduction of SAT to 3SAT,
        3SAT to CLIQUE
        CLIQUE to IS
        CLIQUE to VC
	Homework 7

        Homework 6 Solutions

17:	More reductions
        3SAT to 3COL
	3colorability reduction from CRLS 
        VC to HC (out of Garey and Johnson)

        Fun links:
	Wikipedia on NP-completeness
        The video game Tetris is NP-hard
	A compendium of NP-complete optimization problems
	

18:   	More reductions
	Weak and strong NP-completeness of number problems
	Weak NP completeness of Subset Sum
        (3SAT to SS)
	Pseudopolynomial time algorithm for SS
	Strong NP completeness of 3Partition
	Homework 8

	Homework 7 Solutions

     	Hints:
	14.30: SS to PARTITION
	You need add 1 or 2 large numbers to the
	instance of SS so that the even split in PARTITION
	corresponds to the uneven split in SS

	14.25: You might use the fact that the number of
	odd degree verices in an undirected graph is even 
	(prove this by induction)

 	Try an alternate proof that replaces each edge by a gadget

19:	How to deal with NP-completeness
 	Approximation algorithms

20:	Sols to Hw8
	Homework 8 Solutions

	Sample final
	Additional sample final questions
21:     Review 
	Solutions to additional sample final questions