Java Example:
Genetic Algorithm Toolkit - Test Environment
WHAT IS IT? An environment for evolving creatures to walk. This is done using genetic algorithms as a learning method. This allows for an artificial creature to learn to walk completely unaided - it evolves an 'efficient' technique itself.
The system is split into two halves: The skeleton editor and the test environment. The applet below is the test environment. From here you may load in a skelton file and then start the applet running. If you wish to experiment with the skeleton editor, then it can be downloaded from here. To do this, you must run the Editor and Test Environment from your own hard-drive. Your skelton files can then be used if they're placed in the same directory. See link for details.
HOW TO USE:
- Click on the drop-down box to select and load a skeleton file. This will create a creature for you to experiment with.
- Set the initial population size and number of frames using the scrollbars. The number of frames is basically the number of key points used in the creatures walk.
- Click the start button to begin a run. This will create a population of creature genotypes. The program will then cycle through the processes of mutation, testing and selection of the fittest, and cloning the fittest.
- You will see the creature trying to walk. For a faster evolutionary process, check the 'show fittest only' box. This will only animate the fittest genotypes from each generation causing the creature to walk more quickly.
- Try changing the mutation rate and viewing the effect on the fitness graph. Note that the creature will have problems improving if the mutation rate is above 10% or so. (ie - it can't settle on a good trait).
EXAMPLE FILES:
- boris.ske - A human-like skeleton with constrained joints.
- nessie.ske - A constrained caterpillar-like creature with no legs.
- drunk.ske - An unconstrained human-like skeleton.
LIMITATIONS:
- There is no gravity model - Instead, a simple rule that forces the creature to have one moving part on the ground at all times.
- There is no simulation of energy expenditure. This would help to restrict the way in which the creature moves to a more 'sensible' / life-like collection of variations.
- There is no representation of creature mass. This isn't important as long as the above two factors are not present. However, mass could be added relatively easily.
WHERE TO?
Click here to go to my home page.
To contact me, please send e-mail to andy@jsh.net