ECJ 7
A Java-based Evolutionary Computation and
Genetic Programming Research System
by Sean Luke
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 may make you reconsider biases about Java and slowness.
ECJ is pretty full-featured as evolutionary computation systems go, and I believe it to be the most feature-rich GP system available in the public domain.
General Features
Download ECJ version 7 (prerelease) as ec.tar.gz or (bigger) ec.zip. The license agreement and online documentation of the system is also available.
ECJ is released under a special open source license. Please read the license before using the software. See the provided README file to locate the software license.
ECJ is a very extensive system and my experimental needs only rigorously test certain parts of it. I welcome you to try it out and bang on it and improve it. Please contact me with any suggestions, ideas, or modifications.
ECJ 7 contains some bug fixes and minor changes from ECJ 6. There was an island model error which caused incorrect topologies. Additionally, ECJ 7 now permits statistics objects to be in a tree -- this may require a slight rework of any custom statistics objects you've made.
ECJ 6 underwent extensive changes which are not backward-compatible with ECJ 5. You will need to tweak your code a little bit in order to get it to run. I'm sorry about that -- it was necessary to do some long-overdue cleanup in order to make possible new features in ECJ 6, especially its island model. Read the CHANGES file carefully for information about these modifications.
We've written the following stuff for ECJ, but have not yet included it in ECJ 7:
The software license refers to the "Agent". Presently, that's me, Sean.
As ECJ is moving into non-GP domains, I'll build up a list of Java-based EC systems in a while. For now, here's what I think is a definitive list of Java-based GP environments.