Cheaper than printing it out: buy the paperback book.

Out of Control
Chapter 15: ARTIFICIAL EVOLUTION

And Ray found creatures that surpassed the programming skills of human software engineers.

"I started with a creature 80 bytes large," Ray remembers, "because that's the best I could come up with. I figured that maybe evolution could get it down to 75 bytes or so. I let the program run overnight and the next morning there was a creature -- not a parasite, but a fully self-replicating creature -- that was only 22 bytes! I was completely baffled how a creature could manage to self-replicate in only 22 instructions without stealing instructions from others, as parasites do. To share this novelty, I distributed its basic algorithm onto the Net. A computer science student at MIT saw my explanation, but somehow didn't get the code of the 22 creature. He tried to recreate it by hand, but the best he could do was get it to 31 instructions. He was quite distressed when he found out I came up with 22 instructions in my sleep!"

What humans can't engineer, evolution can. Ray puts it nicely as he shows off a monitor with traces of the 22s propagating in his soup: "It seems utterly preposterous to think that you could randomly alter a computer program and get something better than what you carefully crafted by hand, but here's living proof." It suddenly dawns on the observer that there is no end to the creativity that these mindless hackers can come up with.

Because creatures consume computer cycles, there is an advantage to smaller (shorter sets of instructions) creatures. Ray reprogrammed Tierra's code so the system assigned computer resources to creatures in proportion to their size; large ones getting more cycles. In this mode, Ray's creatures inhabited a size-neutral world, which seemed more suited for long runs since it wasn't biased to either the small or large. Once Ray ran a size-neutral world for 15 billion cycles of his computer. Somewhere around 11 billion cycles, a diabolically clever 36 creature evolved. It calculated its true size, then behind its back so to speak, shifted all the bits in the measurement to the left one bit, which in binary code is equal to doubling the number. So by lying about its size, creature 36 sneakily garnered the resources of a 72 creature, which meant that it got twice the usual CPU time. Naturally this mutation swept through the system.

Perhaps the most astounding thing about Tom Ray's electrically powered evolution machine is that it created sex. Nobody told it about sex, but it found it nonetheless. In an experiment to see what would happen if he turned the mutation function off, Ray let the soup run without deliberate error. He was flabbergasted to discover that even without programmed mutation, evolution pushed forward.

In real natural life, sex is a much more important source of variation than mutations. Sex, at the conceptual level, is genetic recombination -- a few genes from Dad and a few genes from Mom combined into a new genome for Junior. Sometimes in Tierra a parasite would be in the middle of asexual reproduction, "borrowing" the copy function of some other creature's code, when the Reaper would happen to kill the host midway in the process. When this happens the parasite uses some copy code of the new creature born in the old creature's space, and part of the "dead" creature's interrupted reproduction function. The resultant junior was a wild, new recombination created without deliberate mutation. (Ray also says this weird reproduction "amounts to sex with the dead!") Interrupted sex had happened all the time in his soup, but only when Ray turned off his "flip-a-bit" mutator did he notice its results. It turned out that inadvertent recombination alone was enough to fuel evolution. There was sufficient irregularity in the moment of death, and where creatures lived in RAM, that this complexity furnished the variety that evolution required. In one sense, the system evolved variation.

To scientists, the most exhilarating news to come out of Ray's artificial evolution machine is that his small worlds display what seems to be punctuated equilibrium. For relatively long periods of time, the ratio of populations remain in a steady tango of give and take with only the occasional extinction or birth of a new species. Then, in a relative blink, this equilibrium is punctuated by a rapid burst of roiling change with many newcomers and eclipsing of the old. For a short period change is rampant. Then things sort out and stasis and equilibrium reigns again. The current interpretation of fossil evidence on Earth is that this pattern predominates in nature. Stasis is the norm; change occurs in bouts. The same punctuated equilibrium pattern has been seen in other evolutionary computer models as well, such as Kristian Lindgren's coevolutionary Prisoner's Dilemma world. If artificial evolution mirrors organic evolution, one has to wonder what would happen if Ray let his world run forever? Would his viral creatures invent multicellularity?

Unfortunately, Ray has never turned his world on marathon mode just to see what would happen over months or years. He's still fiddling with the program, gearing it up to collect the immense store of data (50 megabytes per day) such a marathon run would generate. He admits that "sometimes we're like a bunch of boys with a car. We've always got the hood up and pieces of the engine out on the garage floor, but we hardly ever drive the car because we're too interested in souping it up."

In fact, Ray has his sights fixed on a new piece of hardware, a technology that ought to be. Ray figures that he could take his virtual computer and the fundamental language he wrote for it and "burn" it into a computer chip -- a slice of silicon that did evolution. This off-the-shelf Darwin Chip would then be a module you could plug into any computer, and it would breed stuff for you, fast. You could evolve lines of computer code, or subroutines, or maybe even entire software programs. "I find it rather peculiar," Ray confides, "that as a tropical plant ecologist I'm now designing computers."

The prospects that a Darwin Chip might serve up are delicious. Imagine you have one in your PC where you use Microsoft Word as a word processor. With resident Darwinism loaded into your operating system, Word would evolve as you worked. It would use your computer's idle CPU cycles to improve, and learn, in a slow evolutionary way, to fit itself to your working habits. Only those alterations that improved the speed or the accuracy would survive. However Ray feels strongly that messy evolution should happen away from the job. "You want to divorce evolution from the end user," he says. He imagines "digital husbandry" happening offline in back rooms, so to speak, so that the common failures necessary for evolution are never seen by its customer. Before an evolving application is turned over to an end user, it is "neutered" so that it can't evolve while in use.

Retail evolution is not so farfetched. Today you can buy a spreadsheet module that does something similar in software. It's called, naturally enough, "Evolver." Evolver is a template for spreadsheets on the Macintosh -- very complicated spreadsheets spilling over with hundreds of variables and "what-if" functions. Engineers and database specialists use it.

Let's say you have the medical records of thirty thousand patients. You'd probably like to know what a typical patient looks like. The larger the database, the harder it is to see what you have in there. Most software can do averaging, but that does not extract a "typical" patient. What you would like to know is what set of measurements -- out of the thousands of categories collected by the records -- have similar values for the maximum number of people? It's a problem of optimizing huge numbers of interacting variables. The task is familiar to any living species: how does it maximize the results of thousands of variables? Raccoons have to ensure their own survival, but there are a thousand variables (foot size, night vision, heart rate, skin color, etc.) that can be changed over time, and altering one parameter will alter another. The only way to tread through this vast space of possible answers, and retain some hope of reaching a peak, is by evolution.

The Evolver software optimizes the broadest possible profile for the largest number of patients by trying a description of a typical patient, then testing how many fit that description, then tweaking the profile in a multitude of directions to see if more patients fit it, and then varying, selecting, and varying again, until a maximum number of patients fit the profile. It's a job particularly suited for evolution.

"Hill climbing," computer scientists call the process. Evolutionary programs attempt to scale the peak in the libraries of form where the optimal solution resides. By relentlessly pushing the program toward better solutions, the programs climb up until they can't climb any higher. At that point, they are on a peak -- a maximum -- of some sort. The question always is: is their summit the tallest peak around, or is the program stuck on a local peak adjacent to a much taller peak across the valley, with no way to retreat?

Finding a solution -- a peak -- is not difficult. What evolution in nature and evolutionary programs in computers excel at is hill climbing to global summits -- the highest peaks around -- when the terrain is rugged with many false summits.

continue...