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:
- Download and unzip/ungzip from https://cs.gmu.edu/~eclab/projects/ecj/, specifically https://cs.gmu.edu/~eclab/projects/ecj/ecj.25.tar.gz
- Build according to https://cs.gmu.edu/~eclab/projects/ecj/
- 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]