无论语言如何,哪个基因编程库拥有最活跃的社区和最发达的社区?
7 回答
坦率地说,这很难说。ParadisEO似乎非常活跃,是一个相当大的库,包含除 GP 之外的各种元启发式算法。请注意,它是EO库的超集。OpenBEAGLE很好,但它自 2007 年以来就没有更新过。Watchmaker现在非常好并且很活跃,但它目前只有 GP 的概念验证实现。那里有很多图书馆,很难说哪个是最好的。推出自己的 GP 并不是很难,所以请记住这种可能性。
HeuristicLab有一个非常复杂的实现,既快又快。例如在一个独立的基准测试中您可以看到 HeuristicLab 的解释器的速度等于新编码的包含优化的简约 C++ 解释器。它也非常灵活,您可以配置在 GUI 环境中创建树的语法。因此,您可以创建应该只有某些变量作为输入的函数,但不是全部。该实现基于长期的代码遗产,该代码非常积极地开发,并在每次发布之前进行审查,以确保持续的质量。HeuristicLab 支持回归、分类以及自定义问题,如 Santa Fe trail 或割草机(其中有一个教程可以帮助您实现自己的自定义问题)。有交叉验证,训练、验证和测试是分开的,你可以利用它来检测过拟合。作为结果,您将获得每个变量在整个总体中存在多少,您的符号在总体中存在多少,这样您就可以估计哪些变量是重要的。这显示为随时间变化的图表。还有一个帕累托分析器,您可以启用它来按质量和复杂性显示所有解决方案。HeuristicLab还包含最近 (GECCO2012) 新兴的 GP 基准库,使人们能够测试和比较结果。除了 GP,还有进一步的回归和分类算法,如 SVM、随机森林、k-NN 等。
它在 C# 中实现并在 .Net 4 上运行(目前仅在 Windows 上,单声道支持即将完成)。
您可能想查看基因表达编程 (GEP)。它是遗传编程的另一种形式。
在http://www.gene-expression-programming.com/上有一个技术站点。它背后的公司是 GEPSoft http://www.gepsoft.com。
JGAP for Java 似乎相当活跃。查看签入历史记录,几个月前有一次活动爆发。 http://jgap.sourceforge.net/
我是 ECJ 的粉丝,“基于 Java 的进化计算研究系统”:
http://cs.gmu.edu/~eclab/projects/ecj/
邮件列表通常是适度活跃的,向我表明该项目的总体健康状况。我几乎所有的 GA 和 GP 研究都在使用 ECJ,它有很多有趣的内置功能以及一些第三方贡献。
ECJ 的创建者 Sean Luke 还写了一本很棒且可免费下载的书:cs.gmu.edu/~sean/book/metaheuristics/
您可以尝试 Sean Luke 的 ECJ(Java 中的进化计算)的 C# .NET 4.0 端口:
http://branecloud.codeplex.com
它是非常灵活和强大的软件!但它也相对容易上手,因为它包含许多开箱即用的工作控制台示例(以及在转换期间开发的许多有用的单元测试)。
如上所述,如果您使用 Java 编程,您应该直接访问 Sean Luke 的站点:
http://cs.gmu.edu/~eclab/projects/ecj/
它已经在积极开发了 13 年!
本
来自CIRG团队的 CILib。它定期更新。开发人员总是经常回答您的问题。