我正在为JVM寻找一个好的遗传编程库。 (不是遗传算法,而是遗传编程) 我尝试了JGAP(jgap.sourceforge.net)和Watchmaker(watchmaker.uncommons.org)。不幸的是,这些工具只对遗传编程提供了实验性和不成熟的支持(它们主要集中在遗传算法上)。
也许您知道任何更好的遗传编程工具,JVM(可以用Java或任何其他JVM编译语言编写)。
我不是在寻找一个全面的GP工具列表,我宁愿寻找一个好的,流行的工具(就像流行的操作系统是Windows,Linux和Mac,流行的Java IDE是Eclipse,IDEA和NetBeans) )。
它不一定是遗传编程库(GP),它也可以(并且可能更好)基因表达编程库(GEP)。
编辑(自问题起两个月后):我分析了您发布的大多数链接以及Wiki中可用的链接,我必须说每个库至少存在以下一个问题:没有开源,或开源,但非常严格(GPL);
没有文件(或非常差的文件);
没有内置支持遗传编程或基因表达编程(或实验性编程;
有些使用起来太复杂了。
在这篇文章中,我最终为项目编写了自己的简单库(使用基因表达式编程方法,这非常简单)。
答案 0 :(得分:5)
ECJ为GP提供了很多东西,包括几个示例项目。
答案 1 :(得分:2)
Java有GenPro和n-genes等库,Groovy有JGProg。
Implementations维基百科文章的Genetic programming部分列出了多种不同语言的内容,但正如您所提到的,其中很多看起来更像是GA,所以你会有评估每一个以确定它是否符合您的需求。
答案 2 :(得分:1)
我有点偏颇,因为我是作者之一,但EpochX是一个仅用于遗传编程的Java库。它支持强类型树表示和2个语法引导表示。它主要针对研究人员,但根据您的需要,它可能是合适的。您可以在epochx.org获取更多信息。
答案 3 :(得分:1)
我刚刚在Clojure中构建了自己的基因编程工具(基于JVM构建)。一旦我可以进行符号回归,我意识到该工具比我想要的限制更多,并且解决强类型问题更复杂。我决定进入语法进化工具(遗传编程可以解释为语法进化的一个子集)。 GEVA工具是Grammatical Evolution工具的第一站。我的理解是它仍在开发中(今年(2010年)最近有一次转变)。
答案 4 :(得分:1)
也许你可以使用TinyGP的部分内容?它不是一个真正的图书馆,更像是一个GP系统,但由于它非常小,你可以根据自己的需要轻松调整它。
答案 5 :(得分:0)
JGAP(Java遗传算法包)是一个复杂的GA库,可在jgap.sf.net免费获得,包含许多示例。