遗传算法工具箱使用2.谢菲尔德大学工具箱函数

种群表示和初始化

函数 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为复制次数

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章