skip to primary navigationskip to content

Department of Computer Science and Technology



Course pages 2023–24

Randomised Algorithms

Principal lecturer: Dr Thomas Sauerwald
Taken by: Part II CST
Term: Lent
Hours: 12
Format: In-person lectures
Suggested hours of supervisions: 3
Prerequisites: Algorithms 1, Algorithms 2, Foundations of Computer Science, Introduction to Probability
Exam: Paper 8 Question 12; Paper 9 Question 12
Past exam questions, Moodle, timetable


The aim of this course is to introduce advanced techniques in the design and analysis algorithms, with a strong focus on randomised algorithms. It covers essential tools and ideas from probability, optimisation and graph theory, and develops this knowledge through a variety of examples of algorithms and processes. This course will demonstrate that randomness is not only an important design technique which often leads to simpler and more elegant algorithms, but may also be essential in settings where time and space are restricted.  


Introduction. Course Overview. Why Randomised Algorithms? A first Randomised Algorithm for the MAX-CUT problem. [1 Lecture] 

Concentration Inequalities. Moment-Generating Functions and Chernoff Bounds. Extension: Method of Bounded Independent Differences. Applications: Balls-into-Bins, Quick-Sort and Load Balancing. [approx. 2 Lectures]

Markov Chains and Mixing Times. Random Walks on Graphs. Application: Randomised Algorithm for the 2-SAT problem. Mixing Times of Markov Chains. Application: Load Balancing on Networks. [approx. 2 Lectures]

Linear Programming and Applications. Definitions and Applications. Formulating Linear Programs. The Simplex Algorithm. Finding Initial Solutions. How to use Linear Programs and Branch & Bound to Solve a Classical TSP instance. [approx. 3 Lectures]

Randomised Approximation Algorithms. Randomised Approximation Schemes. Linearity of Expectations, Derandomisation. Deterministic and Randomised Rounding of Linear Programs. Applications: MAX3-SAT problem, Weighted Vertex Cover, Weighted Set Cover, MAX-SAT. [approx. 2 Lectures]

Spectral Graph Theory and Clustering. Eigenvalues of Graphs and Matrices: Relations between Eigenvalues and Graph Properties, Spectral Graph Drawing. Spectral Clustering: Conductance, Cheeger's Inequality. Spectral Partitioning Algorithm [approx. 2 Lectures]


By the end of the course students should be able to:

  • learn how to use randomness in the design of algorithms, in particular, approximation algorithms;
  • learn the basics of linear programming, integer programming and randomised rounding;
  • apply randomisation to various problems coming from optimisation, machine learning and data science;
  • use results from probability theory to analyse the performance of randomised algorithms.

Recommended reading

* Michael Mitzenmacher and Eli Upfal. Probability and Computing: Randomized Algorithms and Probabilistic Analysis., Cambridge University Press, 2nd edition.

* David P. Williamson and David B. Shmoys. The Design of Approximation Algorithms, Cambridge University Press, 2011

* Cormen, T.H., Leiserson, C.D., Rivest, R.L. and Stein, C. (2009). Introduction to Algorithms. MIT Press (3rd ed.). ISBN 978-0-262-53305-8