遗传编程
贡献者:葱爆羊肉 浏览:1491次 创建时间:2009-06-26
-
遗传编程是一种特殊的利用进化算法的机器学习技术, 它开始于一群由随机生成的千百万个计算机程序组成的"人群",然后根据一个程序完成给定的任务的能力来确定某个程序的适合度,应用达尔文的自然选择(适者生存)确定胜出的程序,计算机程序间也模拟两性组合,变异,基因复制,基因删除等代代进化,直到达到预先确定的某个中止条件为止。
遗传编程的首批试验由斯蒂芬.史密斯 (1980)和Nichael .克拉姆 (1985)发表。约翰.Koza(1992)也写了一本著名的书,《遗传编程:用自然选择让计算机编程》,来介绍遗传编程。
使用遗传编程的计算机程序可以用很多种编程语言来写成。早期(或者说传统)的GP实现中,程序的指令和数据的值使用树状结构的组织方式,所以那些本来就提供树状组织形式的编程语言最适合与GP,例如Koza使用的Lisp语言。其他形式的GP也被提倡和实现,例如相对简单的适合传统编程语言(例如Fortran, BASIC, and C)的线性遗传编程。有商业化的GP软件把线性遗传编程和汇编语言结合来获得更好的性能,也有的实现方法直接生成汇编程序。
遗传编程所需的计算量非常之大(处理大量候选的计算机程序),以至于在90年代的时候它只能用来解决一些简单的问题。近年来,随着遗传编程技术自身的发展和中央处理器计算能力的指数级提升,GP开始产生了一大批显著的结果。例如在2004年左右,GP在多个领域取得近40项成果:量子计算,电子设计,游戏比赛,排序,搜索等等。这些计算机自动生成的程序(算法)中有些与2000年后人工产生的发明十分类似,甚至有两项结果产生了可以申请专利的新发明。
在90年代,人们普遍认为为遗传编程发展一个理论十分困难,GP在各种搜索技术中也处于劣势。2000年后,GP的理论取得重大发展,建立确切的GP概率模型和 马尔可夫链模型已成为可能。遗传编程比遗传算法适用的范围更广(实际上包含了遗传算法)
除了生成计算机程序,遗传编程也被用与产生可发展的硬件。
Juergen Schmidhuber进一步提出了宏遗传编程,一种使用遗传编程来生成一个遗传编程系统的技术。一些评论认为宏遗传编程在理论上不可行,但是需要更多的研究来确认。
开放分类
参考资料
http://zh.wikipedia.org/w/index.php?title=%E9%81%97%E4%BC%A0%E7%BC%96%E7%A8%8B&variant=zh-cn
贡献者
本词条在以下词条中被提及:
关于本词条的评论共:(0条)