?? selection.m
字號:
%選擇復制
%選擇或復制操作決定哪些個體可以進入下一代.程序中采用賭輪盤選擇法選擇
function [newpop]=selection(pop,fitvalue)
totalfit=sum(fitvalue); %求適應度之和
fitvalue=fitvalue/totalfit;%單個個體被選擇的概率
fitvalue=cumsum(fitvalue); %如fitvalue=[1 2 3 4],則cumsum(fitvalue)=[1 3 6 10]
[px,py]=size(pop);
ms=sort(rand(px,1)); %從小到大排列,將產生的一系列隨機數變成輪盤形式的表示方法,由小到大排列
fitin=1;
newin=1;
while newin<=px
if(ms(newin))<fitvalue(fitin) %ms(newin)表示的是ms列向量中第"newin"位數值
fitvalue(fitin)
newpop(newin,:)=pop(fitin,:); %賦值,即將舊種群中的第fitin個個體保留到下一代(newpop)
newin=newin+1;
else
fitin=fitin+1;
end
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -