Java Evolutionary Computation Toolkit
   HOME

TheInfoList



OR:

ECJ is a freeware
evolutionary computation Evolutionary computation from computer science 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 g ...
,
genetic programming Genetic programming (GP) is an evolutionary algorithm, an artificial intelligence technique mimicking natural evolution, which operates on a population of programs. It applies the genetic operators selection (evolutionary algorithm), selection a ...
,
evolution strategies Evolution strategy (ES) from computer science is a subclass of evolutionary algorithms, which serves as an optimization (mathematics), optimization technique. It uses the major genetic operators mutation (evolutionary algorithm), mutation, recomb ...
,
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 a ...
, particle swarm optimization, and
differential evolution Differential evolution (DE) is an evolutionary algorithm to optimize 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 as they make few ...
. 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 Music Albums * ''Cross Over'' (album), a 1987 album by Dan Peek, or the title song * ''Crossover'' (Dirty Rotten Imbeciles album), 1987 * ''Crossover'', an album by Intrigue * ''Crossover'', an album by ...
, 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, ...
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 Apache l ...
. 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 an 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 platforms (Un ...
, a metaheuristics framework *
MOEA Framework The MOEA Framework is an open-source software, open-source evolutionary computation library for Java (programming language), Java that specializes in multi-objective optimization. It supports a variety of multiobjective evolutionary algorithms (MO ...
, 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)