Which Java library/libraries for Genetic Algorithms?

19,814

Solution 1

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.

Solution 2

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.

Solution 3

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/

Solution 4

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/

Solution 5

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).

Share:
19,814

Related videos on Youtube

Nils Schmidt
Author by

Nils Schmidt

Developing with Java for over a decade now, and I am still having fun with it. Nevertheless, occasional escapades to Kotlin and Scala are dangerously tempting. Do also check: - my xing profile (only in German): https://www.xing.com/profile/Nils_Schmidt6

Updated on April 28, 2022

Comments

  • Nils Schmidt
    Nils Schmidt about 2 years

    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.

  • Dan Dyer
    Dan Dyer almost 14 years
    Evolutionary algorithms in Mahout use Watchmaker. So if you need the Hadoop clustering stuff, go without Mahout, otherwise you can just use Watchmaker standalone (theoretically you can also cluster Watchmaker using Terracotta but I don't know how the performance compares).
  • Nils Schmidt
    Nils Schmidt almost 14 years
    Helpful answer indeed and very nice blog! Will read myself through it. Thanks for also mentioning, that your answer is not totally unbiased.
  • EdgeCaseBerg
    EdgeCaseBerg over 9 years
    Upvote because of the reference to Jenes. It's a beautifully structures library