gusucode.com > 遗传算法求解最优解最大值项matlab源码程序目 > mutation.m
%Name: mutation.m %变异 function [newpop]=mutation(pop,pm) [px,py]=size(pop); newpop=ones(size(pop)); for i=1:px if(rand<pm) %rand为随机产生一个单元{0,1},变异概率pm为0.001 mpoint=round(rand*py); if mpoint<=0 %子循环,使mpoint≧1 mpoint=1; end newpop(i)=pop(i); if any(newpop(i,mpoint))==0 %子循环,将i行mpoint列元素变异 newpop(i,mpoint)=1; else newpop(i,mpoint)=0; end else newpop(i)=pop(i); %变异概率之外,不变异 end end