高性能且易于使用的非GPLed遗传编程库

时间:2011-12-25 09:20:52

标签: genetic-algorithm genetic-programming gaul

我想构建一个使用遗传编程的应用程序来弄清楚用户究竟在问什么。它是非程序员的编程应用程序。基本上,用户向应用程序提供了大量示例,并且从示例中,应用程序将获得为用户自己的使用/分发构建新程序所需的规则。

我使用线性回归构建了原型,但它只能解决简单的问题。本周我使用pyevolve进行了遗传编程实验,它比我预期的更加出色!但是,我怀疑它是用纯python编写的,它需要几十秒才能解决一个例子,而在我的应用程序中我只有几秒钟的时间。

我一直在努力寻找一个性能更高的图书馆,它与pyevolve一样易于使用但找不到合适的图书馆。我尝试了openBeagle但是在运行了一个示例之后,以及稍后通过文档仔细研究了几个小时,我仍然找不到从“Vivarium”中选择一个人的方法。我见过人们推荐GAUL,但这是一个GPL库,并将限制我如何许可我未来的应用程序。我试图下载lil-gp,但ftp下载链接被大学的登录屏幕锁定。

由于该应用程序将是Mac OS X cocoa应用程序,因此我没有考虑Java,C#或Matlab GP库。

2 个答案:

答案 0 :(得分:4)

作为Open BEAGLE的开发者,如果您寻求快速GP库,我仍然建议您使用该库。检索最佳个体实际上是通过运行第二个程序来完成的,该程序解析在演化结束时记录的XML文件。否则,您可以通过Vivarium.getHallOfFame()方法访问它,然后对其进行排序并使用HallOfFame.operator []访问第一个元素。你会得到的成员是一个个体的结构,它记录了它的生成以及它是什么样的。

通过这种方式,您可以获得有史以来最好的个体。

如果您对Open BEAGLE有具体问题,我建议您直接向开发者列表询问,我们通常会很快回答。

虽然,如果你想在Python中尝试一个非常不同的库,我推荐你DEAP,它允许比Pyevolve更多的灵活性。一些GP示例在PyPy下比Python运行得快得多。

答案 1 :(得分:1)

如果您要求GAUL项目的主要开发人员获得使用替代许可协议的许可,那么 * 很可能会同意。

* “他”是我。