Topic | Techniques | Applications | Readings |
---|---|---|---|
Introduction | Introduction, Las Vegas and Monte Carlo algorithms, models of computation and complexity classes, game trees and minimax principles. | minimum cuts, quicksort, games | Chapters 1 and 2 |
Moments, Deviations, Tail Inequalities | balls and bins, Markov and Chebyshev inequalities, Chernoff Bounds | stable marriage, coupon collecting, routing and wiring | Chapters 3 and 4 |
Sequential Algorithms | data structures, computational geometry, graph algorithms | search trees, skip lists, hashing, convex hulls, delunay triangulation, random sampling, linear programming, shortest paths, spanning trees, minimum cuts revisited | Chapters 8, 9 and 10 |
Parallel Algorithms and Distributed Algorithms | algebraic techniques, parallel algorithms, distributed algorithms | matching, sorting, independent sets, Byzantine1 agreement | Chapters 7 and 13 |
On-Line Algorithms | on-line models, adversary models | paging, k-servers | Chapter 14 |
The Probabilistic Method, Enumeration and Counting | probabilistic method, expanders, Lovasz Local Lemma, Markov Chains, Random Walks, groups, fields | MAX SAT, connectivity, random bits, DNF counting, permanents | Chapters 5, 6 and 12 |
Number Theory | groups and fields, quadratic residues | RSA cryptography, primality testing | Chapter 11 |
In addition to the readings from the text, papers will be handed out during the semester. The goal of the course is to develop a familiarity with randomized algorithms algorithms and to study the techniques that allow for the development of new algorithms.