Example Code

We have implemented the 53 symbolic regression problems listed in the paper “Genetic Programming Needs Better Benchmarks”, within the ECJ evolutionary toolkit.

This code provides an example of how a “reference implementation” may be used to define and distribute benchmarks.

You can download the source and try out the examples as follows:

  1. svn checkout http://ecj.googlecode.com/svn/trunk/ ecj-read-only
  2. cd ecj-read-only/ecj/
  3. make
  4. java -cp . ec.Evolve -file ec/app/regression/benchmark.params

Please see the benchmark.params file for details on how to run the other benchmarks.

We have also implemented several of the constructed problems mentioned in the paper, and these have been added to ECJ also:

  • Order/Majority [java -cp . ec.Evolve -file ec/app/gpsemantics/order.params]
  • Royal Trees [java -cp . ec.Evolve -file ec/app/royaltree/royaltree.params]
  • Lid [java -cp . ec.Evolve -file ec/app/lid/lid.params]
  • K-Landscapes [java -cp . ec.Evolve -file ec/app/klandscapes/klandscapes.params]
  • Order Tree [java -cp . ec.Evolve -file ec/app/ordertree/ordertree.params]

The Dow Chemical dataset used in the Symbolic Regression EvoCompetitions event of the 2010 EvoStar conference is available here with a description here.

A community-led effort towards improving experimentation in Genetic Programming