University of Oxford Logo University of OxfordDepartment of Computer Science - Home

Probability and Computing:  2011-2012

Information

Lecturer

Degrees

Schedule C1Honour School of Computer Science

Schedule C1Honour School of Mathematics and Computer Science

Schedule CMSc in Computer Science

Term

Overview

In this course we study applications of probabilistic techniques to computer science, focusing on randomised algorithms and the probabilistic analysis of algorithms. Randomisation and probabilistic techniques have applications ranging from communication protocols, combinatorial optimisation, computational geometry, data structures, networks and machine learning. Randomised algorithms, which typically guarantee a correct result only with high probability, are often simpler and faster than corresponding deterministic algorithms. Randomisation can also be used to break symmetry and achieve load balancing in parallel and distributed computing. This course introduces students to those ideas in probability that most are most relevant to computer science. This background theory is motivated and illustrated by a wide-ranging series of applications.

Learning outcomes

At the end of the course students are expected to

 

Prerequisites

Exposure to probability theory, discrete mathematics, algorithms and linear algebra will be assumed.  Specific concepts that will be assumed include discrete probability spaces, the principle of inclusion-exclusion, conditional probability, random variables, expectation, basic graph theory, the binomial theorem, finite fields, power series, sorting algorithms, asymptotic notation, vector spaces, linear transformations, matrices and determinants.  Graduate students who have not taken a course in algorithms will not be at a significant disadvantage. Diligent students lacking some of the required background but willing to acquaint themselves with the necessary material are encouraged to contact the lecturer to discuss their situation prior to registering for this course.

Synopsis

The material will be mostly drawn from Chapters 1-7, 10 and 13 of the required text "Probability and Computing", by Mitzenmacher and Upfal. Supplementary material may also be taken from the book "Randomized Algorithms" by Motwani and Raghavan.  It is expected that the following will be covered:

Lectures 1--3: Events and Probability. Verifying matrix multiplication, min-cut algorithm, long-path algorithm, Schwartz-Zippel lemma, bipartite matching, isolating lemma.

Lectures 4--7: Random Variables and Moments.  Expectation and variance, the coupon collector's problem, the stable marriage problem,
randomised quicksort, median finding.  Luby's algorithm

Lectures 8--9: Chernoff Bounds. Las Vegas and Monte Carlo algorithms, set balancing, facility location, random rounding and permutation routing.

Lectures 10--11: Balls and Bins. Poisson approximation, random graphs and balanced allocations.

Lectures 12---14:  Markov Chains and Random Walks.  Random-walk algorithms for 2-SAT, 3-SAT and undirected reachability.

Lectures 15--16: The Monte-Carlo Method.  The DNF counting problem.  Sampling.

Lectures 17---18:  Pairwise Independence and Universal Hash Functions.  Sampling, derandomization, perfect hashing and count-min filters.

Lectures 19---20: The Probabilistic Method. Lovasz local lemma and application to propositional satisfiability; derandomization through conditional expectation.

Syllabus

Tools and Techniques: random variables; conditional expectation; moment bounds; tail inequalities; independence; coupon collection and occupancy problems; the probabilistic method; Markov chains and random walks; algebraic techniques; probability amplification and derandomisation.

Applications: Sorting and searching; graph algorithms; combinatorial optimisation; propositional satisfiability; hashing; routing; random sampling; DNF-counting; bloom filters, count-min filters.

Reading list

Required text:

Also useful: