Logo ČVUT
CZECH TECHNICAL UNIVERSITY IN PRAGUE
STUDY PLANS
2025/2026

Introduction to Computational Complexity

The course is not on the list Without time-table
Code Completion Credits Range Language
NI-ICC Z,ZK 6 2P+1C+1L Czech
Course guarantor:
Lecturer:
Tutor:
Supervisor:
Department of Theoretical Computer Science
Synopsis:

On-site lectures and tutorials supported by an e-learning platform with materials, streamed and recorded lectures, and proseminars. Emphasis is placed on active student engagement and discussion.

Requirements:
Syllabus of lectures:

1. Deterministic Turing machines, computation, and the universal Turing machine.

2. Undecidability, the Halting problem, time complexity, class P, Time Hierarchy Theorem (without proof).

3. Nondeterministic Turing machines, computation, and the universal Turing machine; examples of computations; class NP.

4. Many-one reductions, NP-hardness and NP-completeness, Cooks theorem (without proof), examples of reductions (Independent Set, etc.).

5. Influence of numeric input strong and weak NP-hardness, pseudopolynomial algorithms (dynamic programming for the knapsack problem and related problems).

6. Space complexity, classes DSPACE and NSPACE, Savitchs theorem.

7. Solving hard problems using SAT solvers.

8. Solving hard problems using ILP solvers.

9. Mildly exponential algorithms for hard problems. Held-Karp algorithm. Use of the principle of multiple inclusion. Efficient recursive algorithms.

10. Approximation algorithms for hard problems. Examples for Vertex Cover using LP and for other problems such as k-Center.

11. FPT algorithms and kernelization for hard problems. Examples for Vertex Cover and possibly other problems.

12. Heuristic methods for tackling hard problems. Local Search and its variants. Metaheuristics.

13. Oracle Turing machines and the polynomial hierarchy.

Syllabus of tutorials:
Study Objective:

The aim of the course is to introduce students to the fundamental concepts of computability theory and the basics of complexity theory, particularly undecidability, NP-hardness, and NP-completeness. It also covers the fundamentals of space complexity. The course then presents various approaches to tackling hard computational problems in particular, SAT and ILP solvers, the design of mildly exponential algorithms, approximation algorithms, parameterized algorithms, and heuristics.

Study materials:

1. Arora, S., Barak, B: Computational Complexity: A Modern Approach. Cambridge University Press, 2009. ISBN 0521424267.

2. Wigderson, A.: Mathematics and Computation: A Theory Revolutionizing Technology and Science. Princeton University Press, 2019. ISBN 9780691189130.

3. Goldreich, O.: Computational Complexity: A Conceptual Perspective. Cambridge University Press, 2008. ISBN 052188473X.

Note:
Further information:
bude doplněno
No time-table has been prepared for this course
The course is a part of the following study plans:
Data valid to 2026-02-05
For updated information see http://bilakniha.cvut.cz/en/predmet8587806.html