第五章遗传算法工具箱函数.docx

上传人:lao****ou 文档编号:519029 上传时间:2024-01-04 格式:DOCX 页数:31 大小:182.50KB
下载 相关 举报
第五章遗传算法工具箱函数.docx_第1页
第1页 / 共31页
第五章遗传算法工具箱函数.docx_第2页
第2页 / 共31页
第五章遗传算法工具箱函数.docx_第3页
第3页 / 共31页
第五章遗传算法工具箱函数.docx_第4页
第4页 / 共31页
第五章遗传算法工具箱函数.docx_第5页
第5页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第五章遗传算法工具箱函数.docx》由会员分享,可在线阅读,更多相关《第五章遗传算法工具箱函数.docx(31页珍藏版)》请在第一文库网上搜索。

1、第五章遗传算法工具箱函数本章介绍英国设菲尔德大学开发的遗传算法工具箱函数。由于MAT1AB高级语言的通用性,对问题用M文件编码,与此配对的是MAT1AB先进的数据分析、可视化工具、特殊目的的应用领域工具箱和展现给使用者具有研究遗传算法可能性的一致环境。MAT1AB遗传算法工具箱为遗传算法从业者和第一次实验遗传算法的人提供了广泛多样的有用函数。遗传算法工具箱使用MAT1AB矩阵函数为实现广泛领域的遗传算法建立一套通用工具,这个遗传算法工具是用M文件写成的,是命令行形式的函数,能完成遗传算法大部分重要功能的程序的集合。用户可通过这些命令行函数,根据实际分析的需要,编写出功能强大的MAT1AB程序。

2、5.1工具箱结构本节给出GA工具箱的主要程序。表5.1为遗传算法工具箱中的各种函数分类表。表5.1遗传算法工具箱中函数分类及创建种群Crtbase创建基向量crtbp创建任意离散随机种群crtrp创建实值初始种群适应度计算ranking常用的基于秩的适应度计算sca1ing比率适应度计算选择函数reins一致随机和基于适应度的重插入rws轮盘选择se1ect高级选择例程SUS随机遍历采样变异算子mut离散变异mutate高级变异函数mutbga实值变异交叉算子recdis离散重组recint中间重组ree1in线性重组recmut具有变异特征的线性重组recombin高级重组算子xovdp两点

3、交叉算子xovdprs减少代理的两点交叉xovmp通常多点交叉xovshxovshrsxovspxovsprs洗牌交叉减少代理的洗牌交叉单点交叉减少代理的单点交叉子种群的支持migrate在子种群间交换个体实用函数bs2rv二进制串到实值的转换rep矩阵的复制5.1.1 种群表示和初始化种群表示和初始化函数有:crtbase,crtbp,Crtrp。GA工具箱支持二进制、整数和浮点数的基因表示。二进制和整数种群可以使用工具箱中的CrtbP建立二进制种群。CrtbaSe是附加的功能,它提供向量描述整数表示。种群的实值可用CrtrP进行初始化。在二进制代码和实值之间的变换可使用函数bs2rv,它支

4、持格雷码和对数编码。5.1.2 适应度计算适应度函数有:ranking,sca1ingo适应度函数用于转换目标函数值,给每一个个体一个非负的价值数。这个工具箱支持GoIdberg的偏移法(OffSeHing)和比率法以及贝克的线性评估算法。另外,ranking函数支持非线性评估。5.1.3 选择函数选择函数有:reins,rws,se1ect,sus。这些函数根据个体的适应度大小在已知种群中选择一定数量的个体,对它的索引返回一个列向量。现在最合适的是轮盘赌选择(即FWS函数)和随机遍历抽样(即SUS函数)。高级入口函数Se1eCt为选择程序,特别为多种群的使用提供了一个方便的接口界面。在这种情

5、况下,代沟是必须的,这就是整个种群在每一代中没有被完全复制,reins能使用均匀的随机数或基于适应度的重新插入。5.1.4 交叉算子交叉算子函I数有:recdis,recint,ree1in,recmut,recombinxovdp,xovdprsfxovmp,xovsh,xovshrs,xovsp,xovsprso交叉是通过给定的概率重组一对个体产生后代。单点交叉、两点交叉和洗牌交叉是由xovspsxovdpsxovsh函数分别完成的。缩小代理交叉函数分别是:XoVciPrs、xovshrs和xovsprs)通用的多点交叉函数是x。VmP,它提供均匀交换的支持。为支持染色体实值表示,离散的、

6、中间的和线性重组分别由函数reedis、recint、ree1in完成。函数recmut提供具有突变特征的线性重组。函数recombin是一高级入口函数,对所有交叉操作提供多子群支持入口。5.1.5 变异算子变异算子函数有:mut,mutate,mutbgao二进制和整数变异操作由mut完成。实值的变异使用育种机函数mutbga是有效的。MUtate对变异操作提供一个高级接口。5.1.6 多子群支持多子群支持函数:migrateo遗传算法工具箱通过高层遗传操作函数migrate对多子群提供支持,它的一个功能是在子群中交换个体。一个单一种群通过使用工具箱中函数修改数据结构,使其分为许多子种群,这

7、些子种群被保存在连续的数据单元块中。高层函数如se1ect和reins可独立地操作子种群,包含在一个数据结构中的每一子种群允许独自向前衍化。基于孤岛或回迁模式,migrate允许个体在子种群中迁移。5.2遗传算法中的通用函数在这一节,将详细介绍在MAT1AB中用于遗传算法的各种工具箱函数,对每个函数从功能、语法格式、使用说明以及用法举例等方面进行阐述。关于每个函数的适用信息由在线帮助工具提供。5.2.1 函数bs2rv功能:二进制串到实值的转换格式:Phen=bs2rv(Chrom,FieIdD)详细说明:Phen=bs2rv(Chrom,Fie1dD),根据译码矩阵FieIdD将二进制串矩阵

