Experience with basic techniques for design and analysis of algorithms (recursion, dynamic programming, greedy approach) as well as with basic data structures and algorithms are required.
Course Enrolment Limitations
The course is also offered to the students of the fields other than those the course is directly associated with.
Fields of study the course is directly associated with
there are 24 fields of study the course is directly associated with, display
The course expands on courses IB002 Algorithms and Data Structures I and IV003 Algorithms and Data Structures II. It focuses on design of algorithms for hard computing tasks. The course systematically explains, combines, and compares the main
possibilities for attacking hard algorithmic problems like randomization, heuristics, approximation and local search.
After enrolling the course students are able to :
- identify algorithmically hard problems,
- identify applications where pseudopolynomial, approximative, randomized, and heuristic algorithms can be succesfully used,
- actively used published pseudopolynomial, approximative, and randomized algorithms and correctly interpret their outcomes,
- design simple pseudopolynomial, approximative, and randomized, algorithms,
- experimentally evaluate heuristic algorithms.
Deterministic approaches: pseudo-polynomial-time algorithms,
parametrized complexity, branch-and-bound, lowering worst case
complexity of exponential algorithms.
Approximation approaches: concept of approximation algorithms,
classification of optimization problems, stability of approximation,
inapproximability, algorithms design. Linear programming as a method for construction of approximative algorithms.
Randomized approaches: classification of randomized algorithms
and design paradigms, design of randomized algorithms, derandomization, randomization and approximation.
Heuristics: local search, simulated annealing, genetic algorithms.
D. Williansom, D. Shmoys. The Design of Approximation Algorithms. Cambridge, 2011
VAZIRANI, Vijay V. Approximation algorithms. Berlin: Springer, 2001. xix, 378. ISBN 3540653678. info
MOTWANI, Rajeev and Prabhakar RAGHAVAN. Randomized algorithms. Cambridge: Cambridge University Press, 1995. xiv, 476. ISBN 0521474655. info
HROMKOVIČ, Juraj. Algorithmics for hard problems : introduction to combinatorial optimization, randomization, approximation, and heuristics. Berlin: Springer, 2001. xi, 492. ISBN 3540668608. info
CORMEN, Thomas H., Charles E. LEISERSON and Ronald L. RIVEST. Introduction to algorithms. Cambridge: MIT Press, 1989. xvii, 1028. ISBN 0070131430. info
COOK, William. In pursuit of the traveling salesman : mathematics at the limits of computation. Princeton: Princeton University Press, 2012. xiii, 228. ISBN 9780691152707. info
CHVÁTAL, Vašek. Linear programming. New York: W.H. Freeman, 1983. xiii, 478. ISBN 0716715872. info
KLEINBERG, Jon and Éva TARDOS. Algorithm design. Boston: Pearson/Addison-Wesley, 2006. xxiii, 838. ISBN 0321372913. info
lectures, individual homeworks and projects aiming at practical skills with designe techniques