我已经非常成功地完成了关于遗传算法的大量工作,因此至今仍忽略了遗传编程。据我所知,大多数程序仍然是由程序员编写的,我很想知道是什么阻碍了基因编程?

我想到的一些可能的解释是:

  • 搜索空间太大,无法在噪音
  • 中找到有用的程序
  • 大多数实际的应用程序都无法提供足够的数据来允许对此类空间进行适合性评估。
  • 很难将许多实际应用的功效降低到单个适应性度量标准。换句话说,编写合适的适应度函数可能需要与编写实际程序相同的工作量。

  • 有任何想法吗?

    最佳答案

    这是我在自己的研究中一直在考虑的事情,我说这有很多原因:

  • GP Realm 中的绝大多数研究都集中在生成公式上,而不是大多数程序员生产的那种软件。该 Realm 有很多计算机科学家,但是很少有人专注于生成您期望的程序,因此该 Realm 的进展缓慢。
  • 对LISP的使用过分强调,因为LISP可以产生易于操作的漂亮树结构,不幸的是,由于涉及解决一些棘手的问题,因此命令式程序已被忽略。为了使GP受到程序员的重视,它必须生成命令式程序。
  • 实际程序包含循环构造,但是如果没有各种丑陋的约束来防止无限循环,则很难在GP中实现循环。
  • 基因编程不能很好地扩展。用较小的可用语言来解决小问题是很好的选择,但是正如您刚开始所说的那样-搜索空间很快就会变得太大。
  • 与人类程序员相比,GP可能非常慢。但是,它是非常可并行的,因此随着大量处理器内核成为标准,很可能会从中受益。

  • 另一个有效的答案是,很难相信已经自动生成了代码。的确如此,但实际上我怀疑这会产生很大的影响,因为GP首先无法生成正确的程序。

    10-08 08:49