One of my fellow ScienceBloggers, [Karmen at Chaotic Utopia](http://scienceblogs.com/chaoticutopia/2006/11/puzzling_at_a_simpleminded_cre.php) pointed out a spectacularly stupid statement in [Casey Luskin’s critique of Carl Zimmer][lutkin] (*another* fellow SBer) at the Discovery Institutes “Center for Science and Culture”. Now normally, I might not pile on to tear-down of Casey (not because he doesn’t deserve it, but because often my SciBlings do such a good job that I have nothing to add); but this time, he’s crossed much too far into *my* territory, and I can’t let that pass without at least a brief comment.
So, here’s the dumb statement:
>The article called evolution a “simple” process. In our experience, does a “simple” process generate
>the type of vast complexity found throughout biology?
Yes, one of the leading IDist writers on the net believes that in reality, simple processes don’t generate complex results.
Karmen pointed out fractals as a beautiful example of the generation of complexity from simplicity. I’d like to point out something that, while lacking the artistic beauty of a well-chosen fractal, is an *even simpler* and possibly more profound example.
As long-time readers of GM/BM know, I’m fascinated by [cellular automata (CAs).][alpaca] CAs are an incredibly simple idea which can generate the most spectacularly complex behaviors out of pure triviality.
For the simplest example of this, line up a bunch of little tiny machines in a row. Each machine has an LED on top. The LED can be either on, or off. Once every second, all of the CAs simultaneously look at their neighbors to the left and to the right, and decide whether to turn their LED on or off based on whether their neighbors lights are on or off. Here’s a table describing one
possible set of rules for the decision about whether to turn the LED on or off.
|Current State||Left Neighbor||Right Neighbor||New State|
So, for example, if a cell is on, it’s left neighbor is on, and its right neighbor is off, then for the next second, the cell will keep its light on. If a cell has its light on, and both its left and right neighbors have *their* lights on, then it will turn its light *off* for the next second.
This is known as the *rule 110* cellular automaton according to Steven Wolfram’s taxonomy of
one-dimensional CAs in [A New Kind of Science][wolfram]. Rule 110 is interesting for several reasons.
First, it’s so trivial. Even writing as a table like the one up there is making it look more
complicated than it should – it’s an incredibly simple thing. And yet, it creates an amazing amound
of complexity. If you run rule 110, and take the row of lights and line them up those rows chronologically – so that the initial row of lights is on top, the state that it went to after one second is below it, and so on – you can create a two dimensional image, like this one:
That image is *bizarre*! It forms a pattern of triangles, which on the one hand exhibits a lot of structure – large triangles are surrounded by smaller triangles, which are surrounded by smaller ones; and the larger triangles will often appear in almost linear patterns – the exact place where large triangles show up is very chaotic and impossible to predict without *running* the automata. Incredible complexity is being spawned by utter triviality.
How complex can rule-100 CAs get? [110 is turing complete.] *Any* computational process, *anything* which can be computed by any mechanical device, can be computed using nothing but a single row of rule 110 CAs.
Another example? The most famous CA of them all is [Conway’s “game of life”][life]. I’ve written about
life before, because it’s such an interesting system. Life is also turing complete – and someone has actually implemented a two-symbol [turing machine as a grid of Life cells][life-turing]. What’s particularly interesting about that, from the point of view of Casey’s statement about how a simple process like evolution doesn’t generate complexity, is that the Life turing machine is generated from a set of components *that were not designed by a human being*. The components were discovered by running a
genetic algorithm on relatively small life grids, and looking for stable patterns. All of the
parts of the Life turing machine – the clocks, the gears for moving the tapes, the tape cells, the tape read/write head – all of the complex machinery of the turing machine – was generated
randomly from an extremely simple set of rules.