Elegance is a software environment I developed to study genetic algorithm configurations which are used to evolve neurocontrollers. I did this as my graduation project (see my publications). The latest version of Elegance is 2.1.3, released August 7, 2006. It can be downloaded here:
- The Elegance version 2.1.3
- A few sample files
- The Elegance version 2.1.3 sources. I use Delphi 5 to compile them. Delphi 6 works also, but I haven't tested any other Delphi versions.
A brief summary of Elegance's main features:
- Elegance contains about twenty different plants, among which there are several inverted pendulums, several ball-and-beam systems, a bioreactor, a box-pushing robot, a food-gathering rabbit and a duel between two spaceships. It's fairly easy to add new plants.
- Elegance contains four different types of neural controllers, namely a feedforward controller, a layered feedforward controller, a recurrent controller and a layered recurrent controller. Besides these, there are two different PID controllers that can be used for comparison.
- Elegance encompasses a highly configurable evolutionary algorithm, with support for real and binary valued chromosomes, several different selection, ranking, penalty and replacement mechanisms, three different fitness calculation mechanisms (one of which is plant-determined, so this can, in fact, be anything at all), support for islands and preloading of chromosomes, and about twenty different genetic operators. It's easy to add new genetic operators.