Theory of computation 2025 — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
Строка 55: Строка 55:
 
[https://drive.google.com/file/d/1TPC6D_81PrklhjlTfrfnEzE4_5vm3vPS/view?usp=drive_link problem list 9]
 
[https://drive.google.com/file/d/1TPC6D_81PrklhjlTfrfnEzE4_5vm3vPS/view?usp=drive_link problem list 9]
 
|-
 
|-
  || [https://youtube.com/live/r9rP3ZojeqY 28.11] || Parameterized complexity: The classes FPT and XP. Kernelization. Examples for vertex cover.  [https://drive.google.com/file/d/1W9SU24HW0r5QhugzmrghpkzJUFuC8whq/view?usp=sharing Notes.] || [https://drive.google.com/file/d/12GnrF5dpVZjMsHfG4Y6jmT3P6jsc8jjm/view?usp=drive_link problem list 10]  
+
  || [https://youtube.com/live/r9rP3ZojeqY 28.11] || Parameterized complexity: The classes FPT and XP. Kernelization. Examples for vertex cover.  [https://drive.google.com/file/d/1W9SU24HW0r5QhugzmrghpkzJUFuC8whq/view?usp=sharing Notes.] This year's [https://rutube.ru/video/private/18c6e2b7e1222f3411afbc933f317631/?p=9KNQCTTbSP-nKD-gg6tDOw recording]. || [https://drive.google.com/file/d/12GnrF5dpVZjMsHfG4Y6jmT3P6jsc8jjm/view?usp=drive_link problem list 10]  
 
|-
 
|-
  || [https://youtube.com/live/E4aNlvbYoLQ 05.12] || Parameterized complexity: W-hierarchy, hardness from the exponential time hypothesis. [https://drive.google.com/file/d/1f-085Gr7E01HepUR-brGJDet-fXJzUwb/view?usp=sharing presentation] [https://drive.google.com/file/d/1OIw7h31N2tt-npC0NrvVgNhYGw_HlJa_/view?usp=sharing Notes] (This year's [https://rutube.ru/video/private/18c6e2b7e1222f3411afbc933f317631/?p=9KNQCTTbSP-nKD-gg6tDOw recording].)|| [https://drive.google.com/file/d/1xhUYMsj0iV2TMZfR8FtkxWUNlcCjdS-N/view?usp=sharing problem list 11]  
+
  || [https://youtube.com/live/E4aNlvbYoLQ 05.12] || Parameterized complexity: W-hierarchy, hardness from the exponential time hypothesis. [https://drive.google.com/file/d/1f-085Gr7E01HepUR-brGJDet-fXJzUwb/view?usp=sharing presentation] [https://drive.google.com/file/d/1OIw7h31N2tt-npC0NrvVgNhYGw_HlJa_/view?usp=sharing Notes] || [https://drive.google.com/file/d/1xhUYMsj0iV2TMZfR8FtkxWUNlcCjdS-N/view?usp=sharing problem list 11]  
 
|-  
 
|-  
 
  || 12.12 || ''Colloquium.'' Also on 19.12. [https://drive.google.com/file/d/1no8CbHKJluGRx7FROpSS7BqXdjOVgdT1/view?usp=sharing Rules and questions.] (Same as last year.) Reserve a [https://docs.google.com/spreadsheets/d/1_vO5Q0wGkM0kU1OHNiP8lz24M4i-toLC2AmQg7tuRVE/edit?usp=sharing slot]. || [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam]  
 
  || 12.12 || ''Colloquium.'' Also on 19.12. [https://drive.google.com/file/d/1no8CbHKJluGRx7FROpSS7BqXdjOVgdT1/view?usp=sharing Rules and questions.] (Same as last year.) Reserve a [https://docs.google.com/spreadsheets/d/1_vO5Q0wGkM0kU1OHNiP8lz24M4i-toLC2AmQg7tuRVE/edit?usp=sharing slot]. || [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam]  

Версия 14:40, 29 ноября 2025

Classes

Lectures: Friday 13h00 - 14h20 in Pokrovkaya, see here for the room, and in zoom by Bruno Bauwens. Starting 19.09.

Seminars: Friday 14h40 - 16h00 in Pokrovkaya, see here for the room, and in zoom by Prof. Subin Pulari

Telegram group for announcements and discussions invite link. The course is similar to last year's one.

For students programming engineering this course is called "computational complexity theory" and the course has an extra part in the 3rd module.


Homeworks

Deadlines: every 2 weeks, before the lecture. Submit in pdf or fotos of handwritten text in google class.

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.

All homework scores are available in the following Google Sheet: link

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 Лекции по дискретной математике.

Rec Summary Problem list
19.09 Turing machines, multitape Turing machines, connection between them. Universal Turing machine. Examples. Time and space complexity. Complexity classes P, PSPACE, EXP. (Recording from previous year.) Notes problem list 1
26.09 Undecidability of the Halting problem. Time and space hierarchy theorems. See notes above. problem list 2
03.10 Complexity class NP. Examples. Non-deterministic machines and another definition of NP. Polynomial reductions. NP-hardness and NP-completeness. Notes, tex. problem list 3
10.10 NP-completenes of independent-set, NAE-3SAT, 3colorability, subsetsum, knapsack problem. Notes above. problem list 4 upd 10.10
17.10 Circuits 1: examples and all functions have exponential circuits. Classes P/poly, AC^i and NC^i. Some functions have exponential circuit complexity. Notes.pdf upd 28.10, tex. problem list 5
23.10 Circuits 2: NC0 = functions that depend on a constant number of inputs. P is in P/poly. 3SAT is NP-complete. Seminar: addition in AC0. Multiplication is in NC1. Notes above. Last year's video. see list 5
24.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 upd 28.10
07.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
14.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 and scribe1 scribe2 problem list 8 upd 20.11
21.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 9

28.11 Parameterized complexity: The classes FPT and XP. Kernelization. Examples for vertex cover. Notes. This year's recording. problem list 10
05.12 Parameterized complexity: W-hierarchy, hardness from the exponential time hypothesis. presentation Notes problem list 11
12.12 Colloquium. Also on 19.12. Rules and questions. (Same as last year.) Reserve a slot. Sample exam

Artem Parfenov's lecture summaries source (Disclaimer: I did not check them):

Date Software engineering: parameterized complexity, FPT algorithms Problem list
05.03 Recap from last lecture. More examples of kernels: linear programming kernel for vertex cover problem. programming task. presentation. problem list 12
12.03 Linear programming kernel for VC, color coding, dynamic programming. Colorcoding from slide 39 problem list 13
19.03 Optional: problems that are FPT on graphs with small treewidth.(No recording, sorry.) problem list 14
Seminars (2025) Recording link
Seminar 4 link
Seminar 5 Part I: link
Part II: link
Seminar 6 link
Seminar 7 link
Seminar 8 link
Seminar 9 link
Seminar 10 link


Recordings last year

Exam

5 or 6 questions with the same difficulty as the homework questions. You have 3 hours time.

Each year, 1 of the questions is to prove that some problem is NP-complete. Do not forget to say why the problem is in NP.

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.


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). There are 2 scores for this course. The first one, given in December is calculated by the above formula (but probably it does not mean anything, I will ask about it). The second score is given below, and it is the one that will be in the diploma. It includes a programming project. The assignment and grader, will be set up by the end of Februari, the deadline is the end of March.

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.


Office hours

Bruno Bauwens: Tuesday 15h -- 21h. Friday 15h -- 18h.

Subin Pulari: Please contact via telegram or mail spulari@hse.ru