ECJ
An Evolutionary Computation and Genetic Programming System by Sean Luke
Copyright 2001 by Sean Luke, All Rights Reserved
Version 7


License Agreement

Important Note: Before you use this software, you must first carefully read the license agreement. It's pretty lenient but it has a few importnant items in it which differ from the standard open-source license agreement. Be certain that you agree with them. Keep in mind that the Author is a pretty reasonable guy.

Documentation

This distribution comes with several pieces of documentation:

Quick Examples

Some runs which result in the ideal individual being found (in most cases). First, cd to the ec directory. Then add the parent directory of the ec directory to your CLASSPATH. Then issue javac -O *.java */*.java */*/*.java */*/*/*.java Alternatively you can run the makefile.

Now you're ready. Here are some problems to try.

(GA) Vector Sum (pop=100, 10 genes)
java ec.Evolve -file app/sum/sum.params
(GA) Rastrigin (pop=1000, 100 genes)
java ec.Evolve -file app/ecsuite/ecsuite.params
(GA) Rosenbrock (pop=1000, 100 genes)
java ec.Evolve -file app/ecsuite/ecsuite.params -p eval.problem.type=rosenbrock
(GA) Sphere (pop=1000, 100 genes)
java ec.Evolve -file app/ecsuite/ecsuite.params -p eval.problem.type=sphere
(GA) Step (pop=1000, 100 genes)
java ec.Evolve -file app/ecsuite/ecsuite.params -p eval.problem.type=step
(GA) Noisy-Quartic (pop=1000, 100 genes)
java ec.Evolve -file app/ecsuite/ecsuite.params -p eval.problem.type=noisy-quartic
(GP) Symbolic Regression
java ec.Evolve -file app/regression/noerc.params
(GP) Symbolic Regression, no ercs
java ec.Evolve -file app/regression/erc.params
(GP) Artificial Ant, Santa Fe Trail
java ec.Evolve -file app/ant/params
(GP) Artificial Ant, Los Altos Hills Trail
java ec.Evolve -file app/ant/params -p eval.problem.file=app/ant/losaltos.trl
(GP) Boolean 3 Multiplexer (new fast form)
java ec.Evolve -file app/multiplexer/3.params
(GP) Boolean 6 Multiplexer (new fast form)
java ec.Evolve -file app/multiplexer/6.params
(GP) Boolean 11 Multiplexer (new fast form)
java ec.Evolve -file app/multiplexer/11.params
(GP) Boolean 3 Multiplexer (original form)
java ec.Evolve -file app/multiplexerslow/3.params
(GP) Boolean 6 Multiplexer (original form)
java ec.Evolve -file app/multiplexerslow/6.params
(GP) Boolean 11 Multiplexer (original form)
java ec.Evolve -file app/multiplexerslow/11.params
(GP) 8x8 Lawnmower
java ec.Evolve -file app/lawnmower/noadf.params
(GP) 8x8 Lawnmower with 2 ADFs
java ec.Evolve -file app/lawnmower/adf.params
(GP) Even 4-Parity
java ec.Evolve -file app/parity/params -p eval.problem.even=true
(GP) Odd 4-Parity
java ec.Evolve -file app/parity/params -p eval.problem.even=false
(GP) Even 3-Parity with 2 ADFs
java ec.Evolve -file app/parity/adf.params -p eval.problem.even=true
(GP) Odd 3-Parity with 2 ADFs
java ec.Evolve -file app/parity/adf.params -p eval.problem.even=false
(GP) Simple Edge Encoding for Tomita Language Problem 3
java ec.Evolve -file app/edge/3.params

After a run, various statistical information is written to the out.stat file. All the GP examples use a population size of 1000, and tournament selection. All other parameters are Koza-I/II standard.

Contacting the author

Sean Luke can be found at http://www.cs.umd.edu/users/seanl/