Species are used to group the individuals and control the reproduction, defining the structure of both the genome and decision modules, although the parameters can change from individual to individual. Each species can also define its own lifetime learning algorithm, that can update these parameters given the reward provided by the environment. The species of each individual also defines which species it can fed. Multiple species can co-evolve in the same simulation and simple or very complex food chains may be defined.
The learning task that is implicitly defined for each individual is to be able to eat the maximum number of preys, while avoiding predators (if any). The behaviour of the individuals of a given species in a simulation can be used to evaluate the performance of the strategy it implements in terms of the decision making methods. Also, the evolution of the overall species performance can be used to evaluate learning algorithms and evolutionary strateges.
A demo of the software getALife is available for downloadgetALife stable version 1.1.4
Instructions: Just download and run java -jar getalife.jar
(needs Java Runtime 1.5 or greater)
For access to the complete project source please contact:
Miguel Rocha, Univ. Minho, Portugal
mrocha at di dot uminho dot pt