基于遗传算法的染色体编码的分析_第1页
基于遗传算法的染色体编码的分析_第2页
基于遗传算法的染色体编码的分析_第3页
基于遗传算法的染色体编码的分析_第4页
基于遗传算法的染色体编码的分析_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于遗传算法的染色体编码的分析第19卷第1期2010年1月重庆电子工程职业学院vo1.19no.1lan.2010oumalofchon咽incoueeofelectronicenline基于遗传算法的染色体编码的分析吴焱岷(重庆大学计算机学院,重庆400044;重庆电子工程职业学院,重庆401331)摘要:遗传算法为解决复杂问题,特别是np类问题提供了一种全新的思路,其编码方式也将在一定程度上决定算法效率的高低和程序设计的复杂程度.需要针对想要解决问题类型的不同而采取不同的编码方式.关键词:遗传算法;编码;值类型;事务类型中图分类号:tp39文献标识码:a文章编号:16745787(2010

2、)01一【)【】86一o2遗传算法的概念最早是由bagleyj.d在1967年提出的.而开始遗传算法的理论和方法的系统性研究在1975年开始.这一开创性工作是由michigan大学的j.h.holland所实行.遗传算法简称ga(geneticalgorithm),在本质上是一种不依赖具体问题的直接搜索方法.其基本思想是基于darwin进化论和mendel的遗传学说darwin进化论最重要的是适者生存原理它认为每一物种在发展中越来越适应环境.物种每个个体的基本特征由后代所继承.但后代又会产生一些异于父代的新变化.mendel遗传学说最重要的是基因遗传原理它认为遗传以密码方式存在细胞中.并以基因

3、形式包含在染色体内每个基因有特殊的位置并控制某种特殊性质,所以.每个基因产生的个体对环境具有某种适应性.基因突变和基因杂交可产生更适应于环境的后代.经过存优去劣的自然淘汰.适应性高的基因结构得以保存下来.遗传算法最大的特点莫过于可以绕过复杂的数学推导而采用最直接的方式在有限空间中搜索结果.例如求函数f(x)=x*sin(10nx)+2在(一1,2)区间上的极大值,按照常规思路.需要对函数求导,找出函数的变化趋势和拐点.才能确定最大值的位置.对于相对简单的函数.采用这些数学的方法还没有太高的难度.但是对于复杂的函数.则需要较为深厚的数学功底.同时也增加了程序设计的复杂程度对于ga.采用一套全新的

4、思路,首先任意给定一组随机值x.由此开始进行演化.这些值就是代表一系列原始生命.这些生命是否可以延续,取决于他们的适应程度将这些随机值带入函数中进行运算,对得到的一系列函数值进行排序.求最大值,可以认为值较大的函数值对应的x接近我们所需要的结论,这些结果可以保留;反之.对于另外一些函数值较小的x.则表明应该被淘汰.第二步就是按照mendel的基因理论.对这些将被淘汰的x进行演化.演化分两步进行:(1)交叉.两个x值交换数据,类似生物界的交配,染色体进行重新重组.交换基因以期得到新的品种,新品种可能更加适应环境而得到生存的机会.也可能向相反的方向发展.从而失去生存的机会.因此通过某种方式得到新的

5、x的值可以导致函数值增大.也可能导致减小,他们都将参加新一轮的竞争(2)变异.单一的x值进行自身的调整,这类似于生物界的染色体发生基因突变.突变后的基因也可能导致物种更加适应或更加不适应环境.因此通过突变方式后要重新评估函数值以决定新的x值的去留.同样新的x值也必将参加新一轮的竞争通过一系列操作.我们始终保留函数值较大的一系列x.如同生物竞争中只有最强的个体才能生存下来一样.最终我们可以得到最佳答案按照上面的思路.我们任意产生100个随机数.经过100代的进化.得到如下结论:在第27代最早出现最佳运算结论:f(1.8505594374083l1=3.85027363583461共使用4.828

6、125秒.起始时间:21:54:08.31,结束时间:21:54:12.859经过反复测试.结果可以稳定x=1.85附近.这和理论值也是非常近似的那么ga是如何保证这种收敛性的呢7原因就在于它的编码方式可以很好地与基因理论相融合.显然.由于x的编码方式千差万别,因此j.h.holland本人也提及采用二进制才是最佳方式.这样做的好处有两点:收稿日期:2009一l2一l8作者简介:吴焱岷(1974一),男,湖北武汉人,重庆大学计算机学院计算机科学技术专业2004级在职研究生,重庆电子工程职业学院计算机应用系党总支副书记,主要从事软件设计,网站建设方面的研究.87重庆电子工程职业学院第19卷1.数

7、据在计算机内部就是采用二进制方式.这样的编码方式与计算机内部的数据表示相吻合.便于计算机的处理2.如同染色体的基因.每一位二进制数据单元就是可以进行操作的最小单元.便于对交叉与变异这两种基本的遗传现象的模拟正是将生命遗传,进化的规律运用到程序设计中,所以程序运行符合自然规律.可以得到理想的结果遗传算法在当时提出主要解决科学计算方面的问题.即值类型的问题.采用二进制的形式可以很好的解决编码问题.一般我们这样来进行操作:不失一般性.我们可以假设在(a,b)区间上搜索某一个结论.假设对于x要求精度为小数点后n位首要问题是需要确定染色体的二进制位数.a到b的长度为fba),每个待编码的数据保留到小数点

