ROBOT & AI

首页 | 新闻 | 产品 | 竞赛 | 学苑 | 读书 | 硬件 | 软件 | 智能 | 制作 | 项目 | 资源 | 论坛
 您的位置:首页 >> 智能 >> 遗传算法 >> 正文
站内搜索:   

Perl-遗传算法

来源:www.ibm.com/developworks/cn  佚名 字体:[ ]  2007-02-07

关键词:遗传算法

 [编者的话]

遗传算法在生物信息学尤其是蛋白结构预测与分析中有重要应用:Perl是现在生物信息学界中很热门的一种编程语言(我们在以前专题中曾做过专门介绍)。Perl的长处是文本分析,那么它在编写算法上是否能一样表现优异呢,它能不能做这方面的工作呢,别急,且看下文:)

 

创建您自己的达尔文式的繁殖基础

Teodor Zlatanov (tzz@iglou.com)
程序员,Gold Software Systems
2001
8

遗传编程建立在达尔文适者生存的自然选择法则的基础之上,利用变异和复制来生成算法,该算法可创建不断改进的计算机程序。在本专栏里,您将开始了解用浅显的术语表述的遗传算法。Ted 给出了几种特定的任务的 Perl 实现,您可以用于广泛的用途。为了示范遗传算法,Ted 繁殖了一些数字和字母,应用于公式以测试这些数字的适应性,而繁殖的字母则形成了英语单词。

如果您的机器上已经安装了Perl 5.005或者更高的版本,您可以运行一下文章中的例子。您的系统最好应该是安装了最近的(2000年或者更迟些)主流的 UNIXLinuxSolarisBSD),但其它种类的操作系统可能也可以。文中的例子可能可以在更老的版本的PerlUNIX以及其它操作系统下运行,但是如果不行的话,读者应当把它看作是一次练习来解决。

历史
进入20世纪以来,在速度和影响范围方面遗传学的发展只有电子学和计算机科学能与之相比。遗传算法是20世纪出现的最令人感兴趣的算法之一,这一说法是恰当的。

遗传算法(以及普遍意义上的进化算法)出现在20世纪60年代早期,并在计算机科学的确定性和非确定性算法之间占据了一席之位。本质上,遗传算法具有如同您所希望的那样的确定性,意味着用户可以决定重复次数和结束条件。它模拟达尔文的自然选择,还有变异,把适应性(正如适用于个体的公式所决定的那样)作为主要因素选择生存繁衍和变异的个体。

其它的进化算法试图模拟拉马克的进化论,在他看来,行为是一种生存的机制,可以在两代之间传递,甚至有一些进化程序是出于某种目的而自然出现的。以上这些都不在本文的论述范围之内。

Perl用于实现遗传算法的主要缺点在于速度慢。由于遗传算法的计算需要,用C语言或其它低级的预编译语言来实现效率会更高。本文展示的Perl例程不如其C语言的等价程序快,但是可以使您明白遗传算法是如何工作的,况且,对于一些问题来说,已经够快了。

那么什么是遗传算法呢?
遗传算法是如此简单,任何人只要用高中时学过的生物术语就可以理解。以一群个体为例,它们都有自己的DNA。然后衡量每一个个体的适应性(把它看作是适用于个体的DNA的官能来衡量),并且使那些更适应的个体更有可能繁衍。而最不适应的个体将会被灭绝。每个幸存者都会有机会繁衍(重要的是任何幸存者都可能会繁衍,如果不太适应的话,仅仅是降低了可能性)。合并双亲的DNA,对合并后的DNA应用随机变异以模拟繁衍。理论上说来,新的个体是和双亲一样适应的,由于变异或增或减会有些微小的变化。然后循环会周而复始。

4页 [1] [2] [3] [4] 下一页 

录入:master 点击:

[发表评论] [打印文章] [关闭窗口]  

原创文章属本站所有,转载请注明来源:Robotain.com  
相关文章

 网友评论(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

发表评论 昵称:

  

  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
最新推荐
热门文章
论坛精华
网站简介设为首页 加入收藏在线留言友情链接联系我们 - 广告服务 - 版权申明

Copyright © Robotain.com  all rights reserved  浙ICP备07003355号

版权所有 机器与智能网