views:

171

answers:

5

I'm looking for a good genetic programming library for JVM. (not genetic algorithm but genetic programming) I tried JGAP (jgap.sourceforge.net) and Watchmaker (watchmaker.uncommons.org). Unfortunately, those tools have only experimental and immature support for genetic programming (they are mainly focused on genetic algorithms).

Perhaps do you know any better tool for genetic programming, for JVM (can be written in Java or any other compiled language for JVM).

I'm not looking for a comprehensive list of GP tools, I'm rather looking for a good, popular tool (just like popular operating systems are Windows, Linux and Mac, and popular Java IDEs are Eclipse, IDEA and NetBeans).

It doesn't have to be genetic programming library (GP), it can also be (and it would probably better) a gene expression programming library (GEP).

+1  A: 

There are libraries like GenPro and n-genes for Java, and JGProg for Groovy.

There are more listed for several different languages in the Implementations section of the Genetic programming Wikipedia article, but as you mentioned many of those look like they're more for GA, so you'll have to evaluate each one to see if it suits your needs.

Bill the Lizard
Have you tried GP with some of these libraries? There are many GP libraries on the internet, but most of them are of very, very poor quality, completely unsuitable for production. I've tried JGAP and Watchmaker, and I'm unable to try all libraries available, so I'm asking you - users of stackoverflow for an opinion, maybe somebody of you have lots of experience with Java GP.
iirekm
A: 

JGAP (Java Genetic Algorithms Package) is a sophisticated GA library, available for free at jgap.sf.net, Many examples included.

Klaus
JGAP was already mentioned in the question."I tried JGAP (jgap.sourceforge.net)...."
Tansir1
I've mentioned JGAP in my question - very immature genetic programming support, added only in the recent version.
iirekm
What's more, JGAP has very ugly design (for example compared to Watchmaker).
iirekm
+1  A: 

ECJ has a lot of stuff for GP, and including several example projects.

Jivlain
+1  A: 

I am somewhat biased because I'm one of the authors, but EpochX is a Java library solely for Genetic Programming. It has support for a strongly-typed tree representation, and 2 grammar guided representations. It is primarily aimed at researchers, but it may be suitable depending on what you require it for. You can get more information at epochx.org.

Tom Castle
+1  A: 

I just finished building my own Genetic Programming tool in Clojure (Built on the JVM). Once I could do symbolic regression, I realized that the tool was a lot more restrictive than I wanted and more complex to solve the strongly typing issue. I've decided to move into a Grammatical Evolution tool (Genetic Programming can be construed as a subset of Grammatical Evolution). The GEVA tool is my first stop for a Grammatical Evolution tool. My understanding is that it is also still being developed (there was a recent rev this year (2010)).

Nick
Thanks for info, I didn't know about GEVA before. I guess that GEVA is more powerful for some problems, whereas for other genetic algorithms are more powerful, whereas for some another neural networks or Bayessian networks. I think I'll try genetic algorithms and GEP for now because I know them well, and if it won't please me, I'll try GEVA.
iirekm