您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > MATLAB遗传算法工具箱及其应用
MATLAB遗传算法工具箱函数及其应用学号:姓名:学院201年月日Page2汕头大学工学院内容提要遗传算法流程回顾遗传算法工具箱结构遗传算法工具箱通用函数遗传算法工具箱应用Page3汕头大学工学院一、遗传算法流程回顾遗传算法基本流程框图生成初始种群计算适应度选择-复制交叉变异生成新一代种群终止?结束个体染色体基因Page4汕头大学工学院二、遗传算法工具箱结构本节介绍的是英国苏菲尔德大学开发的遗传算法工具箱。由于MATLAB高级语言的通用性,对问题用M文件编码,与此配对的是MATLAB先进的数据分析、可视化工具、特殊目的的应用领域工具箱和展现给使用者具有研究遗传算法可能性的一致环境。GA工具箱本质是个函数包,用户只要安装了这个工具箱或者软件自带了这个工具箱,就可以调用这些函数命令,从而编写出强大的MATLAB遗传算法程序。Page5汕头大学工学院二、遗传算法工具箱结构1、种群表示和初始化函数:crtbase,crtbp,crtp。GA工具箱支持二进制、整数和浮点数的基因表示。二进制和整数种群可以使用工具箱中的crtbp建立二进制种群。crtbase是附加的功能,它提供向量描述整数表示。种群的实值可用crtrp进行初始化。在二进制代码和实值之间的变换可使用函数bs2rv,它支持格雷码和对数编码。Page6汕头大学工学院二、遗传算法工具箱结构2、适应度计算:ranking,scaling。适应度函数用于转换目标函数值,给每一个个体一个非负的价值数。这个工具箱支持Goldberg的偏移法和比率法以及贝克的线性评估算法。另外,ranking函数支持非线性评估。Page7汕头大学工学院二、遗传算法工具箱结构3、选择函数:reins,rws,select,sus。这些函数根据个体的适应度大小在已知种群中选择一定数量的个体,对它的索引返回一个列向量。现在最合适的是轮盘赌选择法(即rws函数)和随机遍历抽样(即sus函数)。高级入口函数select为选择程序,特别为多种群的使用提供了一个方便的接口界面。在这种情况下,代沟是必需的,即整个种群在每一代中没有被完全复制。reins能使用均匀的随机数或基于适应度的重新插入。Page8汕头大学工学院二、遗传算法工具箱结构4、交叉算子:recdis,recint,reclin,recmut,recombin,xovdp,xovdprs,xovmp,xovsh,xovshrs,xovsp,xovsprs。交叉是通过给定的概率重组一对个体而产生后代的。单点、两点和洗牌交叉是由xovsp、xovdp和xovsh函数分别完成的。缩小代理交叉函数分别是:xovdprs、xovshrs和xovsprs。通用的多点交叉函数是xovmp,它提供均匀交换的支持。函数recmut提供具有突变特征的线性重组。而函数recombin是一高级入口函数,对所有交叉操作提供多子群支持入口。Page9汕头大学工学院二、遗传算法工具箱结构5、变异算子:mut,mutate,mutbga。二进制和整数变异操作由mut完成。实值的变异使用育种函数mutbga是有效的。mutate对变异操作提供一个高级接口。Page10汕头大学工学院二、遗传算法工具箱结构6、多子群支持:migrate。遗传算法工具箱通过高层遗传操作函数migrate对多子群提供支持,它的一个功能是在子群中交换个体。一个单一种群通过使用工具箱中的函数修改数据结构,使其分为许多子种群,这些子种群被保存在连续的数据单元块中。高层函数(如select和reins)可独立地操作子种群,包含在一个数据结构中的每一个种群允许独自向前衍化。Page11汕头大学工学院三、遗传算法工具箱通用函数几个典型工具箱函数的介绍创建初始种群函数crtbp二进制串到实值转换函数bs2rv轮盘赌选择函数rwsPage12汕头大学工学院三、遗传算法工具箱通用函数1、函数crtbp功能:创建初始种群。格式:说明:遗传算法第一步是创建由任意染色体组成的原始种群。crtbp创建一元素为随机数的矩阵Chrom。LindNindcrtbpBaseVLindChrom,,,BaseVNindcrtbpBaseVLindChrom,,,BaseLindNindcrtbpBaseVLindChrom,,,,向量个体数量个体长度Page13汕头大学工学院三、遗传算法工具箱通用函数例3.11使用函数crtbp创建初始种群的应用举例。创建一个长度为9、有6个个体的随机种群(这里前四个基因位是基本字符{0,1,2,3,4,5,6,7},后五个基因位是基本字符{0,1,2,3}):BaseV=crtbase([45],[84]);[Chrom,Lind,BaseV]=crtbp(6,BaseV);或[Chrom,Lind,BaseV]=crtbp([6,9],[888844444]);运行得011130424303307754132227551200001031011125741302221134ChromLind=9;BaseV=[888844444]Page14汕头大学工学院三、遗传算法工具箱通用函数2、函数bs2rv功能:二进制串到实值的转换。格式:Phen=bs2rv(Chrom,FieldD)说明:Phen=bs2rv(Chrom,FieldD)根据译码矩阵FieldD将二进制串矩阵Chrom转换为实值向量。返回矩阵Phen包含对应的种群表现型。Page15汕头大学工学院例3.21函数bs2rv的应用举例。下列二进制种群Chrom由函数crtbp创建,表示在[-1,10]之间的一组简单变量,程序代码表示怎样使用函数bs2rv将算术表示格雷码或二进制串表示转换为实值表现型。Chrom=crtbp(4,8)%创建任意染色体,此处为二进制串11011011000101001001000111100000Chrom三、遗传算法工具箱通用函数Page16汕头大学工学院5236.17277.20615.56223.6Phen三、遗传算法工具箱通用函数FieldD=[8;1;10;1;1;0;0]%不包括边界Phen=bs2rv(Chrom,FieldD)%转换二进制到实值,使用对数刻度2980.50706.13961.97843.0PhenFieldD=[8;-1;10;1;0;1;1]%包括边界Phen=bs2rv(Chrom,FieldD)%转换二进制到实值,使用算术刻度Page17汕头大学工学院三、遗传算法工具箱通用函数3、函数rws功能:轮盘赌选择。格式:NewChrIx=rws(FitnV,Nsel)说明:rws在当前种群中按照它们的适应度FitnV选择Nsel个个体繁殖。FitnV是一包含种群中每个个体性能尺寸的列向量,它能通过使用函数ranking或scaling计算每个个体的适应度水平来得到。s4s2s1s3轮盘赌选择法示意图Page18汕头大学工学院731152NewChrIx三、遗传算法工具箱通用函数例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个实数,被选择个体的索引通过比较向量累加和产生的编号来决定。一个个体被选择的概率由下式给出:NjjiixfxfxF1)()()(率。是这个个体被选择的概的适应度,是个体)()(iiixFxxfPage19汕头大学工学院四、遗传算法工具箱应用了解MATLAB窗口界面用遗传算法工具箱求一个简单函数的最值Page20汕头大学工学院四、遗传算法工具箱应用MATLAB工作界面当前目录浏览器窗口命令窗口工作空间浏览器窗口历史命令窗口Page21汕头大学工学院四、遗传算法工具箱应用MATLAB工作界面Page22汕头大学工学院四、遗传算法工具箱应用用GA工具箱函数求解:)的最大值。(其中]31,0[)(2xxxfMATLAB代码设置运行参数定义初始种群转换实值遗传算法关键步骤Page23汕头大学工学院四、遗传算法工具箱应用运行结果figure1figure2找到最优解理论最优解是X=31,Y=961Page24汕头大学工学院四、遗传算法工具箱应用改变参数运行被选种群分布Page25汕头大学工学院姓名:黄樟学号:11309011导师:李昇平指导老师:包能胜
本文标题:MATLAB遗传算法工具箱及其应用
链接地址:https://www.777doc.com/doc-5065190 .html