ECJ 10
A Java-based Evolutionary Computation and
Genetic Programming Research System
by Sean Luke
Contributors: Liviu Panait, Jeff Bassett, Robert Hubley, Gabriel Catalin Balan, and Alexander Chircop
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 notions 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 10 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.
ECJ10 is bug fixes mostly. One bug fix is particularly crucial with regard to ES: ECJ9's mu,lambda and mu+lambda selection procedures were usually inverted (it picked the worst individuals rather than the best). Hopefully we've got that straight now :-) ... double-check just in case and let us know.
Another bug fix -- well, update really -- is a new initialization algorithm for Mersenne Twister. This puts us in parity with the current MT implementations; however the result is that we are NOT replicable with previous ECJ versions any more. If you need replicability, the previous version of MT is provided in ec/util.
In general, it would be wise to scrutinize the CHANGES file...
The software license refers to the "Agent". Presently, that's me, Sean.
This is just a small sample, of course.