One of the strangest things in fractals, at least to me, is the idea of space filling curves. A space filling curve is a curve constructed using a Koch-like replacement method, but instead of being self-avoiding, it eventually contacts itself at every point.
What’s so strange about these things is that they start out as a non-self-contacting curve. Through further steps in the construction process, they get closer and closer to self-contacting, without touching. But in the limit, when the construction process is complete, you have a filled square.
Why is that so odd? Because you’ve basically taken a one-dimensional thing – a line – with no width at all – and by bending it enough times, you’ve wound up with a two-dimensional figure. This isn’t just odd to me – this was considered a crisis by many mathematicians – it seems to break some of the fundamental assumptions of geometry: how did we get width from something with no width? It’s nonsensical!
The original Peano curve is slightly less pathological than that; it’s at least trivially self-overlapping. The basic Peano curve starts a line segment as an initiator; then uses the curve to the right as a generator. What you get, by applying it in successive iterations is what’s show below – the gaps inside the squares getting smaller with each iteration, until in the limit, they disappear entirely. Using appropriate formalisms, you can easily show that every point in the square is part of the Peano curve.
This is bad – in the sense of the seeming impossibility of a line – something with no width, no area – becoming something with an area simply by bending it enough times. But it’s also not as bad as it could be. If you look at a Peano curve topologically, it’s clearly something peculiar. Subsequent steps in the construction are not homeomorphic: each step in the construction adds holes. So while it has the bizarreness of a line filling space, at least it preserves the fact that a line segment and a filled square are two different things.
But like most things, it’s possible to go from bad to worse. Following the idea of the Peano curve, you can create something with the same space-filling property, and construct it so that it doesn’t even have the redeeming feature of breaking homeomorphisms between iterations. Hilbert, among others, took the original idea of the Peano curve, and found better formulations that are non-self-contacting in any finite approximation. What that means is that no matter how many iterations you do, you’ll never see the curve contact itself; but in the limit, it contacts itself everywhere. That’s the really pathological curve that gave people nightmares at first; and you can still find geometers who complain that it’s insane, ill-defined, broken, or non-existent in some odd way, because they can’t accept it.
The Hilbert curve is a more complicated construction. The easiest definition I’ve seen is grammatical, using pairs of elements. The members of each pair are geometrically identical, but in the replacement rules, they’re replaced differently.
- Right1, and Right2: a clockwise right angle with legs length L.
- Left1 and Left2: a counterclockwise right angle with legs length L.
- Straight1 and Straight2: a straight line segment with length 2L.
The replacement rules are:
- Left1 → Straight2, Left1, Left2, Right1
- Left2 → Right2, Left1, Left2, Straight2
- Right1 → Left1, Right2, Right1, Straight1.
- Right2 → Straight1, Right2, Right1, Left2.
- Straight1 → Right2, Left1, Left2, Right1
- Straight2 → Left1, Right2, Right1, Left2
Below is a series of stages of the Hilbert curve, using a square (<Left1, Left2, Left1, Left2) as an initiator, and the above rules as the generator. (Note that the distortions in the far right stage are the result of a minor glitch in my turtle graphics package, not a real property of the curve.)
As I said – the idea of these curves caused quite an uproar, with famous mathematicians talking about them as tearing down the entire structure of mathematics. There were some efforts, along the lines of the infamous Principia, to somehow ban these pathological curves from the realm of geometry. They’re frightening in their way – they demonstrate that some of the things we believe about how math should work are just wrong.
For example, look at topology. As a very brief reminder, topology studies the structure of sets by looking at relations that define what points are close to or in the neighborhood of other points. Any two sets that have the same closeness relationships between their points are called homeomorphic, which means, roughly, topologically equivalent. Any transformation that doesn’t change those relationships is topologically a no-op.
A line segment and a filled square are very different things topologically. In a line segment, the neighborhood of a point are the points on either side of it – the points within a what’s called a 1-D open sphere around the point. In a filled square, the neighborhood of a point is the collection of points in a 2-D open sphere around the point – points to its left and right, but also points above, below, and at all sorts of angles from the point. The neighborhood relationships of the line segment and the square are very different.
The Hilbert curve, if you’re not very careful about your definitions, can be taken as an argument for the idea that a line segment is homeomorphic (that is, topologically equivalent) to a filled square. After all – any two steps of a finite construction of the Hilbert curve are homeomorphic to each other – they’re all homeomorphic to a line segment. But if you take it to the limit, the curve after an infinite number of steps, it becomes a filled square. So somehow, the repetition of steps that preserve homeomorphism fails to preserve homeomorphism.