种群表示和初始化函数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)线性排序标量在[12]间为,非线性排序在[1length(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或susGGAP指出了代沟,默认为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,xovsprsrecdis:离散重组NewChrom=recdis(OldChorm)recint:中间重组NewChrom=recint(OldChorm)reclin:线性重组NewChrom=reclin(OldChorm)xovdp:两点交叉NewChrom=xovdp(OldChrom,XOVR)XOVR为交叉概率,默认为0.7Xovdprs:减少代理的两点交叉NewChrom=xovdprs(OldChrom,XOVR)Xovmp:多点交叉NewChrom=xovmp(OldChrom,XOVR,Npt,Rs)Npt指明交叉点数,0洗牌交叉;1单点交叉;2两点交叉;默认为0Rs指明使用减少代理,0不减少代理;1减少代理;默认为0Xovsh:洗牌交叉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,recmutmut:离散变异算子NewChrom=mut(OldChorm,Pm)NewChrom=mut(OldChorm,Pm,BaseV)Pm为变异概率,默认为Pm=0.7/Lindmutbga:实值种群的变异(遗传算法育种器的变异算子)NewChrom=mutbga(OldChorm,FieldDR)NewChrom=mubga(OldChorm,FieidDR,MutOpt)MutOpt(1)是在[01]间的重组概率的标量,默认为1MutOpt(2)是在[01]间的压缩重组范围的标量,默认为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为基于适应度的选择,默认为0InsOpt(2)指明在[01]间每个子种群中重插入的子代个体在整个子种群的中个体的比率,默认为1ObjVch包含Chorm中个体的目标值,对基于适应度的重插入是必需的ObjVSel包含Selch中个体的目标值,如子代数量大于重插入种群的子代数量是必需的其他函数矩阵复试函数rep:MatOut=rep(MatIn,REPN)REPN为复制次数