Fri 24 Mar 2006
Artificial Evolution
Posted by jon under Python, Technical
No Comments
Ever since I first read about Tom Ray's Tierra artificial evolution system, I have been very interested in where it would go. The idea of the software evolving and creating unplanned complexity seemed like a really good idea. However it never really seemed to go anywhere, and Tom seems to have started researching other things, such as evolvability. I am starting to think that the reason that he did so is that it is very hard to get software to evolve. I have written an artificial evolution environment in Python that runs animals written in my own stack implementation of a Virtual Machine. It has network communication, so separated environments can talk to each other. This is implemented as a P2P sort of service, where there is no central server required, and all the peers tell each other about peers in the network, this part isn't completely tested yet. I am happy with where the whole thing is going, but am having problems with the basic design. There are a few problems that have to be solved to get an environment that encourages evolution working:
- A virtual machine (done for now)
- An Ancestor animal that is able to reproduce (done)
- A mechanism for communication between genepools (mostly done)
- Mutation (done for now)
- Environmental pressures that encourage fitness, and allow new species to breed (problems)
- A user interface, so that we can see what is happening (partly done)
My problem has been, that once a species becomes dominant, it is hard for a new species to make a niche. Various Reaper strategies can help with this, but it isn't ideal. I need to have a bit more of a think about what the environment is for. The Tierra idea is to create an artificial ecosystem, where animals live and evolve, not as a place to optimise a solution to a problem. So the idea of every generation taking the most 'fit' animals and mutating them doesn't quite fit. I am not quite ready to release the source code publically but if anyone is interested you can certainly have it.
