MIT OpenCourseWare
  • OCW home
  • Course List
  • about OCW
  • Help
  • Feedback
  • Support MIT OCW

6.856J / 18.416J Randomized Algorithms, Fall 2002

Unstructured grid for a four element airfoil.
Partitioning algorithms are used to solve complex large scale computational problems, as shown in this unstructured grid for a four element airfoil. (Image is taken from NASA's Web site:

Highlights of this Course

This course site features a full set of lecture notes and problem sets with solutions.

Course Description

This course examines how randomization can be used to make algorithms simpler and more efficient via random sampling, random selection of witnesses, symmetry breaking, and Markov chains. Topics covered include: randomized computation; data structures (hash tables, skip lists); graph algorithms (minimum spanning trees, shortest paths, minimum cuts); geometric algorithms (convex hulls, linear programming in fixed or arbitrary dimension); approximate counting; parallel algorithms; online algorithms; derandomization techniques; and tools for probabilistic analysis of algorithms.


Prof. David R. Karger

Course Meeting Times

Two sessions / week
1.5 hour / session



Additional Features

Download this course


Send feedback about OCW or this course.