Theory of Computation 2023
Colloquium and exam
Colloquium: on 12.12 or 19.12 at the time of the lecture, you can choose your time.
Exam: Date TBA. Copies of Sipser's book, Arora&Barak, Mertens&Moore, chapts 1 and 2 of Roughgarden will be available. Sample exam.
Tasks are in the seminar sheets. Problem lists 1 and 2 on 19.09, lists 3 and 4 on 03.10, lists 5 and 6 on 17.10, lists 7 and 8 on 07.11, lists 9 and 10 on 21.11, lists 11 and 12 on 05.12.
The main reference is Sipser's book "Introduction to the theory of computation", chapters 3, 4, 7–10.
For students abroad: the first 5 lectures are covered in chapters 3, 4, 7 and 9.1. Other lectures will be recorded. See also recordings of previous year.
|05.09||Turing machines, multitape Turing machines, connection between them. Universal Turing machine. Examples. Time and space complexity. Complexity classes P, PSPACE, EXP.||problem list 1update 05.09|
|12.09||Time and space hierarchy theorems. Time and space constructible functions.||problem list 2|
|19.09||Complexity class NP. Examples. Non-deterministic machines and another definition of NP. Polynomial reductions. NP-hardness and NP-completeness.||problem list 3|
|26.09||NP-completenes of independent set, vertex cover, dominating set, NAE-3SAT, 3colorability.||problem list 4update 27.09|
|03.10||Circuit complexity. Classes AC^i, NC^i, P/poly. All functions are computed by circuits. Existence of functions with exponential circuit complexity. NC1 = Boolean formulas of polynomial size. P is in P/poly (without proof). Addition in AC0. Multiplication is in NC1. circuit_notes.pdf||problem list 5update 17.10|
|10.10||Proof that P is in P/poly. Proof of Cook Levin theorem. NP-completeness of: exact 1-in-3SAT, subsetsum, Hamiltonian path. Strong NP-completeness. coNP and coNP-completeness.||problem list 6|
|17.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 7update 25.10|
|24.10||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 8|
|07.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 9|
|14.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.||problem list 10|
|21.11||Streaming algorithms I: finding the majority element, computing the sum of the last n numbers, computation of the number of different elements in logarithmic space. The median trick. Morris'es algorithm. See Chapts 6.1-6.2 in foundations of datascience by Avrim Blum and others. Another nice chapter in Tim Roughgarden's lecture notes||problem list 11|
|28.11||Streaming algorithms II: Again counting different elements, see theorem 1 here. Lower bounds using communication complexity. See chapt 1 in Roughgarden's lecture notes||problem list 12|
|05.12||Finishing previous lecture (bounds on communication complexity). See chapt 2 in the same notes Consultation: ask anything about the course.||problem list 13|
|12.19||Colloquium (You may choose between 12-19.12)|
|Rec||Software engineering: parameterized complexity||Problem list|
|06.02?||The classes FPT and XP. Kernelization. Examples for vertex cover and k-paths problem. presentation.|
|13.02?||FPT algorithms for feedback vertex set and k-path problem, linear programming kernel for vertex cover,|
|20.02?||W and W-hardness, lower bounds using the exponential time hypothesis.|
|27.02?||Treewidth, dynamic programming, (programming) projects.|
Project (for PI students)
During the 3rd module Januari till March 2023 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.
Both books below contain a lot of extra materials and describe more recent discoveries in computational complexity. The first book has a gentle and pleasant style. The second book is a rigorous textbook for students theoretical computer science at the beginning master level.
C. Moore and S. Mertens, The nature of computation, 2011.
S. Arora and B. Barak, Computational Complexity: A Modern Approach, 2009.
This is an advanced textbook with background on parameterized algorithms.
M. Cygan, F. Fomin and 6 others, Parameterized algorithms, 2016
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.25 * [score homework] + 0.25 * [score colloquium] + 0.25 * [score exam] + 0.25 * [score project]
Some homework assignments contain extra problems. Each solution of an extra problem will give 1 extra point on the final exam. There will be around 6 extra problems.
Rounding. Only final grades are rounded. 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.
Bruno Bauwens: Wednesdays 13h00-16h30. Fridays 14h-20h. Better send me an email in advance.
Nikita Lukianenko: Write in telegram.