【智慧優化演算法應用】01遺傳演算法應用
阿新 • • 發佈:2021-06-21
作者:康慎吾
地點:北華航天工業學院
- 遺傳演算法流程
- 遺傳學與遺傳算法術語對應關係
- 遺傳操作
選擇運算元:select
交叉運算元:recombin
變異運算元:mut - 交叉運算元:
(1)單切點交叉
(2)雙切點交叉
- 建立一個種群大小為5,個體長度為8,各位的二進位制數分別為{2,3,4,5,6,7,8,9}
>> [Chrom, Lind, BaseV]=crtbp(5,8,[2 3 4 5 6 7 8 9]) Chrom = 1 0 0 0 3 5 5 7 1 0 3 2 0 5 0 6 0 1 3 4 5 2 2 2 1 2 1 3 5 4 0 8 1 2 3 4 4 1 0 0 Lind = 8 BaseV = 2 3 4 5 6 7 8 9
- 使用線性排序和壓差為2估算適應度
>> ObjV=[1;2;3;4;5;10;9;8;7;6];
>> FitnV=ranking(ObjV);
%or>> FitnV=ranking(ObjV,[2, 0])
%or>> FitnV=ranking(ObjV, [2, 0], 1)
FitnV =
2.0000
1.7778
1.5556
1.3333
1.1111
0
0.2222
0.4444
0.6667
0.8889
注意:ranking是求解最小值的,即目標值越小,適應度越大。
- 實用函式——rep
功能:矩陣複製。
呼叫格式 MatOut=rep(MatIn,REPN)
函式rep完成矩陣MatIn的複製,REPN指明覆制次數,返回複製後的矩陣MatOut。
REPN包含每個方向的複製次數,REPN(1)表示縱向複製次數,REPN(2)表示水平方向複製次數。
%使用函式rep複製矩陣MatIn >> MatIn=[1 2 3 4;5 6 7 8] MatIn = 1 2 3 4 5 6 7 8 >> MatOut=rep(MatIn,[1,2]) MatOut = 1 2 3 4 1 2 3 4 5 6 7 8 5 6 7 8 >> MatOut=rep(MatIn,[2,1]) MatOut = 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8
下一節:【智慧優化演算法應用】02免疫優化演算法應用...