谢菲尔德遗传算法工具箱函数简介
一 謝菲爾德遺傳算法工具箱的主要函數如下表所示:
二 函數介紹—創建種群
1. crtbase
1.1 功能
創建一個所有染色體中最基本的染色體**對應的向量*語法:
1.2 語法
BaseVec = crtbase(Lind,Base)
1.3 輸入參數
1 Lind:染色體長度2 Base:最基礎,最基本的基因。1.4 用例
BaseBec:返回基礎基因組2. crtbp:
2.1 功能
創建任意離散隨機種群。即多個染色體組成的種群。
2.2 語法
[Chrom,Lind,BaseV] =crtbp(Nind,Lind)
[Chrom,Lind,BaseV]=crtbp(Nind,Base)
[Chrom,Lind,BaseV]=crtbp(Nind,Lind,Base)
2.3 用例
1.樣式1:Chrom為一個Nind*Lind的染色體種群;Lind為種群中基因長度;BaseV為基因各位上的進制,并組成的Lind長的向量,默認基因進制為2.
2. 樣式2:在樣式1的基礎上,指定種群基因的進制:Base;Base的長度即Lind。
3. crtrp
3.1 功能
創建一個指定數量的,各個位指定范圍的的種群。
3.2 語法
Chrom = crtrp(Nind,FieldDR)
Nind:種群數量;FieldDR:例如:
FieldDR = [-100 -50 -30 -20; % lower bound
100 50 30 20] % upper bound
種群中基因的位數=FieldDR的位數。
3.3 用例
三 函數介紹-適應度計算
1. ranking
1.1 功能
用戶排序的適應度分配。
1.2 語法
FitnV=ranking(ObjV):
FitnV=ranking(ObjV,RFun):
FitnV=ranking(ObjV,RFun,SUBPOP):
1.Objv:按照個體的目標值ObjV(列向量)有小到大進行排序。
2.RFun:(1)如果RFun是在[1,2]之間的標量,則采用線性排列,這個標量指定選擇的壓差。
(2)如果RFun是一個具有兩個參數的向量,則RFun(2)指定排序方法:0為線性排序,1為非線性排序;RFun(1)對線性排序,標量指定的選擇壓差RFun(1)必須在[1,2]之間,對非線性排序,RFun必須在[1,length(ObjV)-2]區間,如果為NAN,則RFun(1)假設為2.
(3)若RFun是長度為length(ObjV)的向量,則它包含對每一行的適應度值計算。
3.SUBPOP:ObjV中子種群的數量,缺省或為NAN時,SUBPOP=1,ObjV的所有子種群大小必須相同。
4.FitnV:返回值為個體適應度值的列向量。
1.3 用例
1.使用線性排序和壓差為2估算適應度。
2. 使用非線性排序,壓差為2,在ObjV中有兩個子種群估算適應度。
2. scaling
稍后補充。
四 函數介紹-選擇函數
1. select
1.1 功能
從種群中選擇個體(高級函數)
1.2 語法
SelCh=select(SKL_F,Chrom,FitnV);
SelCh=select(SKL_F,Chrom,FitnV,GGAP);
SelCh=select(SKL_F,Chrom,FitnV,GGAP,SUBPOP);
1.3 用例
假設Chrom由兩個子種群組成,通過輪盤賭選擇函數sus對每個子種群選擇150%的個體。
2.reins
2.1 功能
重插入子代到種群。插入子代到當前種群,用子代代替父代并返回結果總群。
2.2 語法
Chrom=reins(Chrom,SelCh);
Chrom=reins(Chrom,SelCh,SUBPOP);
Chrom=reins(Chrom,SelCh,SUBPOP,InsOpt,ObjVCh);
[Chrom,ObjVCh]=reins(Chrom,SelCh,SUBPOP,InsOpt,ObjVCh,ObjVSel);
1.Chrom:父代種群。
2. SelCh:子代
3. SUBPOP:可選參數:表明子代或父代種群有多少個體,缺省或為NAN時,SUBPOP=1;
4. InsOpt:最多有兩個參數的任選向量。InsOpt(1)是一個標量,表明子代代替父代的方法,0為均勻選擇(子代代替父代使用均勻隨機選自),1為適應度選擇,子代代替父代中適應度最小的個體。缺省或為NAN,則假設InsOpt(1)=0;InsOpt(2)是一個在[0,1]區間的標量,表示每個子種群中重插入的子代個體在整個子種群中個體的比率,缺省或為NAN,則假設InsOpt(2)=1.0。
5. ObjVCh是一個可選列向量,包括Chrom中個體的目標量,對基于適應度的重插入,ObjVCh是必須的。
6. ObjVSel是一個可選參數,包含SelCh中個體的目標值。如果子代的數量大于重插入種群中子代的數量,則ObjVSel是必須的,這種情況子代將按它們的適應度大小選擇插入。
2.3 用例
在5個個體的父代種群中插入子代種群。
3. rws
日后如果用到,再行補充。
五 函數介紹-交叉算子函數
1. recombin
1.1 功能
重組個體(高級函數)。
recombin完成種群個體的重組,在新種群NewChrom中返回重組后的個體,Chrom和NewChrom中的一行對應一個個體。
1.2 語法
NewChrom=recombin(REC_F,Chrom);
NewChrom=recombin(REC_F,Chrom,RecOpt);
NewChrom=recombin(REC_F,Chrom,RecOpt,SUBPOP);
1.3 用例
使用recombin對5個個體的種群進行重組。
2. 其他函數
其他函數,如果后續使用到,再行補充。
六 函數介紹–變異算子
1.mut
1.1 功能
離散變異算子。
1.2 語法
NewChrom=mut(OldChrom,Pm,BaseV);
OldChrom:當前種群;Pm:變異概率,缺省時為0.7/Lind;BaseV:染色體個體元素的變異基本字符(缺省時種群為二進制編碼)。
1.3 用例
使用函數mut將當前種群變異為新種群。
2. 其他函數
日后如果用到,再行補充。
七 函數介紹-實用函數
1. bs2rv
1.1 功能
根據譯碼矩陣FieldD將二進制串矩陣Chrom轉換為實數向量,返回十進制的矩陣。
1.2 語法
Phen=bs2rv(Chrom,FieldD)
FieldD=[len lb ub code scale lbin ubin]
1.3 用例
先創建[-1,10]區間的一組簡單變量,然后使用bs2rv將二進制串表示成實值表現型。
2. rep
2.1 功能
矩陣復制。
2.2 語法
MatOut=rep(MatIn,REPN)
2.3 用例
本案例主要參考圖書:MATLAB智能算法30個案例分析
總結
以上是生活随笔為你收集整理的谢菲尔德遗传算法工具箱函数简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [css] 移动端的布局用过媒体查询吗
- 下一篇: Android textwatcher监