|Lectures:||Monday, 16:15 - 18:00, E1 4 024|
|Lecturers:||Thomas Kesselheim and Kurt Mehlhorn|
|First lecture:||April 25, 2015|
|Tutorials:||Wednesday, 10:00 - 12:00, E 1 4 023, biweekly|
|Prerequisites:||Basic knowledge in algorithms and stochastic|
Randomization is a helpful tool when designing algorithms. When there are many possible options many of which are good, it is a lot easier to have the algorithm flip a coin rather than describing an appropriate deterministic rule. Also, worst-case effects might be avoided this way. For these reasons, many practical algorithms use randomization, such as for example primality testing in cryptography. In other case, the input to an algorithm itself can already be assumed to be probabilistic. For example, sorting algorithms often have a bad worst-case running time only due to a single instance, which is very unlikely to occur in a real input. In these cases it make sense to analyze algorithms under probabilistic input models.
In this course, we will introduce you to the foundations of randomized algorithms and probabilistic analysis of algorithms. We will cover different combinatorial settings such as load balancing, sorting, and network and graph problems.
There will be oral exams after the lecture period by individual appointment. You are required to get 50 % of the points in the exercises to take the exam.
June 13, Introduction to Smoothed Analysis (typos fixed June 21)
Basics in Probability Theory: You should know everything in this section except for Chernoff bounds and everything that follows.
- Randomized Algorithms by Motwani/Raghavan
- Probability and Computing by Mitzenmacher/Upfal
- Chapter 13 in Algorithm Design by Kleinberg/Tardos available online (see sample chapters)