crossover1.m
来自「采用遗传算法对于加工问题的排序,使其最快.」· M 代码 · 共 25 行
M
25 行
function [crossover_a,crossover_b]=crossover1(pc,copy_a,copy_b,job_total,pop_size)
crossover_a=copy_a;
crossover_b=copy_b;
for i=1:2:pop_size
if rand<=pc
find1=ceil(rand*job_total*(ceil(log2(job_total))+1));
find2=ceil(rand*job_total*(ceil(log2(job_total))+1));
if find1==find2
add=ceil(rand*job_total*(ceil(log2(job_total))+1));
find2=find2+add;
if (find2>job_total*(ceil(log2(job_total))+1))
find2=job_total*(ceil(log2(job_total))+1);
end
end
if find1>find2
swap=find1;
find1=find2;
find2=swap;
end
crossover_a(i,find1:find2)=copy_a(i+1,find1:find2);
crossover_b(i,find1:find2)=copy_b(i+1,find1:find2);
crossover_a(i+1,find1:find2)=copy_a(i,find1:find2);
crossover_b(i+1,find1:find2)=copy_b(i,find1:find2);
end
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?