自制遗传编程框架的集成测试
Integration Test for Homemade Genetic Programming Framework
我已经编写了自己的遗传编程框架。我的单元测试覆盖率非常高,所以我相信各个组件都能正常工作。
我正在寻找的是一个相当简单的问题,它非常适合我可以用作集成级别测试的遗传编程,它将检查我的框架是否有效并可以找到解决方案。
我不能使用我编写框架解决的原始问题作为集成测试,因为:
- 我不知道这个问题是否可以用遗传编程来解决
方法。
- 每一代大约需要 5 分钟到 运行。
任何人都可以描述一个非常适合遗传编程的简单、重要的问题吗?
谢谢。
遗传编程可以应用于回归和分类问题。符号回归可能是最简单的一种。你有一些训练数据,你必须发现一个近似于给定数据的数学公式(计算机程序)。
例如,函数 f(x) 生成以下数据(输入、输出):
0 1
1 5
2 31
3 121
4 341
5 781
6 1555
7 2801
8 4681
9 7381
找到一个将输入链接到输出的函数。
答案:函数为f(x) = x^4 + x^3 + x^2 + x + 1
这绝对不应该每代花费 5 分钟......事实上,当你有 50 个个体时,每代应该花费不到 1 秒。
编辑:我只是用我的 GP 实现(来自 http://mepx.org)测试了这个问题,它 运行 整个 运行 不到 0.02 秒(50 个人 50代和代码长度为 50)。
我已经编写了自己的遗传编程框架。我的单元测试覆盖率非常高,所以我相信各个组件都能正常工作。
我正在寻找的是一个相当简单的问题,它非常适合我可以用作集成级别测试的遗传编程,它将检查我的框架是否有效并可以找到解决方案。
我不能使用我编写框架解决的原始问题作为集成测试,因为:
- 我不知道这个问题是否可以用遗传编程来解决 方法。
- 每一代大约需要 5 分钟到 运行。
任何人都可以描述一个非常适合遗传编程的简单、重要的问题吗? 谢谢。
遗传编程可以应用于回归和分类问题。符号回归可能是最简单的一种。你有一些训练数据,你必须发现一个近似于给定数据的数学公式(计算机程序)。
例如,函数 f(x) 生成以下数据(输入、输出):
0 1
1 5
2 31
3 121
4 341
5 781
6 1555
7 2801
8 4681
9 7381
找到一个将输入链接到输出的函数。 答案:函数为f(x) = x^4 + x^3 + x^2 + x + 1
这绝对不应该每代花费 5 分钟......事实上,当你有 50 个个体时,每代应该花费不到 1 秒。
编辑:我只是用我的 GP 实现(来自 http://mepx.org)测试了这个问题,它 运行 整个 运行 不到 0.02 秒(50 个人 50代和代码长度为 50)。