遺傳算法工具箱使用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爲複製次數

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