ECJ is a freeware
evolutionary computation
In computer science, evolutionary computation is a family of algorithms for global optimization inspired by biological evolution, and the subfield of artificial intelligence and soft computing studying these algorithms. In technical terms, ...
research system written in Java. It is a framework that supports a variety of evolutionary computation techniques, such as
genetic algorithms
In computer science and operations research, a genetic algorithm (GA) is a metaheuristic inspired by the process of natural selection that belongs to the larger class of evolutionary algorithms (EA). Genetic algorithms are commonly used to gene ...
,
genetic programming
In artificial intelligence, genetic programming (GP) is a technique of evolving programs, starting from a population of unfit (usually random) programs, fit for a particular task by applying operations analogous to natural genetic processes to t ...
,
evolution strategies
In computer science, an evolution strategy (ES) is an optimization technique based on ideas of evolution. It belongs to the general class of evolutionary computation or artificial evolution methodologies.
History
The 'evolution strategy' optimizat ...
,
coevolution
In biology, coevolution occurs when two or more species reciprocally affect each other's evolution through the process of natural selection. The term sometimes is used for two traits in the same species affecting each other's evolution, as well ...
, particle swarm optimization, and
differential evolution
In evolutionary computation, differential evolution (DE) is a method that optimizes a problem by iteratively trying to improve a candidate solution with regard to a given measure of quality. Such methods are commonly known as metaheuristics a ...
. The framework models iterative evolutionary processes using a series of pipelines arranged to connect one or more subpopulations of individuals with
selection
Selection may refer to:
Science
* Selection (biology), also called natural selection, selection in evolution
** Sex selection, in genetics
** Mate selection, in mating
** Sexual selection in humans, in human sexuality
** Human mating strat ...
, breeding (such as
crossover
Crossover may refer to:
Entertainment
Albums and songs
* ''Cross Over'' (Dan Peek album)
* ''Crossover'' (Dirty Rotten Imbeciles album), 1987
* ''Crossover'' (Intrigue album)
* ''Crossover'' (Hitomi Shimatani album)
* ''Crossover'' (Yoshino ...
, and
mutation
In biology, a mutation is an alteration in the nucleic acid sequence of the genome of an organism, virus, or extrachromosomal DNA. Viral genomes contain either DNA or RNA. Mutations result from errors during DNA or viral replication, m ...
operators that produce new individuals. The framework is open source and is distributed under the
Academic Free License
The Academic Free License (AFL) is a permissive free software license written in 2002 by Lawrence E. Rosen, a former general counsel of the Open Source Initiative (OSI).
The license grants similar rights to the BSD, MIT, UoI/NCSA and Apa ...
. ECJ was created b
Sean Luke a computer science professor at George Mason University, and is maintained by Sean Luke and a variety of contributors.
Features (listed fro
ECJ's project page:
General Features:
* GUI with charting
* Platform-independent checkpointing and logging
* Hierarchical parameter files
* Multithreading
* Mersenne Twister Random Number Generators
* Abstractions for implementing a variety of EC forms.
EC Features:
* Asynchronous island models over TCP/IP
* Master/Slave evaluation over multiple processors
* Genetic Algorithms/Programming style Steady State and Generational evolution, with or without Elitism
* Evolutionary-Strategies style (mu, lambda) and (mu+lambda) evolution
* Very flexible breeding architecture
* Many selection operators
* Multiple subpopulations and species
* Inter-subpopulation exchanges
* Reading populations from files
* Single- and Multi-population coevolution
* SPEA2 multiobjective optimization
* Particle Swarm Optimization
* Differential Evolution
* Spatially embedded evolutionary algorithms
* Hooks for other multiobjective optimization methods
* Packages for parsimony pressure
GP Tree Representations:
* Set-based Strongly Typed Genetic Programming
* Ephemeral Random Constants
* Automatically Defined Functions and Automatically Defined Macros
* Multiple tree forests
* Six tree-creation algorithms
* Extensive set of GP breeding operators
* Seven pre-done GP application problem domains (ant, regression, multiplexer, lawnmower, parity, two-box, edge)
Vector (GA/ES) Representations:
* Fixed-Length and Variable-Length Genomes
* Arbitrary representations
* Five pre-done vector application problem domains (sum, rosenbrock, sphere, step, noisy-quartic)
Other Representations:
* NEAT
* Multiset-based genomes in the rule package, for evolving Pitt-approach rulesets or other set-based representations.
See also
*
Paradiseo
ParadisEO is a white-box object-oriented framework dedicated to the flexible design of metaheuristics. It uses EO, a template-based, ANSI-C++ compliant computation library. ParadisEO is portable across both Windows system and sequential plat ...
, a metaheuristics framework
*
MOEA Framework, an open source Java framework for multiobjective evolutionary algorithms
References
ECJ project page* Wilson, G. C. McIntyre, A. Heywood, M. I. (2004)
"Resource Review: Three Open Source Systems for Evolving Programs-Lilgp, ECJ and Grammatical Evolution" ''Genetic Programming And Evolvable Machines'', 5 (19): 103-105, Kluwer Academic Publishers. ISSN 1389-2576
Evolutionary computation
Agent-based software
Free software programmed in Java (programming language)