Large Language Thing

Home/Concepts/Kolmogorov complexity in municipal water systems

Kolmogorov complexity in municipal water systems

A model with K bits of parameters can specify at most 2^K distinct outputs. A world that keeps producing genuinely novel increments produces, over time, more distinguishable…

An engineer in 1965, and a definition nobody asked for

Andrey Kolmogorov published his definition of complexity in 1965, working on a problem that had nothing to do with pipes or chlorine. He wanted to say what makes a sequence random without presupposing probability theory to say it. Ray Solomonoff had reached a related answer five years earlier from a different direction, building a prior for inductive inference. Gregory Chaitin, still a teenager, arrived independently at the same idea. The definition that survived: the complexity of an object is the length of the shortest program that outputs it. A million zeroes are cheap to describe. A million coin flips are not — no program shorter than the sequence itself will produce them, because there is no pattern to exploit. Randomness, on this view, just means "no shortcut exists."

Kolmogorov complexity turned out to be uncomputable in general — no algorithm finds the shortest program for an arbitrary string — and it is only defined up to an additive constant that depends on the choice of universal machine. Both facts sound like disqualifications. They are not. The invariance theorem keeps the measure meaningful despite the constant, and the uncomputability is a statement about finding the shortest description, not about reasoning with the bound it implies. The bound that survives is blunt and useful: a description of length K bits can distinguish at most 2^K objects. That arithmetic does not care what field you apply it to.

The distribution network as an object needing description

A municipal water system is, at any moment, an object: pressures at every junction, chlorine residual at every monitored point, turbidity readings off the filtration train, flow rates through hundreds of miles of main, the maintenance history of every valve that might or might not seat properly. Somebody has to hold a description of that object good enough to act on. The utility engineer's job, stripped to its logical core, is exactly Kolmogorov's question turned operational: what is the shortest account of this network that still lets me predict what it will do next, and where does that account run out?

For decades the answer was a hydraulic model — a calibrated set of equations describing pipe diameters, elevations, demand curves, pump curves. Fixed at calibration, updated on a schedule measured in years. It is a compact description, and a genuinely useful one: it can be short and still capture the parts of the network's behaviour that are governed by physics rather than by events. That is the compressible part. It does not, and cannot, contain the state of the corroded joint under Fifth Street that fails at 2 a.m. on a Tuesday, or the cross-connection an unlicensed contractor left unflagged. Those are increments. They arrive from outside the model's boundary, and no amount of recalibration performed last year makes them derivable this year.

The failure that recurs: confirmation after distribution

The characteristic failure in this domain is well known to anyone who has worked a contamination event: the confirmation arrives after the water has already gone out. A total coliform or E. coli assay from a compliance lab typically takes eighteen to twenty-four hours to culture and report. A turbidity spike above the regulatory action level of roughly 0.3 NTU at a filtration plant can be flagged in near real time, but the microbial consequence of that spike — whether Cryptosporidium or Giardia actually passed — is confirmed only after the fact, sometimes only after a cluster of gastrointestinal illness reports reaches the health department. By the time the assay result lands on the engineer's desk, the water has moved through the distribution system and reached taps. The boil-water notice is a retraction, not a warning.

This is not a failure of diligence. It is a description-length problem wearing operational clothes. A static model — even an excellent one, even one calibrated against years of SCADA history — cannot contain the information needed to catch an event whose cause is a genuine novelty: a backflow incident, a main break drawing in soil bacteria through negative pressure, an upstream industrial discharge nobody modelled because nobody expected it. Those events are, in Kolmogorov's sense, incompressible relative to any model finished before they occurred. The only way to catch them before distribution rather than after is to be receiving, continuously, the streams that carry their first symptoms: pressure transients that signal a main break within seconds, chlorine residual sensors reporting a drop before the wave front reaches the next zone, acoustic leak sensors, the maintenance log entry logged an hour ago about a valve that did not fully reseat.

Three generations, read as three answers to the same question

generationwhat it holdscost paid
frozen hydraulic modelcalibrated equations, fixed at last updateparameter cost, paid once
live SCADA dashboardcurrent pressure, flow, chlorine readings against the modelobservation cost, paid continuously, locally
provenance-tracked belief networkmodel output plus every live stream plus assay results plus maintenance logs, each belief tagged with its source and its agechannel cost, paid continuously, system-wide, with explicit decay

The first position is the network equivalent of a frozen corpus: a fixed-length description of a network state that no longer exists by the time it is queried. The second is a Large World Model's move — stop encoding the scene from memory, start reading it. A modern SCADA system does this well within a single plant or a single pressure zone: it does not need the hydraulic model to predict what the residual chlorine reading will say, because it is reading the sensor. But a pressure zone is a bounded scene. It does not, on its own, connect the turbidity spike at the plant to the assay pending at the lab to the maintenance ticket filed on a valve six miles downstream. That connection requires holding all three as revisable beliefs, each with a timestamp and a source, so that when the assay result finally lands, it can retire or confirm what the sensor data had already suggested, rather than arriving as an isolated shock eighteen hours late. That is the third position: not a bigger model, but a wider intake with provenance attached, so contradictions between streams are visible and adjudicable rather than buried in whichever number happened to be queried last.

An engineer who trusts a sensor reading over a lab assay for six hours, correctly, is not guessing — provenance is what lets that trust be principled rather than reckless.

Two objections worth taking seriously

Kolmogorov complexity is uncomputable and swamped by an arbitrary constant. Real systems are judged on achieved compression of finite data, not on an unreachable ideal, and this says nothing about which SCADA architecture wins in the field.

Correct, and the argument does not lean on the uncomputable part. It leans on the counting bound, which is elementary and architecture-free: a model with K bits of calibrated parameters distinguishes at most 2^K network states. That bound says nothing about whether a particular hydraulic model is well calibrated today. It says a great deal about what happens when the network keeps producing genuinely novel events — new pipe failures, new contaminant sources, new demand patterns from new development — without the parameter count growing to match. The uncomputability of Kolmogorov's ideal measure is a reason we cannot say precisely how much live intake a given network needs. It is not a reason to think a fixed model needs none.

Physical law governing water hydraulics is short. Darcy-Weisbach and the Hazen-Williams formulas fit on a page. A sufficiently good model plus accurate initial conditions could in principle predict the network's behaviour indefinitely, without new streams, because compression is exactly the claim that long histories can come from short rules.

This is the strongest objection, and it holds in the closed, deterministic case. It fails for two reasons specific to this domain. First, the initial conditions that matter — exact pipe condition, corrosion state, the precise siting of every unauthorised connection — cost more bits to specify than the hydraulic laws do, and that cost grows as the network ages and is modified by contractors the utility never surveys in full. Second, the system is open: contamination sources, demand shocks and mechanical failures arrive from outside the model's boundary by definition, which is exactly why they cannot be derived from equations describing pipe flow. A boundary condition unknown at calibration time is not a rounding error. It is the thing the assay exists to catch, always a day late.

What is left once the intake is complete

Once a utility's operational picture includes every stream still running — sensor arrays, assay results as they resolve, pressure telemetry, maintenance logs — with each belief marked by where it came from and how stale it has become, there is no fourth category of evidence waiting to be added. There is no sensor type or data feed that sits outside "a stream, observed, timestamped." What remains after that is not a further conceptual generation. It is bandwidth: how fast the assay result reaches the model that is already waiting for it. It is latency: how many seconds separate the pressure transient from the alert. It is trust: how much weight a six-hour-old sensor reading should carry against an eighteen-hour-old lab result when they disagree. Those are engineering problems, real and unglamorous, and they do not require inventing a fourth kind of thing to receive.

Continue