This is a basic course on the theory of algorithms, computability and computational complexity. Roughly the first
half of the course is devoted to the introduction to computability theory: Turing machines. Computable functions.
Recursive and recursively enumerable languages and sets. Undecidable problems. The second half of the
course is devoted to the study of space and time complexity classes: Equivalence of PSPACE and NPSPACE.
Deterministic hierarchy theorems. Class NP. Polynomial reducibility among problems. Proofs of NP-
completeness. Approximation algorithms and approximation schemes.
Last update: T_KTI (28.04.2015)
Přednáška seznamující se základy teorie algoritmů, efektivní vyčíslitelnosti a teorie složitosti. První část přednášky
je věnována základům vyčíslitelnosti: Turingovy stroje. RAM. Rekurzivní a rekurzivně spočetné jazyky a množiny.
Algoritmicky nerozhodnutelné problémy. Druhá část přednášky je věnována studiu tříd časové a prostorové
složitosti: Ekvivalence PSPACE a NPSPACE. Věty o hierarchiích. Třída NP. Polynomiální převoditelnost problémů.
Důkazy NP-úplnosti. Aproximační algoritmy a schémata.
Last update: T_KTI (28.04.2015)
Aim of the course -
To teach basics of complexity theory and theory of computation.
Last update: Kučera Petr, RNDr., Ph.D. (04.09.2014)
Naučit základy teorie složitosti a vyčíslitelnosti.
Last update: T_KTI (23.05.2008)
Course completion requirements -
To finish the subject it is necessary to get the credit and then to pass the exam. To get get the credit, it is necessary to acquire a given number of points for homework which are being solved during the semester. In case a student does not have enough points at the end of semester, it is possible to get some additional points for additional homework. Due to the nature of conditions for getting the credit it is not possible to have substitute dates of obtaining the credit. It is necessary to have the credit before coming to exam. Exam is oral although the oral part may be preceded with a written test. Depending on the current situation, it is possible that the exam will proceed remotely.
Last update: Kučera Petr, RNDr., Ph.D. (18.09.2020)
Ke splnění předmětu je nutné získat zápočet a následně složit zkoušku. K získání zápočtu je potřeba získat požadovaný počet bodů za domácí úkoly řešené během semestru. V případě nedostatečného počtu bodů na konci semestru je možno některé z domácích úkolů nahradit řešením doplňkových domácích úkolů. Vzhledem k povaze kontroly studia předmětu nejsou náhradní termíny zápočtu přípustné. K zapsání na zkoušku je nutné mít zápočet. Zkouška je ústní, přičemž ústní části může předcházet písemná. S ohledem na situaci může zkouška proběhnout distančně.
Last update: Kučera Petr, RNDr., Ph.D. (18.09.2020)
Garey, Johnson. Computers and intractability - a guide to the theory of NP-completeness, W.H. Freeman 1978
Arora S., Barak B.: Computational Complexity: A Modern Approach. Cambridge University Press 2009 (Draft ke stažení online).
Last update: Töpfer Pavel, doc. RNDr., CSc. (25.05.2022)
Requirements to the exam -
The exam has two parts, the written part and the oral part. The written part precedes the oral part and in case when a student fails to pass the written part, the exam does not continue with the oral part. In case the exam is finished due to failing the oral part, it is necessary to pass both the written part and the oral part at the next exam. Grade depends on the number of points given for both parts.
The written part consists of three assignments which correspond to the lecture syllabus. These assignments are similar to the exercises which are given during the practicals.
The requirements of the oral part correspond to the lecture syllabus to extent which was presented on the lecture during the semester. A list of possible questions is published at the web pages related to the subject before the exam period starts.
Last update: Kučera Petr, RNDr., Ph.D. (08.10.2017)
Zkouška sestává z písemné a ústní části. Písemná část předchází části ústní, její nesplnění znamená, že celá zkouška je hodnocena známkou nevyhověl(a) a ústní částí se již nepokračuje. Nesložení ústní části znamená, že při příštím termínu je nutno opakovat obě části zkoušky, písemnou i ústní. Známka ze zkoušky se stanoví na základě bodového hodnocení písemné i ústní části.
Písemná část bude sestávat ze tří příkladů z témat, která korespondují se sylabem přednášky a současně odpovídají tomu, co bylo procvičováno na cvičení.
Požadavky u ústní části zkoušky odpovídají sylabu předmětu v rozsahu, který byl prezentován na přednášce. Seznam možných otázek bude zveřejněn před začátkem zkouškového období na stránkách k předmětu.
Last update: Kučera Petr, RNDr., Ph.D. (08.10.2017)
Syllabus -
1. Turing machines and their variants, Church-Turing thesis
2. Halting problem and other undecidable problems
3. RAM and their equivalence with Turing machines. Algorithmically computable functions
4. Decidable and partially decidable enumerable languages and their properties