Přístupnostní navigace
E-application
Search Search Close
Course detail
FSI-SHE-AAcad. year: 2024/2025
The course is focused on heuristic optimization methods as a tool for solving complex problems in situations where classic exact methods cannot be used. Emphasis is placed not only on understanding the differences between exact algorithms, approximation methods and heuristic algorithms, but also on the way of specific programming implementation of heuristic algorithms. Here, attention is paid not only to the procedural side, but also to the design of suitable data structures.
Language of instruction
Number of ECTS credits
Mode of study
Guarantor
Department
Entry knowledge
The course expects basic knowledge of algorithms and computer literacy.
Rules for evaluation and completion of the course
The course-unit credit award requirements are both active participation in seminars and individual elaboration of two software projects in the C++ language. Students select their projects assignments, which are approved by the teacher. The examination is oral and consists of discussion on the created projects with possible complementary questions. The evaluation is fully in competence of a tutor according to the valid directives of BUT.
The attendance at lectures is recommended; the attendance at seminars is obligatory. Education runs according to week schedules. The form of compensation for missed seminars is fully in the competence of the tutor.
Aims
The main goal of the course is to understand the principle and philosophy of heuristic algorithms and their application in solving logistical problems. In addition, the ability to efficiently implement object-oriented heuristic algorithms in object-oriented programming languages like C++ or C# is emphasized.
After completing the course, students will understand the differences between exact, approximation and heuristic algorithms and will be able to assess the possibility of their use in specific situations. They will know the basic classification of metaheuristics and typical algorithms representing individual categories. Graduates will be able to implement practical heuristic algorithms in object-oriented languages (C++, C#).
Study aids
Prerequisites and corequisites
Basic literature
Recommended reading
Classification of course in study plans
specialization CZS , 1 year of study, winter semester, elective
Lecture
Teacher / Lecturer
Syllabus
1. Introduction, exact algorithms, approximation algorithms, heuristic algorithms. Heuristics, metaheuristics.2. The complexity of the tasks, the time required to find a solution.3. Global and local optimum.4. Classification of metaheuristics - deterministic/stochastic, based on a single solution/based on a population of solutions, iterative/hungry, ...5. State space search - random search, uninformed and informed methods.6. Application of heuristics to combinatorial problems.7., 8. Local search based heuristics (simulated annealing, tabu search)9., 10. Population based heuristics (genetic algorithms, scatter search)11. Ant colonies, swarm algorithms12., 13.: Effective implementation of heuristic algorithms
Exercise
1. - 13.: Demonstration of theoretical topics from lectures on real examples, implementation of selected algorithms using Object Oriented Programming in C++ and/or C# languages.