Digital Evolution Basics

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.

To download the digital evolution simulator written by me in Python (called PyPond), head to: Download: Normal version or With graphics version (requires PyGame library)