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.