Entropy · Chapter 7

Kolmogorov Algorithmic Complexity

Why Digits of Pi Look Random to Statistics Yet Compress Into Tiny Code

Print out two binary strings, each exactly one million bits long. String $A$ records one million consecutive flips of an unbiased silver coin tossed in a physics laboratory. String $B$ consists of the first one million binary digits after the radix point in the mathematical constant $\pi = 3.14159265\dots$. Hand both printouts to a traditional statistician who does not know their origins. In both sequences, zeros and ones appear almost exactly 500,000 times each. Pairs like 01 and 11 occur with frequency 0.25, and standard statistical battery tests find zero local serial correlation. Under Claude Shannon's classical probabilistic framework, if you treat both strings as draws from a memoryless uniform source, both appear equally random.

Yet the two sequences could not be more different in their true informational structure. String $A$ is a record of genuine thermal and mechanical accidents. To transmit it to a colleague in another city without error, you must transmit virtually all one million bits. String $B$, by contrast, is completely deterministic. You can transmit all one million bits of $\pi$ by emailing a four-line computer program that computes the series expansion of the arctangent function.

Between 1960 and 1965, three researchers working independently across three countries invented algorithmic information theory to solve this exact blind spot. They were American scientist Ray Solomonoff at the Zator Company in Cambridge, Massachusetts, Soviet mathematician Andrey Kolmogorov at Moscow State University, and undergraduate Gregory Chaitin at the City College of New York. Rather than defining entropy over an abstract ensemble of hypothetical messages $P(x)$, they defined the algorithmic complexity $K(s)$ of a single concrete string $s$. It equals the length in bits of the shortest computer program $p$ that outputs $s$ on a fixed universal Turing machine $U$ and halts.

By invariance theorems proved by Solomonoff and Kolmogorov, switching from one programming language or universal Turing machine $U_1$ to another $U_2$ changes $K(s)$ by at most a fixed compiler-translation constant $c$ independent of the length of $s$. Comparing physical and mathematical bitstreams under algorithmic complexity reveals three fundamental regimes:

Algorithmic complexity also connects directly back to Shannon and Boltzmann entropy. Given any stationary probabilistic source $P$, the expected Kolmogorov complexity per symbol $\mathbb{E}[K(X^n)]/n$ converges to the Shannon entropy $H(P)$ as sequence length $n$ grows large. It also allows physicists to define the microscopic entropy of an individual molecular configuration without invoking ensembles. The catch, proved by Kolmogorov and Chaitin via Alan Turing's 1936 halting problem, is that $K(s)$ is formally uncomputable. No general algorithm can ever prove that a shorter program does not exist that halts after ten billion years. In December 2009, programmer Fabrice Bellard computed 2.7 trillion decimal digits of pi on a single desktop computer in Paris. The resulting output file occupied 1.13 terabytes of hard-drive space and passed standard statistical frequency tests for uniform randomness, yet the complete Chudnovsky-series program required to generate that exact sequence from scratch fit inside fewer than two kilobytes of source code.