Theory of Computation 2024
Содержание
Classes
Lectures: Wednesdays 18h10 in Pokrovkaya room N507 and in zoom by Bruno Bauwens.
Seminars: After the lecture in room N507 and on the same zoomlink by Yaroslav Ivanashev
Telegram group for announcements and discussions invite link. The course is similar to last year's one For PI students the course is called computational complexity and has a 2nd part in Febr--March 2025.
Homeworks
Homework problems of lists 7 and 8 may be submitted by Nov 27th
Deadlines: every 2 weeks, before the lecture at 18h00. Submit in pdf or fotos of handwritten text in google classrooms. Results. Questions: Yaroslav Ivanashev.
Tasks are in the problem lists from the seminar. Deadlines: problem lists 1 and 2: at the start of 3rd lecture, lists 3 and 4 at the start of the 5th lecture, etc.
Late policy: 1 homework can be submitted at most 24h late without explanations.
Course Materials
The main reference is Sipser's book "Introduction to the theory of computation", chapters 3, 4, 7–9.
If you need some background in math, consider: Lecture notes: Discrete Mathematics, L. Lovasz, K. Vesztergombi and Лекции по дискретной математике (черновик учебника, in Russian)
| Rec | Summary | Problem list |
|---|---|---|
| 23.09 | Turing machines, multitape Turing machines, connection between them. Universal Turing machine. Examples. Time and space complexity. Complexity classes P, PSPACE, EXP. Notes | problem list 1 |
| 25.09 | Simulating k-tape Turing on 1-tape. Undecidability of the Halting problem. Time and space hierarchy theorems. Notes | problem list 2 Update 02.10 |
| 02.10 | Complexity class NP. Examples. Non-deterministic machines and another definition of NP. Polynomial reductions. NP-hardness and NP-completeness. | problem list 3 |
| 10.10 | NP-completenes of NAE-3SAT, 3colorability, subsetsum, knapsack, Hamiltonian cycle. Circuits: examples, class P/poly, all functions have exponential circuits. https://www.dropbox.com/scl/fi/ulrlsa5tw7kz1x0aj7bp1/circuits.pdf?rlkey=q3cx7akryx9hnsgc19yhvv0e3&dl=0 circuit_notes.pdf] | problem list 4 |
| 17.10 | Circuit complexity. Classes AC^i and NC^i. Some functions have exponential circuit complexity. NC1 = Boolean formulas of polynomial size. Addition in AC0. Multiplication is in NC1. P is in P/poly. 3SAT is NP-complete. circuit_notes.pdf | problem list 5 |
| 23.10 | Directed Reachability is in SPACE(log^2 n). TQBF problem, its PSPACE-completeness. PSPACE = NPSPACE. NSPACE(s(n)) is in SPACE(s(n)^2) for space constructible s. | problem list 6 |
| 06.11 | Oracle computation definitions. There exists an oracle A for which PA = NPA. There is an oracle B such that PB is not equal to NPB. | problem list 7 |
| 13.11 | Probabilistic computation. Probabilistic machines, the class BPP, invariance of the definition BPP for different thresholds, RP, coRP, PP, ZPP. BPP is in P/poly. Most of it is also here | problem list 8 |
| 20.11 | Approximation algorithms. Definition c-approximation algorithm. 2-approximation for vertex cover and greedy vertex cover is not optimal. (ln n + 1)-approximation for set cover. PTAS for the makespan problem. Based on MIT lecture. | |
| 27.11 | Parameterized complexity: The classes FPT and XP. Kernelization. Examples for vertex cover. presentation. | |
| 04.12 | Parameterized complexity, techniques for obtaining FPT algorithms: branching (feedback vertex), color coding (k-path problem), dynamic programming (set cover) | |
| 11.12 | Colloquium. Rules and questions. Shedule. | Sample exam |
| 11.19 | Colloquium. |
Artem Perfanov's lecture summaries source (Disclaimer: I did not check them):
| Date | Software engineering: parameterized complexity | Problem list |
|---|---|---|
| ??.02 | Recap from last lecture, more examples of kernels. | |
| ??.02 | Linear programming kernel for vertex cover, tree decompositions | |
| ??.02 | hardness from ETH (exponential time hypothesis) and W-hierarchy |
Project (for PI students)
During the 3rd module Januari till March 2024 there are projects where you need to implement algorithms from parameterized complexity. (For example, for the vertex cover algorithm and disjoint paths problems.) A grader will check whether your algorithm reaches certain time limits.
There are 3 tasks: 2 of them about branching and kernelization, 1 task about linear programming bounds. See the table with lectures. The tasks have equal weight for the grade.
Deadline March 31st, 23h59.
Additional reading
Recall that the most important book for our course is Sipser, Introduction to the theory of computation 3rd edition, 2013, chapters 3, 4, 7–9. This book is intended for Bachelor students.
The following book is popular with students theoretical computer science, because it contains most materials of our course in a concise way. Moreover, it presents many important advanced topics. I find the style of some proofs rather technical, but I like the topics in this book.
S. Arora and B. Barak, Computational Complexity: A Modern Approach, 2009
The course materials can also be found in various chapters of the following massive book (700 pages). It starts at beginning bachelor level and ends at an advanced master level. It is written in a pleasant style with excellent examples.
C. Moore and S. Mertens, The nature of computation, 2011.
This book gives an introduction to important recent research directions in computational hardness. It also studies specific topics (games and planar problems) in huge detail.
E. Demaine, W Gasarch, Haijaghayi, Computational intractability: a guide to lower bounds, 2023 current draft
This is an advanced textbook with background on parameterized algorithms.
M. Cygan, F. Fomin and 6 others, Parameterized algorithms, 2016
Grading
For AMI students:
Final score = 0.35 * [score homework] + 0.35 * [score colloquium] + 0.3 * [score exam]
For PI students (the course is called "computational complexity" and takes 3 modules):
Final score = 0.3 * [score homework] + 0.3 * [score colloquium] + 0.2 * [score exam] + 0.2 * [score project]
Some homework assignments contain extra problems. Each solution of an extra problem will give 0.5 extra points on the final exam (which is graded out of 10). There will be around 10 extra problems. Rounding is applied only when the final score is transferred to the official grade. Arithmetic rounding is used. Autogrades. If only 6/10 for the exam is needed to get a final score of 10/10, then this will be given automatically.
Colloquium and exam
Colloquium: in the middel of December, a list with about 20 questions will be provided. Last year's rules and questions.
Exam: Copies of Sipser's book, Arora&Barak, Mertens&Moore, will be available. (I you have these books or printed parts of them, please bring it.) Also, personal handwritten notes are allowed, but nothing else. Sample exam.
Office hours
Bruno Bauwens: Tuesday 12h -- 20h. Wednesday 16h -- 18h. Friday 11h -- 17h. Better send me an email in advance.
Yaroslav Ivanashev: Write in telegram.