第五章 遗传算法工具箱函数.docx

上传人:b****2 文档编号:724739 上传时间:2023-04-29 格式:DOCX 页数:22 大小:36.27KB
下载 相关 举报
第五章 遗传算法工具箱函数.docx_第1页
第1页 / 共22页
第五章 遗传算法工具箱函数.docx_第2页
第2页 / 共22页
第五章 遗传算法工具箱函数.docx_第3页
第3页 / 共22页
第五章 遗传算法工具箱函数.docx_第4页
第4页 / 共22页
第五章 遗传算法工具箱函数.docx_第5页
第5页 / 共22页
第五章 遗传算法工具箱函数.docx_第6页
第6页 / 共22页
第五章 遗传算法工具箱函数.docx_第7页
第7页 / 共22页
第五章 遗传算法工具箱函数.docx_第8页
第8页 / 共22页
第五章 遗传算法工具箱函数.docx_第9页
第9页 / 共22页
第五章 遗传算法工具箱函数.docx_第10页
第10页 / 共22页
第五章 遗传算法工具箱函数.docx_第11页
第11页 / 共22页
第五章 遗传算法工具箱函数.docx_第12页
第12页 / 共22页
第五章 遗传算法工具箱函数.docx_第13页
第13页 / 共22页
第五章 遗传算法工具箱函数.docx_第14页
第14页 / 共22页
第五章 遗传算法工具箱函数.docx_第15页
第15页 / 共22页
第五章 遗传算法工具箱函数.docx_第16页
第16页 / 共22页
第五章 遗传算法工具箱函数.docx_第17页
第17页 / 共22页
第五章 遗传算法工具箱函数.docx_第18页
第18页 / 共22页
第五章 遗传算法工具箱函数.docx_第19页
第19页 / 共22页
第五章 遗传算法工具箱函数.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

第五章 遗传算法工具箱函数.docx

《第五章 遗传算法工具箱函数.docx》由会员分享,可在线阅读,更多相关《第五章 遗传算法工具箱函数.docx(22页珍藏版)》请在冰点文库上搜索。

第五章 遗传算法工具箱函数.docx

第五章遗传算法工具箱函数

第五章遗传算法工具箱函数本章介绍英国设菲尔德大学开发的遗传算法工具箱函数。

由于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洗牌交叉56

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。

57

二进制和整数变异操作由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有如下结构:

lenlbubcodescalelbinubin这里矩阵的行组成如下:

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=58

0则从表示范围中去掉边界,lbin=1或ubin=1则在表示范围中包含边界。

例5.1函数bs2rv应用举例。

下面的二进制种群Chrom,由函数crtbp创建,表示在[-1,10]之间的一组简单变量,程序代码表示如何使用函数bs2rv将算术表示的格雷码或二进制串表示转换为实值表现型。

Chrom=crtbp(4,8)%创建任意染色体,如为二进制串0000011110001001chrom0010100011011011FieldD=[8;-1;10;1;0;1;1];%包括边界Phen=bs2rv(Chrom,FieldD)%转换二进制到实值,使用算术刻度0.78439.3961phen1.07065.2980FieldD=[8;1;10;1;1;0;0];%不包括边界Phen=bs2rv(Chrom,FieldD)%转换二进制到实值,使用对数刻度6.62235.0615phen2.72771.5236算法说明:

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,bs2rv5.2.3函数crtbp59

功能:

创建初始种群格式:

①[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)运行后得011001000001101110000110111Chrom100000001111110110011011011Lind=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]);运行后得431120203147521110130100002Chrom155720231457701303424033110Lind=9;BaseV=[888844444];算法说明:

crtbp是GA工具箱中的一个M文件,它使用了MATLAB随机函数rand。

参见:

crtbase,crtrp5.2.4函数crtrp60

功能:

创建实值原始种群。

遗传算法的第一步是创建由任意个体组成的原始种群。

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个变量的随机种群。

定义边界变量:

100503020%下界FieldDR100503020%上界创建初始种群:

Chrom=crtrp(6,FieldDR)40.23-17.1728.9515.3882.0613.2613.35-9.0952.4325.6415.20-2.54Chrom-47.5049.109.0910.65-90.50-13.46-25.63-0.8947.21-25.297.89-10.48参见:

