Java 遗传编程库
我正在寻找一个好的 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);
没有文档(或者非常糟糕的文档);
没有对遗传编程或基因表达编程(或实验性编程)的内置支持;
有些太复杂了 有些使用
在这个情况下,我最终为该项目编写了自己的简单库(使用基因表达编程方法,这使得它非常非常简单)。
I'm looking for a good genetic programming library for JVM. (not genetic algorithm but genetic programming)
I tried JGAP (jgap.sourceforge.net) and Watchmaker (watchmaker.uncommons.org). Unfortunately, those tools have only experimental and immature support for genetic programming (they are mainly focused on genetic algorithms).
Perhaps do you know any better tool for genetic programming, for JVM (can be written in Java or any other compiled language for JVM).
I'm not looking for a comprehensive list of GP tools, I'm rather looking for a good, popular tool (just like popular operating systems are Windows, Linux and Mac, and popular Java IDEs are Eclipse, IDEA and NetBeans).
It doesn't have to be genetic programming library (GP), it can also be (and it would probably better) a gene expression programming library (GEP).
EDIT (after two months since the question): I analyzed most of the links You posted and which are available in Wiki and I must say that each of those libraries have at least one of the following problems:
no open-source, or open-source, but very restrictive (GPL);
no documentation (or very poor one);
no built-in support for genetic programming or gene expression programming (or experimental one;
some are just too complex in use.
In this sitation I ended up in writing my own simple library for the project (using gene expression programming approach, which makes it very very simple).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
ECJ 有很多 GP 的资料,包括几个示例项目。
ECJ has a lot of stuff for GP, and including several example projects.
有一些库,例如 GenPro 和 n-genes 用于 Java,以及 JGProg 对于 Groovy。
Implementations 部分列出了针对多种不同语言的更多信息。 http://en.wikipedia.org/wiki/Genetic_programming" rel="nofollow">遗传编程 维基百科文章,但正如你提到的,其中许多看起来更适合 GA,所以你会评估每一项,看看它是否适合您的需求。
There are libraries like GenPro and n-genes for Java, and JGProg for Groovy.
There are more listed for several different languages in the Implementations section of the Genetic programming Wikipedia article, but as you mentioned many of those look like they're more for GA, so you'll have to evaluate each one to see if it suits your needs.
我有些偏见,因为我是作者之一,但 EpochX 是一个专门用于遗传编程的 Java 库。它支持强类型树表示和 2 个语法引导表示。它主要针对研究人员,但它可能适合您,具体取决于您的需要。您可以访问 epochx.org 获取更多信息。
I am somewhat biased because I'm one of the authors, but EpochX is a Java library solely for Genetic Programming. It has support for a strongly-typed tree representation, and 2 grammar guided representations. It is primarily aimed at researchers, but it may be suitable depending on what you require it for. You can get more information at epochx.org.
我刚刚在 Clojure 中构建了自己的遗传编程工具(构建在 JVM 上)。一旦我可以进行符号回归,我就意识到该工具比我想要的限制更多,而且解决强类型问题也更复杂。我决定转向语法进化工具(遗传编程可以解释为语法进化的子集)。 GEVA 工具是我使用语法演化工具的第一站。我的理解是它仍在开发中(今年(2010 年)最近进行了修订)。
I just finished building my own Genetic Programming tool in Clojure (Built on the JVM). Once I could do symbolic regression, I realized that the tool was a lot more restrictive than I wanted and more complex to solve the strongly typing issue. I've decided to move into a Grammatical Evolution tool (Genetic Programming can be construed as a subset of Grammatical Evolution). The GEVA tool is my first stop for a Grammatical Evolution tool. My understanding is that it is also still being developed (there was a recent rev this year (2010)).
也许您可以使用 TinyGP 的部分内容?它并不是真正的库,更像是一个 GP 系统,但由于它很小,您可以轻松地根据您的用途对其进行调整。
Maybe you could use parts of TinyGP? It's not really a library, more of a GP-system but since it is quite small you could easily adapt it for your uses.
JGAP(Java 遗传算法包)是一个复杂的 GA 库,可在 jgap.sf.net 上免费获得,其中包含许多示例。
JGAP (Java Genetic Algorithms Package) is a sophisticated GA library, available for free at jgap.sf.net, Many examples included.