COMP 531: Theory of Computation (Winter 06)
[ Lectures: summary and links ]
[ Assignments ]
[ Course description ]
[ Links ]
Time: Tuesdays and Thursdays 11:35 AM - 12:55 PM
Place: McConnell Engineering Building 320
Instructor: Navin Goyal
email: first name followed by @cs.mcgill.ca
office: McConnell 106
phone: (514) 398-7071 (ext. 0524)
office hours: Tue 2:00--3:00 PM, and by appt
TA: Mark Mercer
email: jmerce1 followed by @cs.mcgill.ca
office: McConnell 106
phone: (514) 398-7071 (ext. 0524)
office hours: Thu 2:00--3:00 PM, and by appt
Lecture 1 (Jan 3) (Most of this material can be found in Arora Chapters 1, 4 and Sipser Section 7.1)
Quick recap of Turing Machines, Strong Church--Turing hypothesis, time and space complexity measures for TMs, simulation of
multi-tape TM by single-tape TM, linear speed up for time and space.
Lecture 2 (Jan 5) (Sipser Chapter 9, Arora Chapter 4)
Space and time hierarchy theorems. Complexity classes P, NP, L,
NL, PSPACE, EXP.
Lecture 3 (Jan 10)
Tentative outline:
Reductions. Completeness. P-completeness.
(For the first three topics we mainly use Papadimitriou Chapter 8)
Wikipedia article on P-complete problems
Lecture 4 (Jan 12)
Nondeterminism. NP. Cook--Levin theorem. NP-completeness. Self-reducibility.
(Arora Chapter 2)
Lecture 5 (Jan 17)
Space complexity classes L, NL, PSPACE. Complete problems for these classes. (Arora Chapter 3)
Lecture 6 (Jan 19)
Savitch's theorem. Immerman--Szelepcsenyi theorem. (Arora Chapter 3)
Lecture 7 (Jan 24)
Nondeterministic time and space hierarchy theorems (Arora Chapter 4). Ladner's theorem (Papadimitriou Chapter 14).
A write-up of Fortnow on Ladner's theorem. It contains two proofs of the theorem. Proof we did in class resembled the first one a bit.
Lecture 8 (Jan 26)
Relativization (Arora Chapter 4; Papadimitriou Chapter 14). Polynomial Hierarchy (Arora Chapter 5; Papadimitriou Chapter 17).
A compendium of problems in the polynomial hierarchy (PH) by Schaefer and Umans
Lecture 9 (Jan 31)
Continue with PH.
Lecture 10 (Feb 02)
Boolean Circuits. Nonuniform complexity classes. (Arora Chapter 6)
Lecture 11 (Feb 07)
Karp-Lipton theorem. Classes NC, AC, and relationships with other complexity classes (Arora Chapter 6).
Lecture 12 (Feb 09)
Randomized computation. Examples: decision trees, equality computation in two party communication model. Polynomial identity testing. (Arora Chapter 7)
Lecture 13 (Feb 14)
Complexity classes RP, BPP, ZPP. Error reduction by repetition.
Adleman's theorem: BPP is in P/poly. Sipser--Lautemann theorem: BPP is in PH.
Lecture 14 (Feb 16)
Randomized space complexity classes. Undirected s-t connectivity is in RL. Universal Hash Functions.
Week of Feb 19. No Lectures: Study Break
Week of Feb 26. No Lectures: Instructor away
Reading assignment: Section 8.1 of Arora's book
Lecture 15 (March 7)
Application of universal hash functions to randomness efficient error reduction. Impagliazzo--Zuckerman generator
The original paper (it's rather terse)
A monograph by Luby and Wigderson on related matters
A planned topic (but not covered due to lack of time):
Introduction to Expander graphs and their application to randomness efficient error reduction. (This material can be found, e.g. within the first 30 pages of the lecure notes Expander Graphs and their Applications by Hoory, Linial, and Wigderson)
Lecture 16 (March 9)
Completing the proof of the Impagliazzo--Zuckerman result. Pseudorandom generators.
Nisan--Wigderson pseudorandom generator (Chapter 18 of Arora's book).
Lecture 17 (March 14)
Completing the proof of the Nisan--Wigderson result.
Lecture 18 (March 16)
Communication Complexity. (Chapter 13 of Arora's book)
Lecture 19 (March 21)
(Lecture by Mark Mercer. Instructor away)
AC0 circuits can't compute PARITY (even when augmented with MOD 3 gates). A nice exposition of this material can be found
here . See also Arora Chapter 18.2
Lecture 20 (March 23)
(Lecture by Arkadev Chattopadhyay. Instructor away)
Lower bounds for monotone circuits (Arora Chapter 14.3)
Lecture 21 (March 28)
Interactive Proof Systems. Arthur--Merlin protocols. (Arora Chapter 10)
The story of the original discovery of Arthur--Merlin protocols.
And the story
of the modern rediscovery (this link might not work from outside the campus).
Another story also discussing the subsequent developments including the PCP Theorem and complete with pictures of the cast of characters.
Lecture 22 (March 30)
#P is in IP. Multiprover interactive proof systems. (Arora Chapter 10)
Lecture 23 (April 4)
Introduction to Probabilistically Checkable Proofs. Relation to multiprover
interactive proof systems.
(Arora Chapter 19, Papadimitriou Chapter 13)
Section 3 of this paper contains the proof of MIP=PCP(poly(n), poly(n))
A compendium of NP optimization problems
Lecture 24 (April 6)
Remarks on the PCP theorem. Application to Inapproximability results for
optimization problems.
A course on the PCP theorem and hardness of approximation
Assignments:
Assignment 1
Assignment 2
Assignment 3
Assignment 4
Course Description:
This is an introductory graduate course in computational complexity.
We will study questions such as these:
Can we prove that some computational problems require lot of time?
Does having access to random coin help compute faster?
Is it easier to find a solution than to count the number of solutions?
Is it easier to find approximate solutions than to find exact solutions?
This study suggests a rich web of complexity classes that classify the problems
according to the computational resources (e.g., time, memory,
randomness, parallelism) needed for their solutions.
In this course we will learn about some of these classes
and how they are belived to relate with each other. Many important
parts of this picture are as yet unproven and filling these gaps constitutes
some of the deepest and most important problems in computer science, of which P = NP? problem is the most famous example.
Brief tentative list of topics:
Time and space hierarchy theorems, nondeterminism, time and space complexity classes,
reductions, completeness
Polynomial hierarchy
Counting classes
Randomized computation
Interactive proofs
Probabilistically checkable proofs and hardness of approximation
Nonuniform computation and boolean circuits
Undirected s-t connectivity in log space
Prereqs: The formal prerequisite for the course is COMP 330 or
an equivalent course in Automata and Computability.
The course will involve a fair amount of mathematics, but this is all elementary: basic probability,
algebra, and discrete math. And of course, some knowledge of algorithms is important to appreciate
the course. Please check with me if in doubt.
Grading: There will be bi-weekly homework assignments (a total of about 5).
Text: We will loosely follow a draft of an upcoming book by Sanjeev Arora.
I'll provide relevant material from the book. The following two books
are also useful and on reserve in Schulich library:
Introduction to the Theory of Computation
by Sipser and Computational Complexity by Papadimitriou. These books cover the basics in more detail
than Arora's book.
There are many excellent lecture notes available on the web. If you
want to have a detailed idea of what the course will be like, please
refer to these notes.
Links to some course notes on the web:
Luca Trevisan
Steven Rudich and Avrim Blum
Madhu Sudan
Misc. links:
Electronic Colloquium on Computational Complexity
Complexity_Zoo Complexity Zoo - Qwiki
Computational Complexity Weblog
Expander Graphs and their Applications by Hoory, Linial and Wigderson
The P vs NP page
P, NP and Mathematics - a computational complexity perspective (This paper by Avi Wigderson serves as a good introduction to some of the most important developments in computational complexity)