mutbga,recdis,recint,reclin5.2.5函数migrate功能:

在子种群间迁移个体。

格式:

①Chrom=migrate(Chrom,SUBPOP)②Chrom=migrate(Chrom,SUBPOP,MigOpt)③Chrom=migrate(Chrom,SUBPOP,MigOpt,ObjV)④[Chrom,ObjV]=migrate(Chrom,SUBPOP,MigOpt,ObjV)详细说明:

migrate完成在当前种群Chrom的子种群间迁移个体,并返回迁移后的种群Chrom。

Chrom的一行对应一个个体。

子种群的数量由SUBPOP指定。

在Chrom中的子种群按照下列方案进行有序排列。

61

INDSubPop11INDSubPop21INDSubPopN1INDSubPop12INDSubPop22ChromINDSubPopN2INDSubPop1SUBPOPINDSubPop2SUBPOPINDSubPopNSUBPOP所有子种群必须有相同数量的个体。

MigOpt是一最大具有三个参数的可选向量。

MigOpt

(1):

是个体在子种群间的迁移概率。

如果省略或为NaN,则假定MigOpt

(1)=0.2(即20%)。

如果迁移概率不为0,则在每个子种群至少有一个个体迁移。

MigOpt

(2):

是指定迁移选择方式的标量。

0为均匀迁移,1为基于适应度的迁移。

如果省略或为NaN,则假设MigOpt

(2)=0。

MigOpt(3):

是指定迁移种群结构的标量。

0为完全网状结构,1为近邻结构,2为环状结构。

如果省略或为NaN,则假设MigOpt(3)=0。

如果省略MigOpt或为NaN,则假设为缺省值。

ObjV是具有与Chrom同样行数的任选列向量,并包含Chrom所有个体对应的目标函数值。

对于基于适应度的迁移(MigOpt

(2)=1),则ObjV为必选项。

如果ObjV是一输入输出参数,则目标函数值将按照迁移个体进行拷贝,并保存重新计算的整个种群的目标函数值。

例5.5下面列举函数migrate各种调用的情形。

Chrom=(Chrom,SUBPOP)在一子种群中选择20%的个体,并用均匀选择方式与从其它所有子种群中选择的个体进行替换。

这个过程将对所有子种群做一遍。

其中MigOpt=[0.2,0,0]Chrom=migrate(Chrom,SUBPOP,[NaN1NaN],ObjV))在一子种群中选择20%的个体并用从其它所有子种群中选择最适应(较小的ObjV)的个体替换。

(网状结构)这个过程将对所有子种群重复。

[Chrom,ObjV]=migrate(Chrom,SUBPOP,[0.312],ObjV))])在一子种群中选择30%的个体并用从单向环状结构的邻近子种群中选择最适应(较小的ObjV)的个体替换。

这个过程将对所有子种群重复。

第一个子种群从最后一个子种群接收它的新的个体(SUBPOP)。

ObjV按照迁移个体进行返回。

这个迁移方案如下:

subpop1-->subpop2-->subpop3-->...-->subpopSUBPOP-->subpop1[Chrom,ObjV]=migrate(Chrom,SUBPOP,[NaNNaN1],ObjV))在一子种群中选择20%的个体并用均匀选择方式与从两个相邻子种群中选择的个体替换。

这个过程将对所有子种群重复一遍。

第一个子种群从第二个子种群和最后一个子种群中接收新的个体。

最后一个子种群从第一个子种群和第SUBPOP-1个子种群接收新的个体。

ObjV按照迁移个体进行返回。

这个迁移方案如下:

62

subpopSUBPOP-->subpop1<-->subpop2<-->…<-->subpopSUBPOP<--subpop1参见:

select,recombin,mutate,reins5.2.6函数mut功能:

离散变异算子。

格式:

①NewChrom=mut(OldChrom,Pm)②NewChrom=mut(OldChrom,Pm,BaseV)详细说明:

mut取当前种群的表示,并用特定概率对每个元素变异。

如果染色体和种群结构中允许不同的基本字符,则mut允许用一个附加的变量BaseV来指定染色体中每一个元素的基本字符。

