Combinatorial Optimization
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
NIE-KOP | Z,ZK | 6 | 3P+1C | English |
- Course guarantor:
- Petr Fišer
- Lecturer:
- Petr Fišer, Jan Schmidt
- Tutor:
- Petr Fišer, Jan Schmidt
- Supervisor:
- Department of Digital Design
- Synopsis:
-
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.
- Requirements:
-
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. Discrete optimization, examples of practical tasks. Combinatorial problems. Algorithm complexity, problem complexity.
2. Models of computation. The classes P and NP. Polynomial hierarchy.
3. The notion of completeness. Complexity comparison techniques. The classes NP-complete, NP-hard and NPI.
4. Communication and circuit complexity.
5. The classes PO and NPO and their structure. Deterministic approximation algorithms. Classification of approximative problems. Pseudopolynomial algorithms. Randomization and randomized algorithms.
6. Practical deployment of heuristic and exact algorithms. Experimental evaluation.
7. State space and search space, exact methods.
8. Local methods: heuristics.
9. Simulated annealing.
10. Simulated evolution: taxonomy, genetic algorithms.
11. Advanced genetic algorithms: competent GA, fast messy GA, Stochastic optimization: models and applications. Bayesian optimization.
12. Tabu search.
13. Global methods, taxonomy of decomposition-based methods. Exact and heuristic global methods, the Davis-Putnam procedure seen as a global method.
- Syllabus of tutorials:
-
1. Seminar: terminology, examples of complexity.
2. Seminar: examples of state space.
3. Homework consultation when required, self-study: dynamic programming revision.
4. Solved problems session: the classes P and NP, complexity proofs, problems beyond NP.
5. Solved problems session: completeness, reductions.
6. Homework consultation when required.
7. Homework consultation when required.
8. Homework consultation when required.
9. Midterm test.
10. Homework consultation when required.
11. Solved problems session: advanced heuristics, applications.
12. Homework consultation when required.
13. Homework consultation when required.
14. 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. Hromkovič, 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.
- Note:
- Further information:
- https://moodle-vyuka.cvut.cz/course/view.php?id=11791
- Time-table for winter semester 2024/2025:
-
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Mon Tue Wed Thu Fri - Time-table for summer semester 2024/2025:
- Time-table is not available yet
- The course is a part of the following study plans:
-
- Master specialization Software Engineering, in English, 2021 (compulsory course in the program)
- Master specialization Computer Security, in English, 2021 (compulsory course in the program)
- Master specialization Computer Systems and Networks, in English, 2021 (compulsory course in the program)
- Master specialization Design and Programming of Embedded Systems, in English, 2021 (compulsory course in the program)
- Master specialization Computer Science, in English, 2021 (compulsory course in the program)
- Master Specialization Digital Business Engineering, 2023 (compulsory course in the program)
- Master Programme Informatics, unspecified Specialization, in English, 2021 (compulsory course in the program)
- Master specialization Computer Science, in English, 2024 (compulsory course in the program)