A key assumption of many powerful optimization methods is that all the data is fully accessible from the beginning.

However, from the point of view of many real-world applications (e.g., in logistics, production or project planning, cloud computing, etc.) this assumption is simply not true. Large data centers allocate resources to tasks without knowledge of exact execution times or energy requirements; transit times in networks are often uncertain; or, parameters such as bandwidth, demands or energy consumption are highly fluctuating. The current trend of data collection and data-driven applications often amplifies this phenomenon. As the amount of available data is increasing tremendously due to internet technology, cloud systems and sharing markets, modern algorithms are expected to be highly adaptive and learn and benefit from the dynamically changing mass of data.

In the above examples, our knowledge of the current data is only partial or based on historical estimates. The class ``Algorithms and Uncertainty'' will teach students about the most common models of such uncertain data and how to design and analyze efficient algorithms in these models.

Specifically, we will cover the theory of online optimization, where the input arrives without any prior information (such as network packets arriving to a router) and also needs to be processed immediately, before the next piece of input arrives. This model is best suited for analyzing critical networking and scheduling systems where devices and algorithms must perform well even in the worst-case scenario.

In the cases where previous history can be used to model the upcoming data, we often employ robust optimization or stochastic optimization. In robust optimization, the aim is to optimize the worst-case of all possible realizations of the input data. Hence, this model is rather conservative.
In stochastic optimization however, the algorithms work with the assumption that data is drawn from some probability distribution known ahead of time and typically the goal is to optimize the expected value.

Nowadays, another source of information is often available: machine learning algorithms can generate predictions which are accurate most of the time. However, there is no guarantee on the quality of the prediction, as the current instance may not be covered by the training set. This statement motivated a very recent research domain that will be covered in this course: how to use error-prone predictions in order to improve guaranteed algorithms.

Organization: The course will be taught in English in two sessions per week (4 SWS) including interactive exercise sessions.

Examination: The examination will be by individual oral exam. As admission to the oral exam it is mandatory to present solutions in the exercise session at least twice during the term.

Prerequisites: Having heard an introductory course to discrete algorithms and their mathematical analysis (e.g. Algorithmentheorie, Algorithmische Diskrete Mathematik) or graph theory is beneficial but not required.

Registration mode

After enrolment, participants will manually be selected.

Potential participants are given additional information before enroling to the course.