This week’s BEACON Researchers at Work blog post is by Keck Graduate Institute graduate student Nicolas Chaumont, who is currently a visiting scholar at MSU.
Everybody I’ve talked to who is aware of Karl Sims’ work on the evolution of his 3D blocky creatures was impressed by the seemingly elaborate behavior they were capable of, despite their simple morphologies. The presentation of his results in 1994 was seen as a technical tour de force. Even by today’s standards, his work remains impressive. I was poised in the summer of 2000 to start a Master’s project at Sherbrooke University in Canada, with the goal of reproducing some of his results. This is how the EVO project has begun. Many students who underwent similar efforts to reproduce Sims’ work typically graduate and move on to a different project. Unlike them, I was fortunate to have Prof. Chris Adami as my Ph.D. adviser who saw how this program could be expanded to study Speciation, and other aspects of Evolutionary Biology.
EVO stands for Environment, Virtual objects, and Optimization Algorithm. EVO belongs to the few evolutionary platforms that can co-evolve virtual organisms’ morphology and controller (neural network) in 3D physically realistic environments. It is cross-platform (used on Windows, Mac OSX and Linux) and plugin based, so that extensions are easy to write. It is probably the only simulation platform that is designed to support arbitrary environments, virtual organisms and any optimization algorithm and 3D physics engines that exist. In EVO, you can evolve controllers for robots, catapults, blocky creatures that are able to walk, jump, swim, and follow one or multiple targets in various physics engines. It is also optimized to support large simulations with several hundreds of organisms within the same world on a single computer. Most of those capabilities have actually been developed or expanded within the last year (2010-2011) at BEACON.
Even though those features seem numerous, almost all of them are necessary to achieve my main goal: Use EVO to study speciation. To begin with, I need a self-sustaining population of similar or identical organisms, which I hope, will differentiate into several species if given enough time. Those organisms ought to be able to forage autonomously. This happens to be a hard problem: How to evolve them to become autonomous foragers? If you simulate a random population of artificial creatures for weeks and you replenish the population with organisms built from scratch (to maintain a constant population size), nothing happens (believe me, I’ve tried it!). Locomotion itself is rare: in a random population, there is about one in a hundred that move at all, and among those, about another one in a hundred that go blindly to an arbitrary direction, without using any sensor. Fortunately, thanks to selection, evolving walkers in EVO is systematic and takes about 2 hours.
The difficulty is obtaining organisms that generalize over the position of food sources. If I vary the position of the food sources too little, they will take those positions for granted and won’t be able to cope with other positions (overfitting). If I vary the positions too much, they can’t know what information to use, and they drift at random. So the problem is to strike a balance between those two extremes. They also have to hunt for several food sources in sequence. All those requirements and the exploratory nature of this work necessitates a lot of computing power, and ICER and the HPCC at Michigan State University have become an essential part of this research.
After the first foragers appear, the project will move on to a new phase: The open-ended simulation of many organisms in the same virtual world. This kind of simulation poses its own technical challenges. First, EVO’s simulation speed for such environments will have to be drastically optimized. Simulating in the order of thousand of blocks (that potentially collide together), tens of thousands of sensors (that have to be fed with environmental variables) and close to a million neurons poses a challenge to any modern desktop computer (as of 2011). This will probably involve using parallel programming techniques such as threads, MPI or OpenMP. Fortunately, ICER provides courses on those topics as well as one-to-one help on problems related to parallel programming. If the HPCC is not enough, we also have access to the TeraGrid, with much more computing power. Once the simulation will run at acceptable speed, we will have to explore critical environmental factors, such as conditions for reproduction, for finding a mate, transfer of energy to the offspring, energy contained in food sources, how to place them, at what rate, how much energy to use for motion, metabolic maintenance, thinking, etc. As an example, the population will have to be fed appropriately: Too many food sources, and the organisms won’t need to forage and might likely lose this ability whereas too little food sources will starve the entire population and drive it to extinction.
Once all those problems are overcome and evolution is happening, we’ll face somewhat the same problem as those faced on the field: What clue to look for? We can’t monitor every single variable, that would result in far more data than we can process. Even a fraction, such as a tenth of a percent, is completely infeasible. On the other hand, unlike field experiment, the measurements are 100% accurate, and we can re-run experiments multiple times to see if an event reoccurs consistently or if it is an accident.
For more information about Nicolas’ work, you can contact him at nicolas dot chaumont at gmail dot com.