a repository of mathematical know-how

Random sampling using Markov chains

Stub iconThis article is a stub.This means that it cannot be considered to contain or lead to any mathematically interesting information.

Quick description

Suppose that you want to generate, uniformly at random, some combinatorial structure or substructure. If the structure is simple enough, then there may be an easy way of converting n random bits into the structure you want, with the correct distribution. For example, to choose a random graph one can just pick each edge independently at random with probability 1/2. However, a trivial direct approach like this is often not possible: how, for example, would you choose a (labelled) tree uniformly at random? A commonly used technique in more difficult situations is to take a random walk through the "space" of all objects of interest and to prove that the walk is rapidly mixing, which means that after not too long the distribution of where the walk has reached is approximately uniform.

This article describes a few examples of the technique. Crucial to any application of the method is the proof that the Markov chain one constructs really is rapidly mixing. There are many ways of showing this, which are discussed in articles linked to from a rapid mixing front page.


Basics of probability theory, definitions of combinatorial concepts such as graphs, trees, the Boolean cube, etc.

Note iconIncomplete This article is incomplete. This article needs to be written. One example should be of a nice combinatorial structure that cannot be generated uniformly in a trivial way, but can be generated approximately uniformly with the help of Markov chains. Another should be a description of the Jerrum-Sinclair algorithm for generating a random perfect matching in a dense bipartite graph.


Access to the "Revisions" page

Why don't I have access to the "Revisions" page for this article?

It's because there have been

It's because there have been no revisions to the article. Perhaps we should display the tab regardless, to avoid confusion.

So it's not possible to find

So it's not possible to find out who wrote a new article, without editing it first? In this case I think I have a good guess ;) but it might be harder later in the project, when anyone can make a new article.

That's a good point

That's a good point – one should be able to find out who wrote an article. I'll put this on the to-do list.