Machine Learning for Automated Algorithm Design

Course type: Lecture + Exercise
Time: Lecture: Monday 14:15 (s.t.) - 15:45; Exercise: Tuesday 12:30 - 14:00
Location: Lecture: Building 106 SR 00-007; Exercise: Building 051 SR 00 006
Organizers: Marius Lindauer, André Biedenkapp, Frank Hutter
Web page: , ILIAS

Machine Learning for Automated Algorithm Design


  • All news, slides and exercise sheets will be online at ILIAS


Automated algorithm design gets more and more important because algorithms get more complex and a developer has to make calls about many aspects, e.g., which subroutine to use or how to set parameters (also known as magic constants). From the perspective of a user, there often exist more than one algorithm to solve a given problem. So, how can we efficiently choose a well performing algorithm? In practice, it is even worse: There exist no single well-performing parameter setting or best algorithm for all kind of possible inputs. Therefore, we have to determine the best settings for new inputs again and again which can be (i) a really time-consuming and tedious task and (ii) a human is often biased by her own experience which is often not optimal. To automatically solve all these problems, automated algorithm design can be used to determine well-performing algorithm parameter settings, to select the best algorithm for a given input, or even to help to develop and implement better algorithms. In our course "ML4AAD", we will discuss all these problems and how to solve them. To this end, we will use a lot machine learning and optimization techniques to solve them effectively. Furthermore, we will focus on hard combinatorial problems and machine learning as exemplary classes of algorithms to apply automated algorithm design in the course. We strongly recommend that you know the foundations of (i) artificial intelligence (AI) and (ii) machine learning (ML) in order to attend the course. The participants should have attended at least in one other course for AI and ML in the past. In particular, the lectures are partitioned in several parts:
  • Algorithm selection
  • Algorithm design for solving combinatorial problems and machine learning
  • Empirical evaluation of algorithms
  • Hyperparameter optimization
  • Neural architecture search
  • Algorithm configuration
  • Combinations of algorithm configuration and algorithm selection
  • Algorithm analysis


__The course will be in English.__ We will meet weekly for a lecture and an exercise. Roughly every week, there will be a new exercise sheet. Most exercises will be practical and involve teamwork (teams of 2 students!) so that you learn how to apply automatic algorithm design in practice. The exercises are no requirement for the exam (however highly recommended) but to get a grade in the end, you have to pass the exercises.
  • Lecture: Monday 14:15 (s.t.) - 15:45 in Building 106 SR 00 007
  • Exercise: Tuesday 12:30 (s.t.) - 14:00 in Building 051 SR 00 006


In the end, everyone (no team work!) has to implement a larger project which is the base of the final oral exam. In the first 15 minutes of the oral exam, you have to present your project and in the second 15 minutes, we will ask you to answer questions about further course material.