资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,一、内容提要,Page,*,汕头大学工学院,MATLAB,遗传算法,工具箱函数及其应用,学号:,11309011,姓名:黄樟,导师:李昇平,指导老师:包能胜,汕头大学工学院 机械电子工程系,2013年12月18日,内容提要,遗传算法流程回顾,遗传算法工具箱结构,遗传算法工具箱通用函数,遗传算法工具箱应用,一、遗传算法流程回顾,遗传算法基本流程框图,生成初始种群,计算适应度,选择-复制,交叉,变异,生成新一代种群,终止?,结束,个体,染色体,基因,二、遗传算法工具箱结构,本节介绍的是英国苏菲尔德大学开发的遗传算法工具箱。,由于MATLAB高级语言的通用性,对问题用M文件编码,与此配对的是MATLAB先进的数据分析、可视化工具、特殊目的的应用领域工具箱和展现给使用者具有研究遗传算法可能性的一致环境。,GA工具箱本质是个函数包,,用户只要安装了这个工具箱或者软件自带了这个工具箱,就可以调用这些函数命令,从而编写出强大的MATLAB遗传算法程序。,二、遗传算法工具箱结构,1,、种群表示和初始化函数:,crtbase,crtbp,crtp。,GA,工具箱支持二进制、整数和浮点数的基因表示。二进制和整数种群可以使用工具箱中的,crtbp,建立二进制种群。,crtbase,是附加的功能,它提供向量描述整数表示。种群的实值可用,crtrp,进行初始化。在二进制代码和实值之间的变换可使用函数,bs2rv,,它支持格雷码和对数编码。,二、遗传算法工具箱结构,2,、适应度计算:,ranking,scaling。,适应度函数用于转换目标函数值,给每一个个体一个非负的价值数。这个工具箱支持,Goldberg,的偏移法和比率法以及贝克的线性评估算法。另外,,ranking,函数支持非线性评估。,二、遗传算法工具箱结构,3,、选择函数:,reins,rws,select,sus。,这些函数根据个体的适应度大小在已知种群中选择一定数量的个体,对它的索引返回一个列向量。现在最合适的是轮盘赌选择法(即,rws,函数,)和随机遍历抽样(即,sus,函数)。高级入口函数,select,为选择程序,特别为多种群的使用提供了一个方便的接口界面。在这种情况下,代沟是必需的,即整个种群在每一代中没有被完全复制。,reins,能使用均匀的随机数或基于适应度的重新插入。,二、遗传算法工具箱结构,4,、交叉算子:,recdis,recint,reclin,recmut,recombin,xovdp,xovdprs,xovmp,xovsh,xovshrs,xovsp,xovsprs。,交叉是通过给定的概率重组一对个体而产生后代的。单点、两点和洗牌交叉是由,xovsp、xovdp,和,xovsh,函数分别完成的。缩小代理交叉函数分别是:,xovdprs,、,xovshrs,和,xovsprs,。通用的多点交叉函数是,xovmp,,它提供均匀交换的支持。函数,recmut,提供具有突变特征的线性重组。而函数,recombin,是一高级入口函数,对所有交叉操作提供多子群支持入口。,二、遗传算法工具箱结构,5,、,变异算子:,mut,,mutate,mutbga。,二进制和整数变异操作由,mut,完成。实值的变异使用育种函数,mutbga,是有效的。,mutate,对变异操作提供一个高级接口。,二、遗传算法工具箱结构,6,、多子群支持:,migrate,。,遗传算法工具箱通过高层遗传操作函数,migrate,对多子群提供支持,它的一个功能是在子群中交换个体。一个单一种群通过使用工具箱中的函数修改数据结构,使其分为许多子种群,这些子种群被保存在连续的数据单元块中。高层函数(如,select,和,reins,)可独立地操作子种群,包含在一个数据结构中的每一个种群允许独自向前衍化。,三、遗传算法工具箱通用函数,几个典型工具箱函数的介绍,创建初始种群函数,crtbp,二进制串到实值转换函数,bs2rv,轮盘赌选择函数,rws,三、遗传算法工具箱通用函数,1、函数,crtbp,功能:创建初始种群。,格式:,说明:遗传算法第一步是创建由任意染色体组成的 原始种群。,crtbp,创建一元素为随机数的矩阵,Chrom,。,向量,个体数量,个体长度,三、遗传算法工具箱通用函数,例3.11 使用函数crtbp创建初始种群的应用举例。,创建一个长度为9、有6个个体的随机种群(这里前四个基因位是基本字符0,1,2,3,4,5,6,7,后五个基因位是基本字符0,1,2,3):,BaseV=crtbase(4 5,8 4);,Chrom,,,Lind,,,BaseV,=,crtbp,(6,,BaseV,);,或,Chrom,Lind,BaseV=crtbp(6,9,8 8 8 8 4 4 4 4 4),;运行得,Lind=9;,BaseV=,8 8 8 8 4 4 4 4 4,三、遗传算法工具箱通用函数,2、函数,bs2rv,功能:二进制串到实值的转换。,格式:,Phen=bs2rv(Chrom,FieldD),说明:,Phen,=,bs2rv,(,Chrom,,,FieldD,)根据译码矩阵,FieldD,将二进制串矩阵,Chrom,转换为实值向量。返回矩阵,Phen,包含对应的种群表现型。,例3.21 函数,bs2rv,的应用举例。,下列二进制种群,Chrom,由函数,crtbp,创建,表示在-,1,10,之间的一组简单变量,程序代码表示怎样使用函数,bs2rv,将算术表示格雷码或二进制串表示转换为实值表现型。,Chrom,=,crtbp,(4,8),%创建任意染色体,此处为二进制串,三、遗传算法工具箱通用函数,三、遗传算法工具箱通用函数,FieldD=8;1;10;1;1;0;0%,不包括边界,Phen=bs2rv(Chrom,FieldD)%,转换二进制到实值,使用对数刻度,FieldD=8;-1;10;1;0;1;1%,包括边界,Phen=bs2rv(Chrom,FieldD),%,转换二进制到实值,使用算术刻度,三、遗传算法工具箱通用函数,3、函数,rws,功能:轮盘赌选择。,格式:,NewChrIx=rws(FitnV,Nsel),说明:,rws,在当前种群中按照它们的适应度,FitnV,选择,Nsel,个个体繁殖。,FitnV,是一包含种群中每个个体性能尺寸的列向量,它能通过使用函数,ranking,或,scaling,计算每个个体的适应度水平来得到。,s,4,s,2,s,1,s,3,轮盘赌选择法示意图,三、遗传算法工具箱通用函数,例3.31 轮盘赌选择方法示例。,考虑8个个体的种群,假设已计算出适应度,FitnV,:,FitnV,=1.50;1.35;1.21;1.07;0.92;0.78;0.64;0.5,选择6个个体的索引:,NewChrIx=rws(FitnV,6),NewChrIx,成为,算法说明:通过计算适应度向量的累加和完成轮盘赌选择的表格,并产生随机分布在,0,sum(FitnV),区间内的,Nsel,个实数,被选择个体的索引通过比较向量累加和产生的编号来决定。一个个体被选择的概率由下式给出:,四,、遗传算法工具箱,应用,了解MATLAB窗口界面,用遗传算法工具箱求一个简单函数的最值,四,、遗传算法工具箱,应用,MATLAB工作界面,当前目录,浏览器窗口,命令窗口,工作空间,浏览器窗口,历史命令,窗口,四,、遗传算法工具箱,应用,MATLAB工作界面,四,、遗传算法工具箱,应用,用GA工具箱函数求解,:,MATLAB,代码,设置运行,参数,定义初始种群,转换实值,遗传算法,关键步骤,四,、遗传算法工具箱,应用,运行结果,figure 1,figure 2,找到,最优解,理论最优解是,X=31,Y=961,四,、遗传算法工具箱,应用,改变参数运行,被选种群分布,谢谢!,请大家批评和指正,姓名:黄樟,学号:11309011,导师:李昇平,指导老师:包能胜,
展开阅读全文