gusucode.com > 《模式识别与智能计算》matlab源代码 > 《模式识别与智能计算》matlab源代码/《模式识别与智能计算》部分函数的源程序/书程序/第9章/normgeomselect.m
function newpop=normgeomselect(oldpop) q=0.8; 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