资源描述:
《遗传算法函数.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、种群表示和初始化函数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
2、]=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=rankin
3、g(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=selec
4、t(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=reco
5、mbin(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
6、: 中间重组 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指明交叉点数
7、,0洗牌交叉;1单点交叉;2两点交叉; 默认为0 Rs指明使用减少代理,0不减少代理;1减少代理; 默认为0Xovsh: 洗牌交叉 NewChrom=xovsh(OldChrom,XOVR)Xovshrs: 减少代理的洗牌交叉 NewChrom=xovshrs(OldChrom,XOVR)Xovsp: 单点交叉 NewChrom=xovs