ECJ is a research EC system written in Java. It was designed to be highly flexible, with nearly all classes (and all of their settings) dynamically determined at runtime by a user-provided parameter file. All structures in the system are arranged to be easily modifiable. Even so, the system was designed with an eye toward efficiency.

ECJ is developed at George Mason University's ECLab Evolutionary Computation Laboratory. The software has nothing to do with its initials' namesake, Evolutionary Computation Journal. ECJ's sister project is MASON, a multi-agent simulation system which dovetails with ECJ nicely.

New Paper!

NSF Grant!

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.

A really, really big manual

Optional builds with Apache Maven EC Features Asynchronous island models over TCP/IP

Master/Slave evaluation over multiple processors, with support for generational, asynchronous steady-state, and coevolutionary distribution

Genetic Algorithms/Programming style Steady State and Generational evolution, with or without Elitism

Evolutionary-Strategies style (mu,lambda) and (mu+lambda) evolution

Dedicated package for efficient single-state (hill-climbing, simulated annealing, etc.) methods

CMA-ES, AMaLGaM IDEA, PBIL, DOvs EDAs

Ant System, Ant Colony System, and GRASP

Very flexible breeding architecture

Many selection operators

Multiple subpopulations and species

Inter-subpopulation exchanges

Reading populations from files

Single- and Multi-population coevolution

NSGA-II, NSGA-III, and SPEA2 multiobjective optimization

Particle Swarm Optimization

Differential Evolution

Spatially embedded evolutionary algorithms

Hooks for other multiobjective optimization methods

Meta-Evolution

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

Grammatical Encoding

Push

Many pre-done GP application problem domains, including ant, regression, multiplexer, lawnmower, parity, two-box, edge Vector (GA/ES) Representations Fixed-Length and Variable-Length Genomes

Arbitrary representations

Variety of mutation and crossover operators

Many pre-done vector application problem domains (rastrigin, sum, rosenbrock, sphere, step, noisy-quartic, booth, griewangk, nk, hiff, median)

23 Black-Box Optimization competition benchmark problems, plus noisy versions. Other Representations NEAT

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

Download ECJ

Reviews

Mailing Lists

subscribe ECJ-INTEREST-L

unsubscribe ECJ-INTEREST-L

ecj-help @ cs.gmu.edu