您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 遗传算法工具箱函数集合
GAToolFunctionofSheffieldUniversity一、种群初始化函数crtbp、crtrp、crtbase1.函数crtbp:创建二进制种群[Chrom,Lind,BaseV]=crtbp(Nind,Lind*维度);多维函数需要乘以维度[Chrom,Lind,BaseV]=crtbp(Nind,BaseV)BaseV=crtbase([Nind,Lind],[a,b])Nind种群中个体的数量,Lind指定个体或者染色体的长度;2.函数crtrp:创建实值原始种群Chrom=crtrp(Nind,FieldDR);FieldDR为2*Nvar的矩阵,第一行表示取值的下界,第二行表示取值的上界;其中Nvar向量的长度即为染色体的长度。3.实用函数bs2rv:二进制串到实值的转换Phen=bs2rv(Chrom,FieldD)FieldD=[len,lb,ub,code,scale,lbin,ubin]FieldD=[rep(len(Chrom),[1,维度]);rep([lb;ub],[1,维度]);rep([code;scale;lbin;ubin],[1,维度])];多维情形len表示染色体的长度;lb,ub分别为变量取值的上下界;code(i)=1为标准的二进制编码,code(i)=0为格雷编码;scale(i)=0为算术刻度,scale(i)=1为对数刻度;lbin,ubin表示取值是否含有边界,取零去掉边界,取1含有边界;二、适应度计算函数ranking、scaling1.基于排序的适应度分配FitV=ranking(ObjV,RFun,SUBPOP)Rfun(1)线性排序标量在[12]间,default=2;非线性排序在[1,length(ObjV)-2],这一值是指定选择的压差;Rfun(2)指定排序方法,0为线性排序(默认),1为非线性排序SUBPOP指明ObjV中子种群的数量,默认为12.线性适应度计算scaling线性比率不适合目标函数返回负的适应度值的情形FitnV=scaling(ObjV,Smul)三、选择高级函数select:SelCh=select(SEL_F,Chrom,FitnV)SelCh=select(SEL_F,Chrom,FitnV,GGAP)SelCh=select(SEL_F,Chrom,FitnV,GGAP,SUBPOP)SEL_F是一字符串,为一低级选择函数名,如rws或susGGAP指出了代沟,默认为1;也可大于1,允许子代数多于父代的数量1.rws:轮盘赌选择NewChrIx=rws(FitnV,Nsel)使用轮盘赌选择从一个种群中选择Nsel个个体NewChrIx是为育种选择的个体的索引值2.sus:随机遍历抽样NewChrIx=sus(FitnV,Nsel)3.重插入函数reins:(重插入子群到种群)有代沟必须使用重插入函数。Chorm=reins(Chorm,SelCh)Chorm=reins(Chorm,SelCh,SUBPOP)Chorm=reins(Chorm,SelCh,SUBPOP,InsOpt,ObjVch)[Chorm,ObjVch]=reins(Chorm,SelCh,SUBPOP,InsOpt,ObjVch,ObjVSel)InsOpt(1)指明用子代代替父代的选择方法,0为均匀选择,1为基于适应度的选择,默认为0InsOpt(2)指明在[01]间每个子种群中重插入的子代个体在整个子种群中的个体的比率,默认为1ObjVch包含Chrom中个体的目标值,对基于适应度的重插入是必需的ObjVSel包含Selch中个体的目标值,如子代数量大于重插入种群的子代数量是必需的。四、交叉函数重组准则:奇数行与它的下一个偶数行配对,如果矩阵OldChrom的行数是奇数,最后一个奇数行不交配并添加到NewChrom的最后一行。1.recombin:重组个体高级函数NewChrom=recombin(REC_F,Chrom)NewChrom=recombin(REC_F,Chrom,RecOpt)NewChrom=recombin(REC_F,Chrom,RecOpt,SUBPOP)REC_F是包含低级重组函数名的字符串,例如recdis,recint,reclin,xovdp,xovdprs,xovmp,xovsh,xovshrs,xovsp,xovsprsRecOpt是指明交叉概率的任选参数;2.recdis:离散重组NewChrom=recdis(OldChorm)3.recint:中间重组;只能应用于实值种群NewChrom=recint(OldChorm)4.reclin:线性重组;只能应用于实值种群NewChrom=reclin(OldChorm)5.recmut:具有突变特征的线性重组;只能应用于实值种群NewChrom=recmut(OldChorm,FieidDR,MutOpt)其中MutOpt是一个二值向量,第一个参数为重组概率,第二个参数为重组压缩值,默认值为[1,1]6.Xovsp:单点交叉NewChrom=xovsp(OldChrom,XOVR)7.Xovsprs:减少代理的单点交叉NewChrom=xovsprs(OldChrom,XOVR)8.xovdp:两点交叉NewChrom=xovdp(OldChrom,XOVR)XOVR为交叉概率,默认为0.79.Xovdprs:减少代理的两点交叉NewChrom=xovdprs(OldChrom,XOVR)10.Xovsh:洗牌交叉NewChrom=xovsh(OldChrom,XOVR)11.Xovshrs:减少代理的洗牌交叉NewChrom=xovshrs(OldChrom,XOVR)12.Xovmp:多点交叉NewChrom=xovmp(OldChrom,XOVR,Npt,Rs)Npt指明交叉点数,0洗牌交叉;1单点交叉;2两点交叉;默认为0Rs指明使用减少代理,0不减少代理;1减少代理;默认为0五、变异函数mutate、mut、mutbga1.mutate:NewChorm=mutate(MUT_F,OldChorm,FieldDR,MutOpt,SUBPOP)MUT_F为包含低级变异函数的字符串,例如mut,mutbgaMutOpt同mutbga中的选项,是一个二值向量;SUBPOP默认为1,决定OldChrom中子种群的数量2.mut:离散变异算子NewChrom=mut(OldChorm,Pm)NewChrom=mut(OldChorm,Pm,BaseV)Pm为变异概率,默认为Pm=0.7/Lind3.mutbga:实值种群的变异NewChrom=mutbga(OldChorm,FieidDR,MutOpt)MutOpt(1)是变异概率,默认为1/Nvar;MutOpt(2)是在[01]间的压缩重组范围的标量,默认为1(不压缩)六、其它函数:1.矩阵复试函数rep:rep是一个低级复制函数,通常不直接使用,他可以被GA工具箱中许多的函数调用。MatOut=rep(MatIn,REPN)其中REPN是一个二值向量,REPN(1)指明纵向复制的次数,REPN(2)指明水平复制的次数2.在子种群间迁移个体:migrateChrom=migrate(Chrom,SUBPOP)Chrom=migrate(Chrom,SUBPOP,MigOpt)Chrom=migrate(Chrom,SUBPOP,MIgOpt,ObjV)[Chrom,ObjV]=migrate(Chrom,SUBPOP,MigOpt,ObjV)其中MigOpt是具有三个参数的可选向量:MigOpt(1)=0.2(默认),迁移概率;MIgOpt(2)指定迁移选择方式:0为均匀迁移(默认方式),1为基于适应度的迁移;MigOpt(3)指定迁移种群结构的标量,0为完全网状结构(默认),1为临近结构,2为环状结构。ObjV是包含所有个体对应的目标函数值的列向量,对基于适应度的迁移即MigOpt(2)=1,ObjV为必选项。
本文标题:遗传算法工具箱函数集合
链接地址:https://www.777doc.com/doc-2009857 .html