Jump to content

Java Evolutionary Computation Toolkit

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Doranchak (talk | contribs) at 11:10, 19 August 2007 (Created page with 'ECJ is a evolutionary computation research system written in Java. It is a framework that supports a variety of evolutionary computation techniques, such as [[...'). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

ECJ is a evolutionary computation research system written in Java. It is a framework that supports a variety of evolutionary computation techniques, such as genetic algorithms, genetic programming, evolution strategies, coevolution, particle swarm optimization, and differential evolution. The framework models iterative evolutionary processes using a series of pipelines arranged to connect one or more subpopulations of individuals with selection, breeding (such as crossover, and [[Mutation (genetic algorithm)|mutation] operators that produce new individuals.

Features:

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:

   * Multiset-based genomes in the rule package, for evolving Pitt-approach rulesets or other set-based representations.