Metaheuristics, 2021/2022


Course description

Metaheuristics are a class of algorithms that are suitable to find solutions to problems when little information is available beforehand to help guide the search for those solutions, and when a brute-force approach is not adequate.

In this course you will learn the working principles of these algorithms, how to implement and apply them to a particular domain. You will also develop writing and presentation skills.


  1. Foundations
  2. Single-State Methods
  3. Empirical Analysis
  4. Search Space Structure and Performance
  5. Population Methods
  6. Theory of Randomized Search Heuristics
  7. Other topics (if time permits)



The grading of this course is based on a project and a final exam. The project is done individually and consists of applying metaheuristics to an application domain of the student's choice. For the project component, you will have to:

Your project will be graded based on the quality of your writing, the proper design, application, and testing of the algorithms used, the quality of your code, the clarity of your oral presentation.

The final grade will be computed as follows:

Lab exercises