3

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

我已经使用线性回归构建了原型,但它只能解决简单的问题。本周我使用 pyevolve 对基因编程进行了实验,它的效果比我预期的要出色得多!但是,我怀疑它是用纯 python 编写的,所以解决一个例子需要几十秒,而在我的应用程序中,我最多只有几秒钟的时间。

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

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

4

2 回答 2

4

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

这样你就可以接触到你进化过程中曾经生活过的最好的个体。

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

虽然,如果你想在 Python 中尝试一个非常不同的库,我建议你使用DEAP,它比 Pyevolve 具有更大的灵活性。一些 GP 示例在 PyPy 下的运行速度比 Python 快得多。

于 2011-12-27T04:36:15.603 回答
1

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

* “他”是我。

于 2012-12-19T10:49:14.167 回答