User:Mattatk/sandbox/Burning algorithm

The burning algorithm for the abelian sandpile model is a method invented by Deepak Dhar and S. N. Majumdar in 1991 for determining if a chip configuration on a finite connected graph is recurrent. Eugene R. Speer modified the algorithm to include finite directed multigraphs in 1992, a generalization known as the script algorithm.

Description
Given a connected undirected graph and an initial chip configuration z, the burning algorithm starts by "firing the sink", sending one chip to each of the sink's neighbors. The algorithm then stabilizes the resulting configuration by repeatedly toppling unstable vertices. The configuration z is recurrent if and only if each non-sink vertex topples in this stabilization procedure. In fact, each vertex will topple no more than once, and the original configuration z will be restored if each non-sink vertex topples exactly once. With these observations, the algorithm can be looked at from a different perspective: z is recurrent if and only if
 * $$z-\Delta ' \mathbf{1}$$

stabilizes to z, where &Delta;′ is the reduced Laplacian matrix.

This idea is generalized to directed multigraphs with a global sink via the script algorithm. If n is an integral vector such that n > 0 and &Delta;′n ≥ 0, then z is recurrent if and only if
 * $$z-\Delta ' \mathbf{n}$$

stabilizes to z. The configuration &Delta;′n can be found by repeatedly adding columns of &Delta;′: starting with a configuration gotten by adding all of the columns, if the $i$th entry of the configuration is negative, then the $i$th column of &Delta;′ is added until the entry is nonnegative, and this process is repeated until no entry of the configuration is negative. Speer showed that this process is guaranteed to terminate.