《MATLAB遗传算法工具箱及应用》课件第5章_第1页
《MATLAB遗传算法工具箱及应用》课件第5章_第2页
《MATLAB遗传算法工具箱及应用》课件第5章_第3页
《MATLAB遗传算法工具箱及应用》课件第5章_第4页
《MATLAB遗传算法工具箱及应用》课件第5章_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

5.1工具箱结构

本节将给出GA工具箱的主要程序。表5.1所示为遗传算法工具箱中的函数分类表。表5.1遗传算法工具箱中的函数分类表函数功能创建种群crtbase创建基向量crtbp创建任意离散随机种群crtrp创建实值初始种群适应度计算ranking常用的基于秩的适应度计算scaling比率适应度计算选择函数reins一致随机和基于适应度的重插入rws轮盘选择select高级选择例程sus随机遍历采样变异算子mut离散变异mutate高级变异函数mutbga实值变异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变异算子

变异算子函数有mut,mutate,mutbga。

二进制和整数变异操作由mut完成。实值的变异使用育种机函数mutbga是有效的。mutate对变异操作提供一个高级接口。5.1.5交叉算子

交叉算子函数有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.6多子群支持

多子群支持函数:migrate。

遗传算法工具箱通过高层遗传操作函数migrate对多子群提供支持,其功能是在子群中交换个体。一个单一种群通过使用工具箱中的函数修改数据结构,使其分为许多子种群,这些子种群被保存在连续的数据单元块中。高层函数(如select和reins)可独立地操作子种群,包含在一个数据结构中的每一子种群允许独自向前衍化。基于孤岛或回迁模式,migrate允许个体在子种群中迁移。

5.2遗传算法中的通用函数

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,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论