ECJ (original) (raw)
ECJ 27
A Java-based Evolutionary Computation Research System
By Sean Luke, Eric O. Scott, Liviu Panait, Gabriel Balan, Sean Paus, Zbigniew Skolicki, Rafal Kicinger, Elena Popovici, Keith Sullivan, Joseph Harrison, Jeff Bassett, Robert Hubley, Ankur Desai, Alexander Chircop, Jack Compton, William Haddon, Stephen Donnelly, Beenish Jamil, Joseph Zelibor, Eric Kangas, Faisal Abidi, Houston Mooers, James O'Beirne, L. Manzoni, Khaled Ahsan Talukder, Sam McKay, James McDermott, Jason Zou, Anson Rutherford, David Freelan, Ermo Wei, Sunil Rajendran, Ananya Dhawan, Ben Brumbac, Javier Hilty, and Anowarul Kabir.
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!
ECJ's latest updates and directions (starting with Version 27) were presented at GECCO 2019 in the paper ECJ at 20: Toward a General Metaheuristics Toolkit.
NSF Grant!
The ECJ team has received a three-year NSF grant to improve and enhance ECJ. Version 27 is the third release under this grant, and reflects a lot of additions.
Features
| General Features GUI with chartingPlatform-independent checkpointing and loggingHierarchical parameter filesMultithreadingMersenne Twister Random Number GeneratorsAbstractions for implementing a variety of EC forms.A really, really big manualOptional builds with Apache Maven EC Features Asynchronous island models over TCP/IPMaster/Slave evaluation over multiple processors, with support for generational, asynchronous steady-state, and coevolutionary distributionGenetic Algorithms/Programming style Steady State and Generational evolution, with or without ElitismEvolutionary-Strategies style (mu,lambda) and (mu+lambda) evolutionDedicated package for efficient single-state (hill-climbing, simulated annealing, etc.) methodsCMA-ES, AMaLGaM IDEA, PBIL, DOvs EDAsAnt System, Ant Colony System, and GRASPVery flexible breeding architectureMany selection operatorsMultiple subpopulations and speciesInter-subpopulation exchangesReading populations from filesSingle- and Multi-population coevolutionNSGA-II, NSGA-III, and SPEA2 multiobjective optimizationParticle Swarm OptimizationDifferential EvolutionSpatially embedded evolutionary algorithmsHooks for other multiobjective optimization methodsMeta-EvolutionPackages for parsimony pressure | GP Tree Representations Set-based Strongly-Typed Genetic ProgrammingEphemeral Random ConstantsAutomatically-Defined Functions and Automatically Defined MacrosMultiple tree forestsSix tree-creation algorithmsExtensive set of GP breeding operatorsGrammatical EncodingPushMany pre-done GP application problem domains, including ant, regression, multiplexer, lawnmower, parity, two-box, edge Vector (GA/ES) Representations Fixed-Length and Variable-Length GenomesArbitrary representationsVariety of mutation and crossover operatorsMany 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 NEATMultiset-based genomes in the rule package, for evolving Pitt-approach rulesets or other set-based representations. |
|---|
Download ECJ
| Download ECJ version 27 as <ecj27.tar.gz> or (bigger) <ecj27.zip>. Download ECJ's support libraries as <libraries.tar.gz> or <libraries.zip>. The support libraries provide four facilities: ECJ's CMA-ES code relies on the matrix library EJML.ECJ's distributed evaluation and island model facilities have optional compressed socket options for more efficiency. Java's standard compression routines are broken for sockets (they don't support "partial flush") and so we rely on the JZlib library to do it.ECJ's GUI relies on the JFreeChart and iText libraries, specifically the jfreechart.jar, jcommon.jar, and iText.jar files. Use the ECJ versions, not the versions on those websites. If you don't wish to use the GUI and thus install JFreeChart and iText, you can just get rid of the ec/display directory and don't call make gui, and ECJ will compile and run from the command line fine. Per license agreement, we provide source to these libraries here.ECJ's Push facility relies on a modified version of the Psh interpreter. Be sure to use the ECJ version. New! The ECJ Owner's Manual is now available. Hundreds of pages of mind-numbing tedium detailing every last feature. Enjoy!The full online documentation of the system, including tutorials, is also available. Repository: ECJ's repository is at Github, under the project name ecj.Contrib packages: (also out on CVS in the contrib directory) CGP by David Oranchak: contrib-cgp-18.zip. Extensions for Julian Miller's Cartesian Genetic Programming. Documentation and tutorial here.DRM by Alberto Cuesta: drm.zip. Extensions to marry run ECJ with the DRM peer-to-peer distributed computation engine developed for the dr-ea-m distributed EC project.GEP by Bob Orchard: ecj18Gep.zip. Extensions for Gene Expression Programming.Xholon by Ken Webb: Simple modifications to ECJ that allow it to be embedded within the Xholon modeling and simulation tool.Teambots ECJ by Liviu Panait and Sean Luke: teambots.tar.gz or teambots.zip. Extensions to ECJ to make it interoperate reasonably well with the venerable TeamBots lightweight robot simulation package. Getting up in age: we don't use it any longer. Elsewhere: ALPS and FSALPS in ECJ, by Anthony Awuley.Origin is a commercial port of ECJ to Frontier, Parabon Inc.'s massive distributed computing platform.An ECJ output -> Java converter by Olly Oechsle. YouTube Instructional Video for using ECJ under Eclipse (part 1 and part 2) by Robert Baruch.Symbolic Regression with ECJ using an NVidia G80 Graphics Processing Unit by Denis Robilliard, Virginie Marion-Poty, and Cyril Fonlupti.CUDA Extensions for ECJ's GP facility (CudaGP) by Mehran Maghoumi. Requires JCuda.Additional coevolutionary algorithms for ECJ by Marcin Szubert.Ben Stabile is developing a C# port of ECJ.gp-benchmarks.org maintains various ECJ GP benchmarks. | | Previous Releases Version 26:ecj25.tar.gz Version 25:<ecj25.tar.gz> Version 24:<ecj24.tar.gz> Version 23:<ecj23.tar.gz> Version 22:<ecj22.tar.gz> Version 21:<ecj21.tar.gz> Version 20:<ecj20.tar.gz> Version 19:<ecj19.tar.gz> Version 18:<ecj18.tar.gz> Version 17:<ecj17.tar.gz> Version 16:<ecj16.tar.gz> Version 15:<ecj15.tar.gz> Version 14:<ecj14.tar.gz> Version 13:<ecj13.ec.tar.gz> Version 12:<ecj12.ec.tar.gz> Version 11:<ecj11.ec.tar.gz> Version 10:<ecj10.ec.tar.gz> Version 9:<ecj9.ec.tar.gz> Version 8:<ecj8.ec.tar.gz> Version 7:<ecj7.ec.tar.gz> Version 6:<ecj6.ec.tar.gz> Version 5:<ecj5.ec.tar.gz> Version 4:<ecj4.ec.tar.gz> Version 3:<ecj3.ec.tar.gz> | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
Reviews
Genetic Programming and Evolvable Machines has reviewed ECJ, and kindly, a few times. The most recent is "Software Review: the ECJ Toolkit" by David White.
Mailing Lists
If you have questions or ideas regarding ECJ, we suggest you join the ECJ-INTEREST Discussion List. (Alternatively, send mail to listserv@listserv.gmu.edu with the words subscribe ECJ-INTEREST-L in the body of the message. Likewise, to unsubscribe, use unsubscribe ECJ-INTEREST-L). You can also view the archives. If you want to report a bug, you can contact the ECJ authors directly at ecj-help @ cs.gmu.edu