Life on graphs

Conway's Game of Life, taken off its grid and onto networks, where a cell's neighbours are whoever it happens to be wired to. This is the demo of Essential metrics for Life on graphs, with Lucas Caldeira de Oliveira, Odemir Bruno and Jan Baetens (Physica D: Nonlinear Phenomena 483, 134950, 2025). The first theme defines the rules and the curve that predicts them; the next two use it to solve two classic problems of collective computation; the last follows a single flipped node.

Life-like rules on networks

Conway's Game of Life counts a cell's live neighbours and answers differently depending on the cell's own state: a dead cell with exactly three live neighbours is born, a live cell with two or three survives, everything else dies or stays dead. Rules of that shape are called outer-totalistic: what happens depends on your own state and on the total of your neighbours, not on which ones. On a grid every cell has eight neighbours, so "exactly three" is a clear instruction. On a network, where one node has two neighbours and the next has twenty, it is not.

The fix, worked out in the paper (code on GitHub), is to count the share rather than the number: ρ, the density of live nodes among a node's neighbours, a number between 0 and 1. Cut the unit interval into r equal pieces and let the rule say, for each piece, whether a dead node is born there and whether a live node survives there. A rule is then a pair of sets of intervals, born B and survive S:

ϕ(s, ρ) = 1 if s = 0 and ρ ∈ ⋃B; 1 if s = 1 and ρ ∈ ⋃S; 0 otherwise.

With r = 9 on a grid of eight neighbours the nine intervals match the nine possible counts 0 to 8 exactly, and Life is back: B = {R3}, S = {R2, R3}. We call the whole family Life-like network automata. There are 22r rules for each resolution r, so 262,144 at r = 9.

Two details make this the right definition and not merely a convenient one. First, r must be odd, so that one interval sits in the middle, symmetric around ρ = ½. Second, the intervals are half-open in a mirrored way: below the middle each one includes its left end, [i/r, (i+1)/r[; above the middle each includes its right end, ]i/r, (i+1)/r]; and the middle one is closed at both ends. The dots on the axis of the diagram mark which side each boundary belongs to. This is what makes swapping every on and off a symmetry of the family, as it is for cellular automata: a dead node seeing density ρ becomes a live node seeing 1 − ρ, and that must land in the mirror-image interval, boundaries included. On a network with small degrees a density lands exactly on a boundary all the time, so without the mirroring the symmetry would break.

A rule is written ϕrβ,σ, with β the born set read as a binary number, intervali worth 2i, and σ the same for the survive set. Life is ϕ98,12: born 23 = 8, survive 22 + 23 = 12. Because of the symmetry every rule has an equivalent one that does the same thing with the colours swapped, and some rules are their own equivalent; the readout under the diagram says which. Click any cell of the diagram to change the rule, or type β and σ.

Under the diagram is the mean-field curve for a node of degree k: if a share ρ of all nodes is on and there is no further structure, what share do we expect after one tick? Sum over the possible counts q of live neighbours, each weighted by the binomial share of neighbourhoods that produce it, and the answer follows from the diagram alone. The dashed lines through the diagram show which densities q/k a node of degree k can see, and the circles how common each is. The curve's value at ρ = ½, marked in blue, is the Hamming weight, the share of all inputs that yield a live node. Where the curve crosses the diagonal the density would stay put; where it crosses the anti-diagonal it would flip to its complement. That is all we need to go hunting for a rule.

Things to try. Slide the degree from 4 to 12 with HighLife selected and watch the mean-field curve move while the diagram stays put: which intervals a node can reach depends on its degree, and so does its behaviour, which is the whole point of doing this on networks. Pick the firing squad rule and see a curve that crosses the anti-diagonal at ½ and nowhere else. Set r to 3 and the family shrinks to a handful of threshold rules, one of them rule 150, the parity rule that counts a node's own state too.