知名百科 >> 遗传编程 >> 历史版本
编辑时间历史版本内容长度图片数目录数修改原因
2023-06-02 15:45 最新历史版本 3668 1 2 修正错误
  返回词条

遗传编程

遗传编程,或称遗传编程GP 受生物进化过程的启发,是一种自动生成和选择计算机程序来完成用户定义的任务的技术。理论上,人类只需要告诉计算机使用基因编程'需要完成什么',而不用告诉它'如何去完成'终于有可能实现真正的人工智能:自动化发明机器。遗传编程是一种使用进化算法的特殊机器学习技术,它始于一组随机生成的数百万个计算机程序'人群'然后根据一个程序完成给定任务的能力来确定它的适用性,并应用达尔文 物竞天择(适者生存)为了确定获胜的程序,计算机程序还模拟了性别组合突变基因复制基因删除等世代进化直到达到预定的终止条件。

目录

进展

遗传编程的第一次实验是由斯蒂芬进行的。史密斯 (1980)And nickelchromium alloy  .克莱姆 (1985)发表。约翰.Koza(1992)他还写了一本著名的书,《遗传编程:用自然选择让计算机编程》,介绍遗传编程。

使用遗传编程的计算机程序可以用许多编程语言编写。早期(或者说传统)在GP的实现中,程序的指令和数据值是以树形结构组织的,所以那些原本提供树形组织的编程语言最适合GP,比如Koza使用的Lisp语言。其他形式的GP也被提倡和实现,比如相对简单,适合传统编程语言(例如Fortran, BASIC, 和 C)的线性遗传编程。一些商业GP软件将线性遗传编程与汇编语言相结合以获得更好的性能,一些实现直接生成汇编程序。

遗传编程所需的计算量非常大(处理大量候选计算机程序)以至于在90年代只能用来解决一些简单的问题。近年来,随着遗传编程技术的发展和CPU 的计算能力,GP开始产生大量显著的成果。比如2004年前后,GP在多个领域取得了近40项成果:量子计算,电子设计,游戏比赛,排序,搜索等等。这些计算机生成的程序(算法)其中有些与2000年后人工产生的发明非常相似,甚至有两项成果产生了可以申请专利的新发明2。

发展

在20世纪90年代,人们普遍认为为遗传编程发展一种理论是非常困难的,GP在各种搜索技术中也处于劣势。2000年以后,GP的理论有了很大的进步,可以建立精确的GP概率模型和3356马尔可夫链模型。遗传规划比遗传算法更适用(实际上包含了遗传算法)

除了生成计算机程序,遗传编程也被用来生成可开发的硬件。

Juergen Schmidhuber进一步提出了宏遗传编程macro genetic programming,一种利用遗传编程生成遗传编程系统的技术。一些批评者认为宏观遗传编程在理论上不可行,但需要更多的研究来证实。

标签