假定种群为二进制编码,NewChrom=mut(OldChrom,Pm),取当前种群OldChrom,每一行对应一个体并用概率Pm变异每一个元素。

如果省略,则假设Pm=0.7/Lind,这里Lind是染色体结构的长度。

这个值的选择将使染色体中的每一个元素的变异概率近似为0.5。

NewChrom=mut(OldChrom,Pm,BaseV)使用第三个变量指明染色体个体元素的变异的基本字符。

在这里,length(BaseV)=Lind,Lind是染色结构的长度。

mut是一低级变异函数,通常被mutate调用。

例5.6下面的程序代码为使用函数mut将当前种群变异为新种群。

①调用变异函数。

0000011110001001OldChrom=0010100011011011变异OldChrom使用缺省的概率,通过调用变异函数:

NewChrom=mut(OldChrom)这时,OldChrom将变成NewChrom:

0010011111000001NewChrom=0000000011011011②创建一长度为8有6个个体的随机种群。

BaseV=[88844444];[Chrom,Lind,BaseV]=crtbp(6,BaseV);610322220402113160202113Chrom=547311131373323141400033NewChrom=mut(Chrom,0.0778,BaseV)因此Chrom将变成63

610322220402113160202213NewChrom=547311131373023141400033需要补充说明的是,如果二进制串使用变异概率1,则调用过程及获得的结果如下:

mut([10101110],1);运行后得ans=[01010001]参见:

mutate,mutbga5.2.7函数mutate功能:

个体的变异(高级函数)。

格式:

①NewChrom=mutate(MUT_F,OldChrom,FieldDR)②NewChrom=mutate(MUT_F,OldChrom,FieldDR,MutOpt)③NewChrom=mutate(MUT_F,OldChrom,FieldDR,MutOpt,SUBPOP)详细说明:

mutate执行种群OldChrom中个体的变异,并在新种群NewChrom中返回变异后的个体,OldChrom和NewChrom中每一行对应一个个体。

MUT_F是一字符串,包含低级变异函数的名字例如mutbga或mut。

对实值变量,FieldDR是一大小为2×Nvar的矩阵,指定每个变量的边界;对离散值变量,FieldDR是一大小为1×Nvar的矩阵,指定每个变量的基本字符。

如果FieldDR省略、空或为NaN,则指定变量为二进制表示。

MutOpt是一任选参数项,包含变异概率,个体变量的突变可能性。

如果MutOpt省略,一缺省突变概率被假设。

对实值变异,MutOpt可能包含第二个参数说明压缩变异的范围的标量(参见mutbga)。

SUBPOP是一任选参数项,决定OldChrom中子种群的数量。

如果SUBPOP省略或NaN,则假设SUBPOP=1。

OldChrom中的所有子种群必须有相同的大小。

例5.7变异函数mutate的应用举例。

下面的程序代码为一个二进制种群和一个十进制种群的变异。

对于二进制种群,选取MUT_F='mut'0011101001001011OldChrom=1001100000000010NewChrom=mutate('mut',Chrom);运行后得0011101001001011NewChrom=1001100100000010对于十进制种群,选取MUT_F='mutbga'。

64

Chrom=crtbp(6,BaseV);%6个个体的种群,BaseV同上运行后得200231215443013366522132Chrom=320231333373331120302223边界定义如下:

00000000FieldDR=88844444NewChrom=mutate('mutbga',Chrom,FieldDR);%将Chrom变异为NewChrom运行后得200231215443013366522132NewChrom=320231333373331120302223算法说明:

mutate检测输入参数的一致性和调用低级变异函数,如果mutate被调用于多子群,则每个子群分别调用低级变异函数。

参见:

mutbga,mut,recombin,select5.2.8函数mutbga功能:

实值种群的变异(遗传算法育种器的变异算子)。

格式:

①NewChrom=mutbga(OldChrom,FieldDR)②NewChrom=mutbga(OldChrom,FieldDR,MutOpt)详细说明:

mutbga对实值种群OldChrom,使用给定的概率,变异每一个变量,返回变异后的种群NewChrom。

FieldDR是一矩阵,包含每个变量的边界。

(参

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2