MATLAB遗传算法工具箱及其应用PPT资料.ppt
《MATLAB遗传算法工具箱及其应用PPT资料.ppt》由会员分享,可在线阅读,更多相关《MATLAB遗传算法工具箱及其应用PPT资料.ppt(25页珍藏版)》请在冰豆网上搜索。
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(45,84);
Chrom,Lind,BaseV=crtbp(6,BaseV);
或Chrom,Lind,BaseV=crtbp(6,9,888844444);
运行得,Lind=9;
BaseV=888844444,三、遗传算法工具箱通用函数,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;
0;
0%不包括边界Phen=bs2rv(Chrom,FieldD)%转换二进制到实值,使用对数刻度,FieldD=8;
-1;
1%包括边界Phen=bs2rv(Chrom,FieldD)%转换二进制到实值,使用算术刻度,三、遗传算法工具箱通用函数,3、函数rws功能:
轮盘赌选择。
NewChrIx=rws(FitnV,Nsel)说明:
rws在当前种群中按照它们的适应度FitnV选择Nsel个个体繁殖。
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个实数,被选择个体的索引通过比较向量累加和产生的编号来决定。
一个个体被选择的概率由下式给出:
四、遗传算法工具箱应用,了解MATLAB窗口界面用遗传算法工具箱求一个简单函数的最值,四、遗传算法工具箱应用,MATLAB工作界面,当前目录浏览器窗口,命令窗口,工作空间浏览器窗口,历史命令窗口,四、遗传算法工具箱应用,MATLAB工作界面,四、遗传算法工具箱应用,用GA工具箱函数求解:
MATLAB代码,设置运行参数,定义初始种群转换实值,遗传算法关键步骤,四、遗传算法工具箱应用,运行结果,figure1,figure2,找到最优解,理论最优解是X=31,Y=961,四、遗传算法工具箱应用,改变参数运行,被选种群分布,谢谢!
请大家批评和指正,姓名:
黄樟学号:
11309011导师:
包能胜,