mutation.m

来自「matlab求解TSP问题源代码」· M 代码 · 共 18 行

M
18
字号
function newpop=mutation(pop,pmut,popsize,citysize)
k=1;
temp=0;
while k<=popsize 
    rk=rand(); 
    if rk<pmut
        pos1=1;
        pos2=1;
        while pos1==pos2
        pos1=fix(rand()*citysize-1)+1;   %随机产生第一个变异点 
        pos2=fix(rand()*citysize-1)+1;   %随机产生第二个变异点 
        end         
    temp=pop(k,pos1:pos2);
    pop(k,pos1:pos2)=fliplr(temp);  
    end 
    k=k+1; 
end 
newpop=pop; 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?