Just got a mail about SpamAssassin from Aaron Swartz, noted RDF guy. He runs
a very interesting blog called swhack, which I’ve seen cited
before, but never visited for some reason. Now I have, and it’s on the
bookmarks list ;)
Anyway, the main reason for blogging this is this blog item
about a story called Darwin Goes
Digital, which is quite a nice intro to genetic programming:
… genetic programming (GP) , developed over the
last decade by John Koza and his colleagues at Stanford University.
Instead of starting with a set of guesses for the solution to a problem,
GP begins with guesses for the actual method that best solves the problem.
These are usually stated as random groups of instructions written in Lisp,
a programming language able to cope with the cross-breeding and mutation
demanded by the GP approach.
Interestingly though, the first time I heard about GP-style techniques
was in Tierra,
Tom Ray’s Darwinian OS:
The Tierra C source code creates a virtual computer and its Darwinian
operating system, whose architecture has been designed in such a way
that the executable machine codes are evolvable. This means that the
machine code can be mutated (by flipping bits at random) or
recombined (by swapping segments of code between algorithms), and the
resulting code remains functional enough of the time for natural (or
presumably artificial) selection to be able to improve the code over
time.
Along with the C source code which generates the virtual computer, we
provide several programs written in the assembler code of the virtual
computer. Some of these were written by a human and do nothing more
than make copies of themselves in the RAM of the virtual computer.
The others evolved from the first, and are included to illustrate the
power of natural selection.
This system results in the production of synthetic organisms based on
a computer metaphor of organic life in which CPU time is the
“energy” resource and memory is the “material” resource. Memory
is organized into informational patterns that exploit CPU time for
self-replication. Mutation generates new forms, and evolution
proceeds by natural selection as different genotypes compete for CPU
time and memory space.
Diverse ecological communities have emerged. These digital communities
have been used to experimentally examine ecological and evolutionary
processes: e.g., competitive exclusion and coexistence, host/parasite
density dependent population regulation, the effect of parasites in
enhancing community diversity, evolutionary arms race, punctuated
equilibrium, and the role of chance and historical factors in
evolution. This evolution in a bottle may prove to be a valuable tool
for the study of evolution and ecology.
It was very exciting to see artificial evolution techniques actually
work in this way, as if operating on a real genotype (have to be
careful w.r.t. terminology here, Catherine’s a zoologist and gets very
peeved about this stuff). Unfortunately, Tierra development seems to have
stalled since then.