RealityModels

Theory: algorithmic probability and the machine census

The turing-census simulation enumerates the small Turing machines, runs each one on a blank tape and counts the outputs of those that halt. This document gives the definitions and published results the census rests on, in the notation of js/model.js, and separates them from the simulator's own choices. Usage, parameters and reference tables: algorithmic-probability-simulation-guide.en.md; Italian version: algorithmic-probability-theory.it.md.

1. From the regress to counting

The glossary ends on an open point: algorithmic information measures a string relative to a universal machine, and the choice of that machine is itself unexplained. Solomonoff's move was to stop choosing: instead of one program, weigh all programs that produce the string. The census takes the same step one floor lower. Instead of one universal machine with a clever encoding, it takes every machine of a bounded size, with no exceptions, and counts. Whatever order appears in the result was not put in by hand: it is a property of the space of computations. This is the mechanism behind Wheeler's "law without law" as Müller [2020] formalises it: if what exists is all computations, the probability of an observation is its algorithmic probability, and regularity wins by sheer weight of numbers.

2. Algorithmic probability

2.1 The universal distribution

Fix a universal machine U whose programs are self-delimiting binary strings. The algorithmic probability of a string x is

m(x) = Σ 2^(−|p|)   over the programs p with U(p) = x

the probability that U produces x when its program tape is filled by coin tosses [Solomonoff 1964; Levin 1974]. m is a semimeasure, not a measure: the mass of the non-halting programs is lost, and the halting problem makes m uncomputable, only approximable from below. Levin proved it is universal: m dominates every semicomputable semimeasure up to a multiplicative constant, so no computable way of assigning probabilities to strings can beat it by more than a constant factor.

2.2 The coding theorem

Levin [1974] and Chaitin [1975] showed that the two central quantities of the theory coincide up to an additive constant:

K(x) = −log₂ m(x) + O(1)

where K is prefix Kolmogorov complexity, the length of the shortest program for x. Probable and simple are the same thing: a string is likely to the exact extent that it is compressible. Kirchherr, Li and Vitányi [1997] call m "the miraculous universal distribution" for this reason; Li and Vitányi [2008] is the standard reference.

2.3 Invariance and its honest limit

K and m depend on U only through additive and multiplicative constants (invariance theorem [Solomonoff 1964; Kolmogorov 1965]). For long strings the constants fade; for the short strings a simulation can reach, they dominate. Any concrete table of m(x) is therefore relative to a stated choice of machines. The census does not escape this; it makes the choice explicit and uniform (section 6).

3. A census instead of a universal machine

Delahaye and Zenil [2012] proposed the Coding Theorem Method: approximate m not with one universal machine but with the full uniform family of small machines. For the (n, 2) space, n states and 2 symbols in Radó's formalism, define

D(n)(x) = (machines that halt on the blank tape with output x) / (machines that halt)

and the estimated complexity K̃(x) = −log₂ D(n)(x), the number the simulation's tooltip shows. Soler-Toscano, Zenil, Delahaye and Gauvrit [2014] computed D(5) from 26 trillion machines and found the ranking stable across n and consistent with compression-based complexity where both apply. The point is not that the single values are canonical, they are not, but that an arbitrary-looking choice (one machine) is replaced by a symmetric one (all machines of a size), which leaves far less room for smuggling structure in.

4. The busy beaver bound

Radó [1962] defined S(n) as the maximum number of steps an n-state 2-symbol machine can run on the blank tape and still halt. The known values:

nS(n)Proof
26Radó 1962
321Lin and Radó 1965
4107Brady 1983
547,176,870champion Marxen and Buntrock 1990; proved maximal by the bbchallenge collaboration, 2024, machine-checked in Coq

S grows faster than every computable function, which is why each value is a separate feat. For the census the theorem matters in one direction: a machine on the blank tape that has not halted within S(n) steps never halts. Capping runs at S(n) therefore decides halting exactly. The (2, 2) and (3, 2) tables in the guide are complete enumerations with no undecided case, and in the sampled (4, 2) space every drawn machine is still classified exactly; only the sampling is statistical.

5. The model in the simulator

js/model.js encodes an instruction as a digit d in 0 .. 4(n+1)−1: bit 0 is the written symbol, bit 1 the move (right or left), d >> 2 the next state, with the value n meaning halt. The halting instruction writes and moves like any other, as in Radó's formalism. A machine is the vector of its 2n digits, one per (state, symbol) pair, so the space has (4(n+1))^(2n) machines: 20,736 for n = 2, 16,777,216 for n = 3, 25,600,000,000 for n = 4. The first two are enumerated with an odometer; the third is sampled with a small seeded generator, so a run is reproducible.

The output of a halting machine is the scanned segment: the content, at the moment of halting, of the cells it read at least once. A machine whose first instruction halts outputs a single cell. Recording only the written cells, or only the segment between the outermost 1s, are equally defensible conventions that give different tables; the guide's numbers belong to this one.

6. What the census shows

The guide holds the full tables; these are the structural facts behind them.

7. What the census does not say

Bibliography

Algorithmic probability and complexity

Busy beaver

Census of small machines

Emergence of laws