Я написал Watchmaker Framework, поэтому мои мнения не беспристрастны. ECJ и JGAP - два самых известных варианта и, вероятно, наиболее полные. С другой стороны, их возраст означает, что они ориентированы на старые версии Java, что означает отсутствие дженериков.
Блог Hidden Clause сделал серию постов (прокрутите список вниз, чтобы увидеть их), сравнивая JGAP, ECJ и Watchmaker.
Из фреймворков, которые я не писал, Jenes, вероятно, имеет API, который мне больше всего нравится. В нем также используется более современный подход, основанный на дженериках.
Я знаю, что в Apache Mahout (на основе Apache Hadoop) есть множество алгоритмов машинного обучения, но я не уверен, что это именно то, что вы ищете?
Это альтернативный вариант, который я оставил в закладках, чтобы потом назидать себя. В прошлом я использовал JGAP и был им доволен, но этот вариант, похоже, имеет много отличных примеров, и я решил попробовать его в следующий раз, когда мне понадобится код оптимизации.
Взгляните на Java GALib, библиотека генетических алгоритмов:
GALib, библиотека генетических алгоритмов Java (JAR), моделирует хромосомы как действительные числа, символы, строки и последовательности строк. Очень проста в использовании, просто расширьте один из существующих классов GA и реализуйте свою фитнес-функцию. Примеры ГА включены.