第五章遗传算法工具箱函数精品毕业设计完整版.docx
- 文档编号:847991
- 上传时间:2022-10-13
- 格式:DOCX
- 页数:45
- 大小:492.92KB
第五章遗传算法工具箱函数精品毕业设计完整版.docx
《第五章遗传算法工具箱函数精品毕业设计完整版.docx》由会员分享,可在线阅读,更多相关《第五章遗传算法工具箱函数精品毕业设计完整版.docx(45页珍藏版)》请在冰豆网上搜索。
第五章遗传算法工具箱函数精品毕业设计完整版
第五章遗传算法工具箱函数
本章介绍英国设菲尔德大学开发的遗传算法工具箱函数。
由于MATLAB高级语言的通用性,对问题用M文件编码,与此配对的是MATLAB先进的数据分析、可视化工具、特殊目的的应用领域工具箱和展现给使用者具有研究遗传算法可能性的一致环境。
MATLAB遗传算法工具箱为遗传算法从业者和第一次实验遗传算法的人提供了广泛多样的有用函数。
遗传算法工具箱使用MATLAB矩阵函数为实现广泛领域的遗传算法建立一套通用工具,这个遗传算法工具是用M文件写成的,是命令行形式的函数,能完成遗传算法大部分重要功能的程序的集合。
用户可通过这些命令行函数,根据实际分析的需要,编写出功能强大的MATLAB程序。
5.1工具箱结构
本节给出GA工具箱的主要程序。
表5.1为遗传算法工具箱中的各种函数分类表。
表5.1遗传算法工具箱中函数分类表
创建种群
crtbase
crtbp
crtrp
创建基向量
创建任意离散随机种群
创建实值初始种群
适应度计算
ranking
scaling
常用的基于秩的适应度计算
比率适应度计算
选择函数
reins
rws
select
sus
一致随机和基于适应度的重插入
轮盘选择
高级选择例程
随机遍历采样
变异算子
mut
mutate
mutbga
离散变异
高级变异函数
实值变异
交叉算子
recdis
recint
reclin
recmut
recombin
xovdp
xovdprs
xovmp
xovsh
xovshrs
xovsp
xovsprs
离散重组
中间重组
线性重组
具有变异特征的线性重组
高级重组算子
两点交叉算子
减少代理的两点交叉
通常多点交叉
洗牌交叉
减少代理的洗牌交叉
单点交叉
减少代理的单点交叉
子种群的支持
migrate
在子种群间交换个体
实用函数
bs2rv
rep
二进制串到实值的转换
矩阵的复制
5.1.1种群表示和初始化
种群表示和初始化函数有:
crtbase,crtbp,crtrp。
GA工具箱支持二进制、整数和浮点数的基因表示。
二进制和整数种群可以使用工具箱中的crtbp建立二进制种群。
crtbase是附加的功能,它提供向量描述整数表示。
种群的实值可用crtrp进行初始化。
在二进制代码和实值之间的变换可使用函数bs2rv,它支持格雷码和对数编码。
5.1.2适应度计算
适应度函数有:
ranking,scaling。
适应度函数用于转换目标函数值,给每一个个体一个非负的价值数。
这个工具箱支持Goldberg的偏移法(offsetting)和比率法以及贝克的线性评估算法。
另外,ranking函数支持非线性评估。
5.1.3选择函数
选择函数有:
reins,rws,select,sus。
这些函数根据个体的适应度大小在已知种群中选择一定数量的个体,对它的索引返回一个列向量。
现在最合适的是轮盘赌选择(即rws函数)和随机遍历抽样(即sus函数)。
高级入口函数select为选择程序,特别为多种群的使用提供了一个方便的接口界面。
在这种情况下,代沟是必须的,这就是整个种群在每一代中没有被完全复制,reins能使用均匀的随机数或基于适应度的重新插入。
5.1.4交叉算子
交叉算子函数有:
recdis,recint,reclin,recmut,recombin,xovdp,xovdprs,xovmp,xovsh,xovshrs,xovsp,xovsprs。
交叉是通过给定的概率重组一对个体产生后代。
单点交叉、两点交叉和洗牌交叉是由xovsp、xovdp、xovsh函数分别完成的。
缩小代理交叉函数分别是:
xovdprs、xovshrs和xovsprs。
通用的多点交叉函数是xovmp,它提供均匀交换的支持。
为支持染色体实值表示,离散的、中间的和线性重组分别由函数recdis、recint、reclin完成。
函数recmut提供具有突变特征的线性重组。
函数recombin是一高级入口函数,对所有交叉操作提供多子群支持入口。
5.1.5变异算子
变异算子函数有:
mut,mutate,mutbga。
二进制和整数变异操作由mut完成。
实值的变异使用育种机函数mutbga是有效的。
Mutate对变异操作提供一个高级接口。
5.1.6多子群支持
多子群支持函数:
migrate。
遗传算法工具箱通过高层遗传操作函数migrate对多子群提供支持,它的一个功能是在子群中交换个体。
一个单一种群通过使用工具箱中函数修改数据结构,使其分为许多子种群,这些子种群被保存在连续的数据单元块中。
高层函数如select和reins可独立地操作子种群,包含在一个数据结构中的每一子种群允许独自向前衍化。
基于孤岛或回迁模式,migrate允许个体在子种群中迁移。
5.2遗传算法中的通用函数
在这一节,将详细介绍在MATLAB中用于遗传算法的各种工具箱函数,对每个函数从功能、语法格式、使用说明以及用法举例等方面进行阐述。
关于每个函数的适用信息由在线帮助工具提供。
5.2.1函数bs2rv
功能:
二进制串到实值的转换
格式:
Phen=bs2rv(Chrom,FieldD)
详细说明:
Phen=bs2rv(Chrom,FieldD),根据译码矩阵FieldD将二进制串矩阵Chrom转换为实值向量。
返回矩阵Phen包含对应的种群表现型。
使用格雷编码的二进制染色体表示被推荐作为量化间隔的规则海明距离,可使遗传搜索减少欺骗,设置量化点间刻度的可选方案是选择线性或对数编码从二进制变换到实值。
对数刻度用于决策变量的范围不知道,作为大范围参数的边界时,搜索可用较少的位数,以减少GA的内存需求和计算量。
矩阵FieldD有如下结构:
这里矩阵的行组成如下:
len是包含在Chrom中每个子串长度,注意sum(len)等于length(Chrom)。
lb和ub是行向量,分别指明每个变量使用的下界和上界。
code是二进制行向量,指明子串是怎样编码的,code(i)=1为标准的二进制编码,code(i)=0则为格雷编码。
scale是二进制行向量,指明每个子串是否使用对数或算术刻度,scale(i)=0则为算术,scale(i)=1则为对数。
lbin和ubin是二进制行向量,指明表示范围中是否包含每个边界。
选择lbin=0或ubin=0则从表示范围中去掉边界,lbin=1或ubin=1则在表示范围中包含边界。
例5.1函数bs2rv应用举例。
下面的二进制种群Chrom,由函数crtbp创建,表示在[-1,10]之间的一组简单变量,程序代码表示如何使用函数bs2rv将算术表示的格雷码或二进制串表示转换为实值表现型。
Chrom=crtbp(4,8)%创建任意染色体,如为二进制串
FieldD=[8;-1;10;1;0;1;1];%包括边界
Phen=bs2rv(Chrom,FieldD)%转换二进制到实值,使用算术刻度
FieldD=[8;1;10;1;1;0;0];%不包括边界
Phen=bs2rv(Chrom,FieldD)%转换二进制到实值,使用对数刻度
算法说明:
bs2rv作为GA工具箱的一个M文件执行,如果使用对数刻度,其范围必须不能包含零。
5.2.2函数crtbase
功能:
创建基向量
格式:
BaseVec=crtbase(Lind,Base)
详细说明:
crtbase产生向量的元素对应染色体结构的基因座,使用不同的基本字符表示建立种群时这个函数可与函数crtbp联合使用。
BaseVec=crtbase(Lind,Base)创建长度为Lind长的向量,它的每个元素由基本字符决定,如果Lind是向量,BaseVec的长度为Lind的总长,如果Base也是一个长为Lind长的向量,则BaseVec是一组由Lind和基本字符Base的元素决定长度的基本字符组组成。
当描述染色体结构的基因位基本字符时,最后一选项是有用的。
例5.2函数BaseVec应用举例。
下面的程序代码为种群创建一有4个基数为8的基本字符{0,1,2,3,4,5,6,7}和6个基数为5的基本字符{0,1,2,3,4}的基本字符向量。
BaseV=crtbase([46],[85])
BaseV=
[8888555555]
参见:
crtbp,bs2rv
5.2.3函数crtbp
功能:
创建初始种群
格式:
[Chrom,Lind,BaseV]=crtbp(Nind,Lind)
[Chrom,Lind,BaseV]=crtbp(Nind,BaseV)
[Chrom,Lind,BaseV]=crtbp(Nind,Lind,Base)
详细说明:
遗传算法的第一步是创建由任意染色体组成的原始种群。
crtbp创建一元素为随机数的矩阵Chrom。
格式创建一大小为Nind×Lind的随机二元矩阵,这里Nind指定种群中个体的数量,Lind指定个体的长度。
此格式习惯于指定染色体的尺寸(维度)。
格式返回长度为Lind的染色体结构,染色体基因位的基本字符由向量BaseV决定。
格式用于产生基本字符为Base的染色体矩阵。
如果Base是向量,Base的元素值指定了染色体的基因位的基本字符。
在这种情况下,右边的第二个变元可省略,即为格式。
例5.3使用函数crtbp创建初始种群的应用举例。
①创建一个长度为9、有6个个体的随机种群。
[Chrom,Lind,BaseV]=crtbp(6,9)
或
[Chrom,Lind,BaseV]=crtbp(6,9,BaseV)
运行后得
Lind=9;
BaseV=[222222222];
创建一长度为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];
算法说明:
crtbp是GA工具箱中的一个M文件,它使用了MATLAB随机函数rand。
参见:
crtbase,crtrp
5.2.4函数crtrp
功能:
创建实值原始种群。
遗传算法的第一步是创建由任意个体组成的原始种群。
crtrp创建元素为均匀分布随机数的矩阵。
格式:
Chrom=crtrp(Nind,FieldDR)
详细说明:
Chrom=crtrp(Nind,FieldDR)创建一大小为Nind×Nvar的随机实值矩阵,这里Nind指定了种群中个体的数量,Nvar指定每个个体的变量个数。
Nvar来自FieldDR,Nvar=size(FieldDR,2)。
FieldDR(FieldDescriptionRealvalue)是一大小为2×Nvar的矩阵,并包含每个个体变量的边界,第一行包含下界,第二行包含上界。
FieldDR被用在另一些函数中(变异)。
例5.4使用函数crtrp创建一具有6个个体,每个个体有4个变量的随机
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第五 遗传 算法 工具箱 函数 精品 毕业设计 完整版