?? example5_4.m
字號:
function[newPop] = Select(oldPop,options)
q=options(2); % 選擇最優的概率
e = size(oldPop,2);
n = size(oldPop,1); % 種群中個體的數目
newPop = zeros(n,e); % 初始化
fit = zeros(n,1); % 初始化
x=zeros(n,2);
x(:,1) =[n:-1:1]';
[y x(:,2)] = sort(oldPop(:,e));
r = q/(1-(1-q)^n); % 標準分布
fit(x(:,2))=r*(1-q).^(x(:,1)-1); % 生成選擇概率
fit = cumsum(fit); % 計算選擇概率之和
rNums=sort(rand(n,1));
fitIn=1; newIn=1;
while newIn<=n % 得到新的個體
if(rNums(newIn)<fit(fitIn))
newPop(newIn,:) = oldPop(fitIn,:); % 選擇合適的個體
newIn = newIn+1;
else
fitIn = fitIn + 1;
end
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -