For those who are not aware of digital evolution, I am writing a quick short summary. Digital evolution means evolution of computer programs who compete for limited resources such as CPU and memory. In short, it goes something like this:
- You define a universe, which is virtual memory (space) and CPU (time)
- You create energy (CPU cycles)
- You define an extremely limited instruction set for Virtual Machine (Physics). Instruction set being limited is important because you want to mimic physics, not chemistry or biology
- You seed randomly generated programs of varying length
- You start parallel execution the random programs
- Each instruction eats up energy and at random times you feed energy into universe
- At random times mis-execute program instructions
- Run it for a long time and Voila! finally self replication gets evolved from very simple instructions
- Then arms race gets started between programs and things get interesting
Some people argue that digital evolution is not merely an emulation of real thing but is indeed a real manifestation of evolution and I tend to believe the same.
PS: I will admit that I haven't run it for long so if you find interesting results, do let me know
It would be interesting to see screenshots and interesting results.
I wrote a similar artificial life program, called Bluedogs. The hard part was tweaking the constants of the digital universe so the creatures would quickly evolve useful traits. You can see it at http://tamale.net/bluedogs/.
- You define a universe, which is virtual memory (space) and CPU (time)
- You create energy (CPU cycles)
- You define an extremely limited instruction set for Virtual Machine (Physics). Instruction set being limited is important because you want to mimic physics, not chemistry or biology
- You seed randomly generated programs of varying length
- You start parallel execution the random programs
- Each instruction eats up energy and at random times you feed energy into universe
- At random times mis-execute program instructions
- Run it for a long time and Voila! finally self replication gets evolved from very simple instructions
- Then arms race gets started between programs and things get interesting
Some people argue that digital evolution is not merely an emulation of real thing but is indeed a real manifestation of evolution and I tend to believe the same.
PS: I will admit that I haven't run it for long so if you find interesting results, do let me know