故事库-中国往事  > 所属分类  > 
[0] 评论[0] 编辑

遗传编程

遗传编程,或称基因编程/GP ,是一种从生物进化过程得到灵感的自动化生成和选择计算机程序来完成用户定义的任务的技术。从理论上讲,人类用遗传编程只需要告诉计算机"需要完成什么",而不用告诉它"如何去完成",最终可能实现真正意义上的人工智能:自动化的发明机器。
中文名
遗传编程
外文名
Genetic Programming
别名
基因编程/GP
成果
量子计算,电子设计,游戏比赛等

目录

遗传编程遗传编程
  遗传编程是一种特殊的利用进化算法的

GP的适用范围是非常广泛的,理论上凡是根据多个输入值而得到一个值的

在具体实现上,它有如下一些特点:

(1)GP求解的是一个描述问题的程序(或者说是一个算法)。

(2)GP通常用树型结构来表示,描述相对复杂。

(3)GP的每一代的个体的长度(深度)一般是不同的,即使在同一代中的个体之间的长度(深度)也是不同的。

(4)GP所消耗的资源是不可控的(这里所指的不可控是指不能精确的描述),需要消耗大量的内存空间,因而每一代的进化都比较慢。

实现过程

语言的选择

遗传编程遗传编程
  遗传编程在不同的语言上有不同的实现方法。对于遗传编程所生成的程序既可以看成是程序又可以看成是数据。在遗传编程的过程中它是数据,需要对它进行随机生成、交叉操作、变异、评估等操作;在遗传编程结束后,它又是

遗传编程的首批试验由斯蒂芬·史密斯 (1980)和克拉姆 (1985)发表。约翰·Koza(1992)也写了一本著名的书,来介绍遗传编程。

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

遗传编程所需的计算量非常之大(处理大量候选的计算机程序),以至于在90年代的时候它只能用来解决一些简单的问题。近年来,随着遗传编程技术自身的发展和中央处理器计算能力的指数级提升,GP开始产生了一大批显著的结果。例如在2004年左右,GP在多个领域取得近40项成果:量子计算,电子设计,游戏比赛,排序,搜索等等。这些计算机自动生成的程序(算法)中有些与2000年后人工产生的发明十分类似,甚至有两项结果产生了可以申请专利的新发明。

在90年代,人们普遍认为为遗传编程发展一个理论十分困难,GP在各种搜索技术中也处于劣势。2000年后,GP的理论取得重大发展,建立确切的GP概率模型和马尔可夫链模型已成为可能。遗传编程比遗传算法适用的范围更广(实际上包含了遗传算法)

Juergen Schmidhuber进一步提出了宏遗传编程,一种使用遗传编程来生成一个遗传编程系统的技术。一些评论认为宏遗传编程在理论上不可行,但是需要更多的研究再确认。

附件列表


0

故事内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。

如果您认为本故事还有待完善,请 编辑

上一篇 廉滋仁    下一篇 韦处厚

同义词

暂无同义词
  • 友情链接:
  • 中原企业家
  • 华锐社区
  • 法学学习
  • 故事库
  • 舆情信息
  • 郑州商业观察
  • 美丽中国
  • 药食同源
  • Lovely China
  • 纯欲天花板
  • 留学生