【数学建模】—遗传算法工具箱函数说明

转载自:sinat_25357975

种群表示和初始化

函数 bs2rv: 二进制串到实值的转换

​ Phen=bs2rv(Chrom,FieldD)

​ FieldD=[len, lb, ub, code, scale, lbin, ubin]

​ code(i)=1为标准的二进制编码,code(i)=0为格雷编码

​ scale(i)=0为算术刻度,scale(i)=1为对数刻度

函数 crtbp: 创建初始种群

​ [Chrom,Lind,BaseV]=crtbp(Nind,Lind)

​ [Chrom,Lind,BaseV]=crtbp(Nind,BaseV)

​ [Chrom,Lind,BaseV]=crtbp(Nind,Lind,BaseV)

​ Nind指定种群中个体的数量,Lind指定个体的长度

函数 crtrp: 创建实值原始种群

​ Chrom=crtrp(Nind,FieldDR)

适应度计算

函数 ranking: 基于排序的适应度分配(此函数是从最小化方向对个体进行排序的)

​ FitV=ranking(ObjV)

​ FitV=ranking(ObjV, RFun)

​ FitV=ranking(ObjV, RFun, SUBPOP)

​ Rfun(1)线性排序标量在[1 2]间为,非线性排序在[1 length(ObjV)-2]

​ Rfun(2)指定排序方法,0为线性排序,1为非线性排序

​ SUBPOP指明ObjV中子种群的数量,默认为1

选择

高级函数 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或sus

​ GGAP指出了代沟,默认为1;也可大于1,允许子代数多于父代的数量

rws: 轮盘赌选择

NewChrIx=rws(FitnV, Nsel) 使用轮盘赌选择从一个种群中选择Nsel个个体

NewChrIx 是为育种选择的个体的索引值

sus: 随机遍历抽样

NewChrIx=sus(FitnV, Nsel)

交叉

高级函数 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, xovsprs

recdis: 离散重组

​ NewChrom=recdis(OldChorm)

recint: 中间重组

​ NewChrom=recint(OldChorm)

reclin: 线性重组

​ NewChrom=reclin(OldChorm)

xovdp: 两点交叉

​ NewChrom=xovdp(OldChrom, XOVR)

​ XOVR为交叉概率, 默认为0.7

Xovdprs: 减少代理的两点交叉

​ NewChrom=xovdprs(OldChrom, XOVR)

Xovmp: 多点交叉

​ NewChrom=xovmp(OldChrom, XOVR, Npt, Rs)

​ Npt指明交叉点数, 0 洗牌交叉;1 单点交叉;2 两点交叉; 默认为0

​ Rs指明使用减少代理, 0 不减少代理;1 减少代理; 默认为0

Xovsh: 洗牌交叉

​ NewChrom=xovsh(OldChrom, XOVR)

Xovshrs: 减少代理的洗牌交叉

​ NewChrom=xovshrs(OldChrom, XOVR)

Xovsp: 单点交叉

​ NewChrom=xovsp(OldChrom, XOVR)

Xovsprs: 减少代理的单点交叉

​ NewChrom=xovsprs(OldChrom, XOVR)

变异

高级函数 mutate: 个体的变异

​ NewChorm=mutate(MUT_F, OldChorm, FieldDR)

NewChorm=mutate(MUT_F, OldChorm, FieldDR, MutOpt)

NewChorm=mutate(MUT_F, OldChorm, FieldDR, MutOpt, SUBPOP)

MUT_F为包含低级变异函数的字符串,例如mut, mutbga, recmut

mut: 离散变异算子

NewChrom=mut(OldChorm, Pm)

NewChrom=mut(OldChorm, Pm, BaseV)

Pm为变异概率,默认为Pm=0.7/Lind

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

NewChrom=mutbga(OldChorm, FieldDR)

​ NewChrom=mubga(OldChorm, FieidDR, MutOpt)

​ MutOpt(1)是在[ 0 1]间的重组概率的标量,默认为1

​ MutOpt(2)是在[0 1]间的压缩重组范围的标量,默认为1(不压缩)

recmut: 具有突变特征的线性重组

​ NewChrom=recmut(OldChorm, FieldDR)

​ NewChrom=recmut(OldChorm, FieidDR, MutOpt)

重插入

函数 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为基于适应度的选择,默认为0

​ InsOpt(2)指明在[0 1]间每个子种群中重插入的子代个体在整个子种群的中个体的比率,默认为1

​ ObjVch包含Chorm中个体的目标值,对基于适应度的重插入是必需的

​ ObjVSel包含Selch中个体的目标值,如子代数量大于重插入种群的子代数量是必需的

其他函数

矩阵复试函数 rep: MatOut=rep(MatIn, REPN) REPN为复制次数

————————————————————————————————————————————————————————————————————————————————————————
其他大佬说明:
http://blog.sina.com.cn/s/blog_5fec877e0100wbxv.html
————————————————————————————————————————————————————————————————————————————————————————

posted @ 2021-01-29 02:57  派狼  阅读(382)  评论(0编辑  收藏  举报