📄 crossover1.m
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -