MATLAB遗传算法工具箱的函数简介

本文简单介绍谢菲尔德大学开发的遗传算法工具箱的用法。
工具箱名字gatbx,即GA Toolbox。用help gatbx即可看到其所有函数。函数的功能分几大类:创建种群、适应度计算、选择、变异、交叉。

创建种群

crtbase 创建基向量

MATLAB遗传算法工具箱的函数简介_第1张图片
由图可知,产生了3个5,和4个6,5和6表示的是个体向量的范围。

crtbp 创建初始种群

MATLAB遗传算法工具箱的函数简介_第2张图片
MATLAB遗传算法工具箱的函数简介_第3张图片
Create an initial population 第一个参数表示生成的种群大小,3排5列,3表示有3个个体,5表示每个个体有5位。第二个参数表示这5位分别的范围,即基向量BaseV,比如6表示0~5, 3表示0~2,该参数可由crtbase生成。
返回值Lind表示每个个体的位数。

crtrp 创建实值种群

MATLAB遗传算法工具箱的函数简介_第4张图片
CReaTe an initial (Real-value) Population FieldDR表示范围,第一排表示最大值,第二排表示最小值。4表示产生的种群的个体数量。

适应度计算

ranking

MATLAB遗传算法工具箱的函数简介_第5张图片
基于排序的适应度分配。可以观察出,ObjV中最大的数在FitnV中最小,即反序排列。

scaling

线性适应度计算。
MATLAB遗传算法工具箱的函数简介_第6张图片

选择

select

SelCh = select(SEL_F,Chrom,FitnV)

SEL_F是字符串,表示选择的方法,有轮盘法rws,随机遍历抽样法sus。Chrom是多个个体组成的种群,FitnV是适应度
MATLAB遗传算法工具箱的函数简介_第7张图片
MATLAB遗传算法工具箱的函数简介_第8张图片
适应度值越大,被选中概率越大。select函数还可以加个参数表示输出个体的个数,比如1.5表示输出种群中个体的个数为原来个数的1.5倍。
MATLAB遗传算法工具箱的函数简介_第9张图片

reins

重插入子代到种群,插入位置是随机的,SelCh意为selected chrom被选中的个体,即子代

Chrom = reins(Chrom,SelCh)

MATLAB遗传算法工具箱的函数简介_第10张图片
MATLAB遗传算法工具箱的函数简介_第11张图片

变异

mutate

NewChrom = mutate (MUT_F,OldChrom,FieldDR,MutOpt) 

MUT_F是字符串,表示变异算法,可选项mutbga或mut。mut是离散变异,mutbga是实值变异。FieldDR表示变异范围,MutOpt是变异概率。
MATLAB遗传算法工具箱的函数简介_第12张图片

交叉

交叉算子函数有:recdis,recint,reclin,recmut,recombin,xovdp,xovdprs,xovmp,xovsh,xovshrs,xovsp,xovsprs。
交叉是通过给定的概率重组一对个体产生后代。单点交叉、两点交叉和洗牌交叉是由xovsp、xovdp、xovsh函数分别完成的。缩小代理交叉函数分别是:xovdprs、xovshrs和xovsprs。通用的多点交叉函数是xovmp,它提供均匀交换的支持。为支持染色体实值表示,离散的、中间的和线性重组分别由函数recdis、recint、reclin完成。函数recmut提供具有突变特征的线性重组。

函数recombin是一高级入口函数,对所有交叉操作提供多子群支持入口。

recombin

NewChrom = recombin(REC_F,Chrom,RecOpt)

REC_F是字符串,表示交叉算法,RecOpt表示交叉概率。
MATLAB遗传算法工具箱的函数简介_第13张图片
变异发生在奇数行和偶数行之间,recdis是离散重组,一位一位地变异。此外还有中间重组,线性重组等。
MATLAB遗传算法工具箱的函数简介_第14张图片
以上是单点交叉,也就是奇偶两行逐点交换元素,有的交换,有的不交换,按概率。

“遗传算法工具箱文档翻译”

你可能感兴趣的:(MATLAB,遗传算法)