Question

I want to implement some simple genetic algorithms in Java.

So far I found only JGAP. Did somebody has some experience with that? And do you know other Java libraries for GA?

I do not want to write it my own as in GA written in Java and I have to use Java, so What is the most active genetic programming library? is also not that helpful.

Was it helpful?

Solution

I wrote the Watchmaker Framework so my opinions are not unbiased. ECJ and JGAP are the two most established options and probably the most comprehensive. On the other hand their age means they target older versions of Java, which means no generics.

The Hidden Clause blog did a series of posts (scroll down the list to see them) comparing JGAP, ECJ and Watchmaker.

Of the frameworks I didn't write, Jenes is probably the one that has the API that I most like the look of. It too uses a more modern generics-based approach.

OTHER TIPS

Maybe you will have a look at the GA (Jenetics) that I've written. It uses the Javolution library for parallelization and the JScience library for the numeric stuff. I think it's worth a look.

I know Apache Mahout (based on Apache Hadoop) has a load of machine learning type algorithms - although not sure if it's exactly what you're looking for?

http://mahout.apache.org/

This is an alternative I had bookmarked for my own edification later. I've used JGAP in the past and been happy with it, but this one seems to have lots of excellent examples and I thought I'd give it a try next time I needed optimization code.

http://watchmaker.uncommons.org/

I like Sean Luke's ECJ (Evolutionary Computation in Java):

http://cs.gmu.edu/~eclab/projects/ecj/

I've also ported this (independently) to C# .NET 4.0 here:

http://branecloud.codeplex.com

Ben

Check out Apache Math - Genetics Algorithm. I have started to look at it. As I'm new to Genetics Algorithms, not sure of the comprehensiveness or not of this library. It does have a nice licensing model for multiple uses for academic and commercial use (Apache 2.0).

Have a look at Java GALib, Genetic Algorithm Library:

GALib, Java Genetic Algorithm (JAR) library, models chromosomes as real numbers, characters, strings, and string sequences. Very easy to use, just extend one of the existing GA classes and implement your fitness function. Sample GAs included.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top