Friday, June 18, 2010

Evolution, Part 2

I ran a few small simulations testing my code from the post below, and quickly added a few changes. It seems a way to stop the spread of programs is essential.

The program mutated several times while maintaining the ability to copy itself. With each byte set to have a 3 in 10,000 chance of changing, roughly 1 in 260 programs could run and reproduce.

I added a 5 second sleep, a file that they update every time they finish running, and a file they read from at the beginning and immediately terminate if it contains the word "stop". These setbacks will provide some basic room for improvement, the first steps of artificial fitness.

Going forward, I think I will require the programs to perform tasks before they can copy themselves. I think I might have them interact with another program that provides challenges, and if they pass, will copy and execute them. They will not have access to directly copy themselves. I look forward to sharing the results and seeing your input!

No comments:

Post a Comment