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...
|