?? selection.m
字號:
% 2.4 選擇復制
% 選擇或復制操作是決定哪些個體可以進入下一代。程序中采用賭輪盤選擇法選擇,這種方法較易實現(xiàn)。
% 根據(jù)方程 pi=fi/∑fi=fi/fsum ,選擇步驟:
% 1)在第 t 代,由(1)式計算 fsum 和 pi
% 2)產(chǎn)生 {0,1} 的隨機數(shù) rand( .),求 s=rand( .)*fsum
% 3)求 ∑fi≥s 中最小的 k ,則第 k 個個體被選中
% 4)進行 N 次2)、3)操作,得到 N 個個體,成為第 t=t+1 代種群
%遺傳算法子程序
%Name: 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)); %從小到大排列,將"rand(px,1)"產(chǎn)生的一列隨機數(shù)變成輪盤賭形式的表示方法,由小到大排列
fitin=1; %fivalue是一向量,fitin代表向量中元素位,即fitvalue(fitin)代表第fitin個個體的單個個體被選擇的概率
newin=1; %同理
while newin<=px;
if(ms(newin))<fitvalue(fitin) %ms(newin)表示的是ms列向量中第"newin"位數(shù)值,同理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 + -