tspmutat.m

来自「其中提到遺傳學的程式碼與應用提供給次淚相向的研究者參考下載」· M 代码 · 共 29 行

M
29
字号
% tspmutat.m
% Matlab function to mutate the k parents to generate k offsprings
%

function Poffspring = tspmutat(P)
[N k] = size(P);

for i = 1:k
    % Get the start_pt and sect_length
    start_pt    = ceil(rand*N);
    sect_length = ceil(rand*(N/2-1));
    
    % Generate the start_pt and end_pt
    if(start_pt + sect_length > N)
        end_pt   = start_pt;
        start_pt = start_pt - sect_length + 1;
    elseif(start_pt - sect_length < 1)
        end_pt = start_pt + sect_length - 1;
    else
        if(rand > 0.5)
            end_pt   = start_pt + (sect_length - 1);
        else
            end_pt   = start_pt;
            start_pt = start_pt - (sect_length - 1);
        end
    end
    
    Poffspring(:,i) = P([1:(start_pt-1) (end_pt:-1:start_pt) (end_pt+1:N)],i);
end

⌨️ 快捷键说明

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