Combinatorial Optimization

Login to KOS for course enrollment Display time-table
Code Completion Credits Range Language
NI-KOP Z,ZK 6 2P+2C Czech
Garant předmětu:
Jan Schmidt
Jan Schmidt
Jaroslav Borecký, Petr Fišer, Robert Hülle, Jaroslav Pešek, Jan Schmidt
Department of Digital Design

The students will gain knowledge and understanding necessary deployment of combinatorial heuristics at a professional level. They will be able not only to select and implement but also to apply and evaluate heuristics for practical problems.


Basic notions: algorithm, computational complexity, asymptotic complexity. Formal languages. Basic graph theory. Random variable. Boolean logic. Branch and bound algorithm. Basic dynamic programming. Practical programming in any imperative language.

Syllabus of lectures:

1. Combinatorial problems and algorithms, course introduction.

2. Experimental evaluation of algorithms.

3. The classes P and NP. Complementary problems. Polynomial hierarchy.

4. The classes NP-complete, NP-hard and NPI.

5. The classes PO and NPO. Classes of approximative problems. Deterministic approximation algorithms.

6. State space, search space, motion in state space, local heuristics, branch and bound.

7. Randomization and randomized algorithms. Experimental deployment of parametrized heuristics.

8. Simulated annealing.

9. Simulated evolution I: taxonomy, genetic algorithms.

10. Simulated evolution II: evolution strategies, genetic programming.

11. Simulated evolution III: building blocks theory, competent GA, fast messy GA. Stochastic optimization: models and applications. Bayesian optimization.

12. Global methods, taxonomy of decomposition-based methods. Exact and heuristic global methods, the Davis-Putnam procedure seen as a global method.

13. Constraint Satisfaction Problem

Syllabus of tutorials:

1. Introduction, Satisfiability Problem (SAT), Knapsack Problem.

2. Problem examples, finding configuration variables.

3. Simple SAT algorithms: evaluation on a single instance.

4. Simple SAT algorithms: evaluation on ensembles.

5. Classes P, NP, NPC, NPH, completeness, reductions.

6. State space

7. Midterm test.

8. Simulated annealing: deployment and evaluation I

9. Homework consultation when required.

10. Simulated annealing: deployment and evaluation II

11. Simulated evolution: deployment and evaluation I

12. Simulated evolution: deployment and evaluation I

13. Backup test term, evaluation.

Study Objective:

Many practical tasks are computationally infeasible. The course is about fast algorithms for such problems, both exact and heuristic. Heuristic algorithms tend to be simple to program, but difficult to configure and deploy. Their successful application requires a deeper understanding of their operation and complexity theory. A series of individual works guides the student from simple techniques to solutions of practically significant problems.

Study materials:

1. Arora, S. : Computational Complexity: A Modern Approach. Cambridge University Press, 2017. ISBN 978-1316612156.

2. Hromkovic, J. : Algorithmics for Hard Problems: Introduction to Combinatorial Optimization, Randomization, Approximation, and Heuristics 2nd Edition. Springer, 2004. ISBN 978 3540441342.

3. Kučera, L. : Kombinatorické algoritmy. SNTL, 1993.

4. Ausiello, G. - Crescenzi, P. - Kann, V. - Gambosi, G. - Spaccamela, A. M. : Complexity and Approximation: Combinatorial Optimization Problems and Their Approximability Properties. Springer, 2003. ISBN 3540654313.

Further information:
Time-table for winter semester 2024/2025:
Time-table is not available yet
Time-table for summer semester 2024/2025:
Time-table is not available yet
The course is a part of the following study plans:
Data valid to 2024-06-16
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/en/predmet6085706.html