Course detail

Complexity (in English)

FIT-SLOaAcad. year: 2018/2019

Turing machines as a basic computational model for computational complexity analysis, time and space complexity on Turing machines. Alternative models of computation, RAM and RASP machines and their relation to Turing machines in the context of complexity. Asymptotic complexity estimations, complexity classes based on time- and space-constructive functions, typical examples of complexity classes. Properties of complexity classes: importance of determinism and non-determinism in the area of computational complexity, Savitch theorem, relation between non-determinism and determinism, closure w.r.t. complement of complexity classes, proper inclusion between complexity classes. Selected advanced properties of complexity classes: Blum theorem, gap theorem. Reduction in the context of complexity and the notion of complete classes. Examples of complete problems for different complexity classes. Deeper discussion of P and NP classes with a special attention on NP-complete problems (SAT problem, etc.). Relationship between decision and optimization problems. Methods for computational solving of hard optimization problems: deterministic approaches, approximation, probabilistic algorithms. Relation between complexity and cryptography.  Deeper discussion of PSPACE complete problems, complexity of formal verification methods.

Language of instruction

English

Number of ECTS credits

5

Mode of study

Not applicable.

Offered to foreign students

Of all faculties

Learning outcomes of the course unit

Understanding theoretical and practical limits of arbitrary computational systems. Ability to use a selected methods for computationally hard problems.

Prerequisites

Formal language theory and theory of computability on master level.

Co-requisites

Not applicable.

Planned learning activities and teaching methods

Not applicable.

Assesment methods and criteria linked to learning outcomes

  • 4 projects - 8 points each (recommended minimal gain is 15 points).
  • Final exam: max. 68 points

Course curriculum

Not applicable.

Work placements

Not applicable.

Aims

Familiarize students with the complexity theory, which is necessary to understand practical limits of algorithmic problem solving on physical computational systems.
Familiarize students with a selected methods for solving hard computational problems.

Specification of controlled education, way of implementation and compensation for absences

Not applicable.

Recommended optional programme components

Not applicable.

Prerequisites and corequisites

Basic literature

Not applicable.

Recommended reading

Not applicable.

Classification of course in study plans

  • Programme IT-MSC-2 Master's

    branch MBI , 0 year of study, summer semester, elective

  • Programme IT-MGR-1H Master's

    branch MGH , 0 year of study, summer semester, recommended course

  • Programme IT-MSC-2 Master's

    branch MSK , 0 year of study, summer semester, elective
    branch MMM , 0 year of study, summer semester, compulsory-optional
    branch MBS , 0 year of study, summer semester, elective
    branch MPV , 0 year of study, summer semester, elective
    branch MIS , 1 year of study, summer semester, elective
    branch MIN , 0 year of study, summer semester, compulsory-optional
    branch MGM , 0 year of study, summer semester, elective

  • Programme IT-MSC-2 Master's

    branch MGMe , 0 year of study, summer semester, compulsory-optional

Type of course unit

 

Lecture

26 hod., optionally

Teacher / Lecturer

Syllabus

  1. Introduction. Complexity, time and space complexity.
  2. Matematical models of computation, RAM, RASP machines and their relation with Turing machines.
  3. Asymptotic estimations, complexity classes, determinism and non-determinism from the point of view of complexity.
  4. Relation between time and space, closure of complexity classes w.r.t. complementation, proper inclusion of complexity classes.
  5. Blum theorem. Gap theorem.
  6. Reduction, notion of complete problems, well known examples of complete problems.
  7. Classes P and NP. NP-complete problems. SAT problem.
  8. Travelling salesman problem, Knapsack problem and other important NP-complete problems
  9. NP optimization problems and their deterministic solution: pseudo-polynomial algorithms, parametric complexity
  10. Approximation algorithms.
  11. Probabilistic algorithms, probabilistic complexity classes.
  12. Complexity and cryptography
  13. PSPACE-complete problems. Complexity and formal verification.

Project

26 hod., compulsory

Teacher / Lecturer

Syllabus

4 projects dedicated on different aspects of the complexity theory.