This is mostly of interest to computer history nerds.
Nils Aals Barricelli was an early computer scientist. Among other accomplishments, he pioneered what we now call genetic algorithms. I've learned about him from my friend
sandwolf5, who uses a fictional version of his work as the origin story of L.A.I.R.A., from the eponymous trilogy of novels (and the epic saga it spawned).
Now for the fun part: Barricelli's page on the chess programming wiki (turns out he also pioneered computer chess) lists this algorithm for "symbiogenetic" reproduction. It looks more like a cellular automaton to me, but whatever:
integer array this generation, next generation [1 :512];
begin
loop: for i : = 1 step 1 until 512 do
begin
n := j := this generation[i];
reproduce: if j = 0 then goto next i;
k := modulo 512 of (i) plus: (j);
if next generation[k] > 0 then
goto mutation else
next generation[k] := n;
j := this generation[k];
goto reproduce;
mutation:
next i: end;
copy next generation into this generation;
print this generation;
goto loop;
end;
( Read more... )