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