8、Chrom转换为实值向量。返回矩阵Phen包含对应的种群表现型。使用格雷编码的二进制染色体表示被推荐作为量化间隔的规则海明距离,可使遗传搜索减少欺骗,设置量化点间刻度的可选方案是选择线性或对数编码从二进制变换到实值。对数刻度用于决策变量的范围不知道,作为大范围参数的边界时,搜索可用较少的位数,以减少GA的内存需求和计算量。矩阵FiekiD有如下结构:IenIbubcodesca1eIbinubin这里矩阵的行组成如下:Ien是包含在Chrom中每个子串长度,注意SUm(回?)等于Iength(Chrom)0伤和油是行向量,分别指明每个变量使用的下界和上界。Code是二进制行向量,指明子串是怎样

9、编码的,cod&i)=1为标准的二进制编码,code(i)=0则为格雷编码。SCHe是二进制行向量,指明每个子串是否使用对数或算术刻度,scRe(i)=O则为算术,sca1e(i)=1则为对数。Ibin和,加是二进制行向量,指明表示范围中是否包含每个边界。选择=O或I而二0则从表示范围中去掉边界,Ibin=1或ubin=1则在表示范围中包含边界。例5.1函数bs2rv应用举例。下面的二进制种群Chrom,由函数crtbp创建,表示在-1,10之间的一组简单变量,程序代码表示如何使用函数bs2rv将算术表示的格雷码或二进制串表示转换为实值表现型。Chrom=crtbp(4,8)%创建任意染色体,

10、如为二进制串0000011110001001chrom=0010100011011011Fie1dD=8;-1;10;1;0;1;1;%包括边界Phen=bs2rv(Chrom,Fie1dD)%转换二进制到实值,使用算术刻度,0.7843、9.3961phen=1.0706、5.2980,Fie1dD=8;1;10;I;1;0;0;%不包括边界Phen=bs2rv(Chrom,Fie1dD)%转换二进制到实值,使用对数刻度,6.6223、5.0615phen=2.7277J.5236,算法说明:bs2rv作为GA工具箱的一个M文件执行,如果使用对数刻度,其范围必须不能包含零。5.2.2 函数c

11、rtbase功能:创建基向量格式:BaseVec=crtbase(1ind,Base)详细说明:CrtbaSe产生向量的元素对应染色体结构的基因座,使用不同的基本字符表示建立种群时这个函数可与函数crtbp联合使用。BaseVec=crtbase(1ind,BaSe)创建长度为1ind长的向量,它的每个元素由基本字符决定,如果1ind是向量,BaSeVeC的长度为1ind的总长,如果BaSe也是一个长为1ind长的向量,则BaSeVeC是一组由1ind和基本字符BaSe的元素决定长度的基本字符组组成。当描述染色体结构的基因位基本字符时,最后一选项是有用的。例5.2函数BaseVec应用举例。下

12、面的程序代码为种群创建一有4个基数为8的基本字符0,1,2,3,4,5,6,7和6个基数为5的基本字符0,1,2,3,4的基本字符向量。BaseV=crtbase(46,85)BaseV=8888555555参见:crtbp,bs2rv5.2.3 函数crtbp功能:创建初始种群格式:Chrom,1ind,BaseV=crtbp(Nind,1ind)Chrom,1ind,BaseV=crtbp(Nind,BaseV)Chrom,1ind,BaseV=crtbp(Nind,1ind,Base)详细说明:遗传算法的第一步是创建由任意染色体组成的原始种群。CrtbP创建一元素为随机数的矩阵Chrom

13、o格式创建一大小为Nind1ind的随机二元矩阵,这里Nind指定种群中个体的数量,1ind指定个体的长度。此格式习惯于指定染色体的尺寸(维度)。格式返回长度为1ind的染色体结构,染色体基因位的基本字符由向量BaSeV决定。格式用于产生基本字符为BaSe的染色体矩阵。如果BaSe是向量,BaSe的元素值指定了染色体的基因位的基本字符。在这种情况下,右边的第二个变元可省略,即为格式。例5.3使用函数CrtbP创建初始种群的应用举例。创建一个长度为9、有6个个体的随机种群。Chrom,1ind,BaseV=crtbp(6,9)或Chrom,1ind,BaseV=CrtbP(6,9,BaSeV)运

14、行后得r011001000、001101110OOO110111Chrom=100000001111110110、01IO11O111ind-9;BaseV=222222222;创建一长度为9有6个个体的随机种群,这里前四个基因位是基本字符0,1,2,3,4,5,6,7,后五个基因位是基本字符0,1,2,3oBaseV=crtbase(45,84);Chrom,1ind,BaseV=crtbp(6,BaseV);或Chrom,1ind,BaseV=crtbp(6,9,888844444);运行后得,431120203、147521110Chrom=130100002155720231457701303U2403311算法说明:CrtbP是GA工具箱中的一个M文件,它使用了MAT1AB随机函数rand。参见:crtbase,crtrp5.2.4 函数crtrp功能:创建实值原始种群。遗传算法的第一步是创建由任意个体组成的原始种群。crtrp创建元素为均匀分布随机数的矩阵。格式:Chrom=crtrp(Nind,Fie1dDR)详细说明:Chrom=CrtrP(Nind,Fie1dDR)创建一大小为NindXNVar的随机实值矩阵,这里Nind指定

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 工作总结

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服