哪些Java库适用于遗传算法?

25
7个回答

25
我编写了Watchmaker Framework,因此我的观点不是无偏见的。 ECJ和JGAP是两个最成熟的选项,也可能是最全面的选项。 另一方面,它们的年龄意味着它们针对旧版本的Java,这意味着没有泛型。
Hidden Clause博客进行了系列帖子(向下滚动列表查看),比较了JGAP,ECJ和Watchmaker。
在我没有编写的框架中,Jenes可能是我最喜欢外观API的框架。 它也使用基于现代泛型的方法。

1
的确很有帮助的答案和非常好的博客!我会仔细阅读它。谢谢你也提到了,你的答案并不完全客观。 - Nils Schmidt
因为提到了Jenes,所以点赞。它是一个结构精美的库。 - EdgeCaseBerg

9

也许你可以看一下我写的GA (Jenetics)。它使用Javolution库进行并行处理,使用JScience库进行数值计算。我认为这值得一看。


1

1

看看Apache Math - 遗传算法。我已经开始研究它了。由于我是遗传算法的新手,不确定这个库是否全面。它有一个很好的许可模型,适用于学术和商业用途(Apache 2.0)。


1

我知道Apache Mahout(基于Apache Hadoop)拥有大量的机器学习算法,虽然我不确定它是否正是你要寻找的东西?

http://mahout.apache.org/


进化算法在Mahout中使用Watchmaker。因此,如果您需要Hadoop集群处理功能,请不要使用Mahout,否则您可以直接使用Watchmaker独立运行(理论上也可以使用Terracotta对Watchmaker进行集群处理,但我不知道性能如何比较)。 - Dan Dyer

1

这是我为了以后自己的学习而收藏的一个替代方案。我过去使用过JGAP并对其感到满意,但这个方案似乎有很多优秀的示例,所以下次需要优化代码时我想尝试一下。

http://watchmaker.uncommons.org/


0

看一下Java GALib,遗传算法库

GALib是一个Java遗传算法(JAR)库,将染色体建模为实数、字符、字符串和字符串序列。非常易于使用,只需扩展现有的GA类并实现您的适应度函数即可。包括示例GAs。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接