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