Theory of Algorithms
Code  Completion  Credits  Range  Language 

B4M01TAL  Z,ZK  6  3P+2S  Czech 
 Garant předmětu:
 Lecturer:
 Tutor:
 Supervisor:
 Department of Mathematics
 Synopsis:

The course brings theoretical background of the theory of algorithms with the focus at first on the time and space complexity of algorithms and problems, secondly on the correctness of algorithms. Further it is dealt with the theory of complexity; the classes P, NP, NPcomplete, PSPACE and NPSPACE are treated and properties of them investigated. Probabilistic algorithms are studied and the classes RP and ZZP introduced.
 Requirements:
 Syllabus of lectures:

1. Analyzing algorithms and problems, classifying functions by their growth rates, time and space complexity.
2. Correctness of algorithms, variants and invariants.
3. Decision problems and optimization problems.
4. Turing machine and its variants.
5. Relation between Turing machine and RAM machine.
6. Classes P and NP.
7. Reduction and polynomial reduction of problems.
8. NPcomplete problems, Cook's Theorem.
9. Classes PSPACE and NPSPACE..
10. Randomized algorithms with polynomial time complexity.
11. Classes RP and ZZP.
12. Undecidable problems.
13. Reserve.
 Syllabus of tutorials:

1. Determining time and space complexity of well known algorithms.
2. Verifying correctness of algorithms using variants and invariants.
3. Turing machines.
4. Polynomial reductions of problems.
5. Examples of randomized algorithms.
6. Examples of undecidable problems.
 Study Objective:
 Study materials:

[1] Kozen, D. C.: The design and Analysis of Algorithms, SpringerVrelag, 1991
[2] Harel, D: Algorithmics: The Spirit of Computing, AddisonWesleyt Inc., Reading MA 2002
[3] Talbot, J., Welsh, D.: Complexity and Cryptography, Cambridge University Press, 2006
 Note:
 Further information:
 http://math.feld.cvut.cz/demlova/teaching/tal_vyuka.html pro ceskou verzi, https://math.feld.cvut.cz/demlova/teaching/etal_vyuka.html for english version
 No timetable has been prepared for this course
 The course is a part of the following study plans:

 Open Informatics  HumanComputer Interaction (compulsory course in the program)
 Open Informatics  Cyber Security (compulsory course in the program)
 Open Informatics  Computer Graphics (compulsory course in the program)
 Open Informatics  Computer Engineering (compulsory course in the program)
 Open Informatics  Computer Vision and Image Processing (compulsory course in the program)
 Open Informatics  Software Engineering (compulsory course in the program)
 Open Informatics  Artificial Intelligence (compulsory course in the program)
 Open Informatics  Bioinformatics (compulsory course in the program)
 Open Informatics  Data Science (compulsory course in the program)