# Machine Learning and Optimization for Algorithm Design

## News

- All news and exercise sheets will be online at ILAS

## Background

Automatic 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 exist often more than one algorithm to solve a given problem. So, how to 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 annoying task and (ii) a human is often biased by her own experience which is often not optimal.

To automatically solve all these problems, automatic 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 "MLOAD", 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 as an example class of algorithms to apply automatic 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 6 modules:

- Introduction to NP-Hard problems
- Methods for solving combinatorial problems
- Empirical Evaluation of Algorithms
- Statistical Models of the Empirical Hardness of NP-Hard Problems
- Algorithm Configuration
- Algorithm Selection

## Dynamics

**The course will be in English.**

We will meet weekly for a lecture and an exercise. Roughly every second week, there will be a new exercise sheet. Most exercises will be practical (teams of 2 students!) so that you learn how to apply automatic algorithm design in practice. You must get 50% points from the exercise to participate in the final exam (see below).

- Building: 106; Room: SR 00 007
- Lecture: Tuesday 08:30 - 10:00
- Exercise: Thursday 08:30 - 10:00

## Exam

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.