函數 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爲複製次數