Computational Complexity - Fall 1999

Dr. Amos Beimel

The notions of "computation" and "efficient computation" are among the fundamental notions in computer science, if not the most fundamental notions. Complexity theory defines these notions and classifies the computational problems according to their computational hardness, that is, their "complexity."

Homework and Exams:

  1. Exercise 1, due November 9 (not on-line).
  2. Exercise 2, due November 23.
  3. Exercise 3, due December 7.
  4. Exercise 4, due December 21.
  5. Exercise 5, due January 4, 2000.
  6. Exercise 6, due January 30, 2000.
  7. Final Test
  8. Final Test - Moed B

Syllabus:

  1. Undecidability.
  2. Time and Space Complexity.
  3. Complexity classes. We will cover some of subjects below:

Lectures:

  1. Introduction.
  2. Definition of Turing Machines and Recursive languages
  3. Church Thesis: Equivalence of TMs, Multi-tape TMS, non-deterministic TMs, and RAMS.
  4. L_ACCEPT is undecidable.
  5. More undecidable languages, Reductions.
  6. Tiling is undecidable.
  7. Rice Theorem, Definition of time and space classes.
  8. Relations between time and space classes, linear speed-up.
  9. Simulation of space-bounded non-deterministic TMs: Savitch's and Immerman-Szelepcsenyi's Theorems.
  10. Time and space hierarchies.
  11. Borodin's Gap theorem and transaltions lemmas.
  12. Definitions of P and NP.
  13. On NP-completeness.
  14. SAT is NP-complete.
  15. More NP-complete laguages.
  16. Self Reducibility, Unary laguages are not NP complete.
  17. coNP, PSPACE, TQBF is PSPACE complete.
  18. NL, log space reduction,
  19. CON is NL complete, Radomized algorithms.
  20. Schwartz-Zippel Algorithm. Checking if a number is pseudo-prime.
  21. Rabin algorithms for testing primality. The class RP.
  22. The class BPP.
  23. Approximation Algorithms -- Vertex Cover and set-cover.
  24. PCP and hardness of approximation.
  25. More approximation Algorithms -- Coloring 3-colorable graphs and Knapsack.
  26. Cryptograph and Complexity

Grades:

Final exam, 70%. Students MUST PASS the exam to pass the course.
Homework assignments, 30%. There will be 6 homework assignments.

Pre-requirements:

The course in intended for graduate students. Good third year undergrad students who are interested in theoretical computer science can join after speaking with me. Automata and formal languages course and algorithms course are required.

Books:

  1. C. H. Papadimitriou. Computational Complexity. Addison-Wesley, 1994.
  2. M. Sipser. Introduction to the Theory of Computation. PWS Publishing Company, 1997.
  3. J. E. Hopcroft and J. D. Ullman. Introduction to Automata Theory, Languages, and Computations.
  4. M.R. Garey and D.S. Johnson. Computers and Intractability, a guide to NP-completeness. 1979.

Information:

Lectures hours: Tuesday 14:00-16:00, Building 32, Room 309,
Thursday 15:00-17:00, Building 28, Room 102.
Reception hours:Thursday 12:30-14:30, Building 58 (Math), Room 205.
E-mail: beimel at cs.bgu.ac.il
Phone: 647 7858
Course home page: http://www.cs.bgu.ac.il/~beimel/courses/complexity.html

Complexity courses on-line:

  1. Introduction to Complexity Theory, by Oded Goldreich in the Weizmann Institute.
  2. Advanced Complexity Theory, by Dan Spielman in MIT.
  3. Complexity of Computation, by Eric Allender in Rutgers.