8、后n位.表明1个单位数据中包含l0n个待编码的数.那么整个探索空间中就有(ba)10n个需要编码的数据.由于采用二进制编码.所以要表示这么多数据,需要至少m位,则有:2(b-a)10一min2(b-a)10n)所以m可以由ln(ba)l0的结果向上取整表示,这样i11位的二进制数至少可以表示出(b-a)*10n个数据了.这种编码方式对于科学计算类的问题是非常有效的.因为我们的解空间是连续的,而采用二进制编码方式.我们也可以近似的认为其表示的数值空间也是连续的.这样我们按照基因组成染色体的方式.可以对二进制数据进行重组,以考查哪些基因有利于问题的解决.但是需要注意的问题是.随着ga在更加广泛的领

9、域加以应用.有一个新的情况出现了,即对于事务性的问题,二进制编码同样高效么?以ga在排课系统的应用为例.如果用二进制表示的话.必须按照定长进行切割p位表示上课教室,q位表示上课时间,每一个课程需要(p+q)位来表示未来课表中的上课时间与上课教室信息.但是由于初始状态是随机的.上课时间和上课教室必然存在很多的冲突或搭配不理想的地方.需要对这些问题进行逐一的统计及处理.那么需要将原来二进制表示的信息还原成原本表示的上课时间,上课教室信息,同时课程表的二维表格被修改成一维空间.这给操作也带来了很多不必要的麻烦,所以有必要对原有的编码形式重新认真考虑.针对上述问题.没有必要一定采用一维的二进制编码习惯

10、.到底如何表示染色体和基因要视具体情况而定,在排课问题中.我们大可将染色体直接设计成二维模型.表示上课时间,上课教室的二维布局,将课程(含班级,教师信息)填充其中.只要保证一个单元格中仅仅放入一项课程就已经避免了上课时间,上课教室上潜在的冲突的可能性.做了这样的调整后,在进行交叉,变异操作时,也可以以班级或老师为单位进行.而不必像二进制编码一般随机的抽取.这样可以保留较好的基因.加快收敛的速度以取得更加令人满意的结果改造后的染色体如下图所示教室1教室2教室3教室4教室n上课时间l$.上课时间2$上课时间3$上课时间nl基因的编码可以采用灵活的方式.不一定非要采取二进制形式,因为每一单元格中包含

11、课程,班级,教师等信息,可以用类或结构体将其封装起来,至于课程,班级,教师等信息的编码则可以灵活处理.为了和数据库进行数据的无缝交流.建议采用十进制编码形式.以便与数据库内部的代码保持一致.从而可以省却许多不必要的编码和解码开销综上所述.在ga中我们对于染色体的编码不一定要采取二进制的形式.具体要视待解决问题的性质而定:1.对于值类型的求解问题.可以采用二进制的编码形式.以便保持数据在计算机内部以及染色体表示上的一致.2.对以事务型的求解问题.可以灵活采用一维或多维的染色体表示形式.对基因的编码.则可以采用更加灵活形式:十进制,字符串,结构体或类等.任何算法需要随时代的发展而不断的修正.在遗传算法提出之初.我们解决的多是数值运算类型的问题,用二进制的表达形式便于保持基因内在数据与外在表现形式的统

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论