Evolve 5.0 Blog
VOLVE    5.0

Newer Posts Older Posts

High-level Copy versus Low-level Copy

May 1st 2007

To elaborate on the previous discussion on self-copying. Here are two [b]real-world[/b] coding examples that can be used on windows to copy files: Low level copy:

f1 = fopen("source", "r");
f2 = fopen("destination", "w");
while( (c = fgetchar(f1)) != EOF ) {
    fputchar(f2, c);
}

fclose(f1);
fclose(f2);
High level copy: [pre] CopyFile("source", "destination"); [/pre] Both do the same thing, both are fairly compact algorithms. But the low-level copy can be hacked and modified more by evolution. The other one, the high level copy is just an atomic operation. Evolution doesn't have much to work with in this case. But the low level mechanism offers all kinds of ways in which a parasite can get started, and perpetuated. (Even the "low-level" example could have been expressed at even lower levels: For example machine code could have been used and BIOS interrupts)




Self Copying

May 1st 2007

Alan Turing spent a lot of effort thinking about the logic for self copying machines. All ALIFE simulators need to have a mechanism by which the evolving entity gets replicated. Avida, Tierra and Nanopond have the most "low level" copy mechanism. My simulator and others like it offer only a very high level operator like "MAKE-SPORE". These high level operators copy everything and insert pre-designed mutations. The low level self-copiers on the other hand must manually read each "byte" or instruction from their DNA code and then manually write each instruction to the output. Their minimum (non-parasitical) copy routine is equally as compact as what is done in Evolve. The difference is the low-level copiers offer a multitude of copy variants. The low-level self copiers are great at spawning parasites, viruses, and all kinds of bizzare agents that discover tricks to get their DNA spread around. (Evolve and the other high level copiers don't easily do this) I regret Evolve 4.0 doesn't take this approach. I wasn't well versed in all the alife programs out there when I began Evolve. If I were building Evolve today I would have implemented low-level operators for inspecting the organisms KFORTH and copying small bits to the output. Then I wouldn't have needed a special concept of "sexual" or "asexual" reproduction. If sexual reproduction ever did emerge, it would be an amazing thing, as it might reveal the steps that sex evolved on this planet. It would be a worthy goal of the Avida, Tierra and Nanopond style simulators to run long term sims with the goal of seeing a real honest to goodness sexual population emerge. (Evolution of sex is a major puzzle: [url=http://en.wikipedia.org/wiki/Evolution_of_sex]http://en.wikipedia.org/wiki/Evolution_of_sex[/url]




Newer Posts Older Posts