The JEvolution framework supports the development of applications based on Evolutionary Computation (EC). Basically, only one class implementing the Phenotype interface, where genotype-phenotype mapping and fitness calculation are defined, have to be written. The latter are problem-specific operations, while all (or most) other components of an Evolutionary Algorithm (EA) are handled by the framework. It supports a number of different encodings enabling EAs of different flavors (including Genetic Programming) having been extensively tested in a number of applications, e.g., evolution of robotic neurocontrollers or neural Go players.
JEvolution Features
- Lean and compact Java package
- Supports bitstring, integer, permutation, real encoding (native chromosomes)
- Supports tree chromosomes (native) for Genetic Programming including a basic set of function and terminal nodes
- Supports evolution of chromosome length (bitstring encoding) by means of non-homologous crossover (experimental)
- User may provide custom chromosomes
- Genotype may comprise an arbitrary number of different chromosomes
- Chromosome shuffling
- Records a Star Pool (containing all intermediate best individuals)
- Individuals may be stored to and loaded from an XML file
- Flexible termination criteria (number of generations, fitness threshold, evolution time)
- Supports splitting of a population into sub-populations
- Handles maximization and minimization problems without fitness scaling
- Supports tournament selection with arbitrary tournament size (native selection method)
- User may provide custom selection method (extending the abstract class Selection)
- Simple Java Interface for problem-specific code
- Direct access to genotype for Lamarckian evolution or repair methods
- Set up for distributed computation of fitness
- Set up for thread execution
- Default reporter for simple statistics on evolutionary progress
- User may provide costum reporter (implementing the Reporter interface)
Binaries, Documentation, and Sample Programs
- A short introduction
- A small sample program
- The complete package (including API)
(if you are using the software for any non-private use, it is highly appreciated, if you are citing it, note that in any case you MUST adher to the license of the included JDOM package)
Last modified: Mar 18 2016