www.pudn.com > powerflow-genetical.gorithm.rar > mutation.m, change:2008-12-13,size:623b


function popnew=mutation(pop,pmut,num,length) 
%变异函数 
% 变异(mutation),基因的突变普遍存在于生物的进化过程中。变异是指父代中的每个个体的每一位都以概率 pm 翻转,即由“1”变为“0”, 
% 或由“0”变为“1”。遗传算法的变异特性可以使求解过程随机地搜索到解可能存在的整个空间,因此可以在一定程度上求得全局最优解。 
%遗传算法子程序 
%Name: mutation.m 
%pmut为变异概率 
%pop=randint(16) 
%n=16; 
%pmut=0.05; 
%length=16; 
 
k=1; 
while k<=num 
    rk=rand(1); 
    if rk<pmut 
        pos=fix(rand(1)*1*length)+1;   %随机产生变异点 
        pop(k,pos)=~pop(k,pos);        %对变异点进行变异 
    end 
    k=k+1; 
end 
popnew=pop;