What genetic-programming library, regardless of language, has the most active community and is the most well developed?
It's hard to tell, frankly. ParadisEO seems to be very active, and is a pretty large library encompassing various metaheuristics besides GP. Note that it is a superset of the EO library. OpenBEAGLE is nice, but it hasn't been updated since 2007. Watchmaker is very good and active right now, but it only has a proof of concept implementation of GP for now. There's a plethora of libraries out there and rather hard to tell which is the best one. And it's not very hard to roll your own GP, so keep that possibility in mind.
HeuristicLab has a very sophisticated implementation that is both fast. For example in an independent benchmark you can see that the speed of HeuristicLab's interpreter was equal to a newly coded minimalistic C++ interpreter that included optimizations. It is also very flexible in that you can configure the grammar that creates your tree in the GUI environment. So you can create functions that should e.g. only have certain variables as inputs, but not all. The implementation is based on a long heritage of code, that is very actively developed and which is reviewed before each release to ensure the continued quality. HeuristicLab supports Regression, Classification, as well as custom problems like Santa Fe trail or Lawn Mower (of which a tutorial exists that helps you implement your own custom problem). There is crossvalidation, there is a separation of training, validation and test that you can make use of to detect overfitting. You will get as results how much each variable is present in the whole population, how much your symbols are present in the population so you can estimate what variables are important. This is displayed as a graph over time. There's also a pareto analyzer that you can enable to show all solutions by quality and complexity. HeuristicLab also contains the recently (GECCO2012) emerging GP benchmark library to enable people to test and compare results. Apart from GP there are further regression and classification algorithms implemented like SVM, Random Forests, k-NN, etc.
It's implemented in C# and runs on .Net 4 (currently only on windows, mono support is close to finish).
You might want to check out Gene Expression Programming (GEP). It is an alternative form of genetic programming.
There is a technology site at http://www.gene-expression-programming.com/. The company behind it is GEPSoft http://www.gepsoft.com.
You can try this C# .NET 4.0 port of Sean Luke's ECJ (Evolutionary Computation in Java):
http://branecloud.codeplex.com
It is very flexible and powerful software! But it is also relatively easy to get started because it includes many working console samples out-of-the-box (and many helpful unit tests that were developed during the conversion).
As noted above, if you program in Java, you should visit Sean Luke's site directly:
http://cs.gmu.edu/~eclab/projects/ecj/
It has been under active development for 13 years!
Ben
JGAP for Java seems fairly active. Looking at the checkin history there was a burst of activity a couple of months ago. http://jgap.sourceforge.net/
I'm a fan of ECJ, "A Java-based Evolutionary Computation Research System":
http://cs.gmu.edu/~eclab/projects/ecj/
The mailing list is usually moderately active, indicating to me the general good health of the project. I have been using ECJ for almost all of my GA and GP research and it has a lot of interesting built-in features plus several third party contributions.
ECJ's creator, Sean Luke, also wrote an awesome and free downloadable book: cs.gmu.edu/~sean/book/metaheuristics/
CILib from the CIRG team. It's been update regularly. The developers are always frequent to answer your questions.
Forum: http://www.cilib.net/
© 2022 - 2024 — McMap. All rights reserved.