我想实现遗传算法。我正在尝试实施单阶交叉。我无法这样做。请帮忙!matlab交叉遗传算法
想这是我的人口
new_pop =
0000011001
0000011001
0000000100
0000011001
0000011001
0000010001
我想随机选择从该组2个父母做单阶分频器。我上面给出的集合是有序的,也就是说,钳工个体被放置在上面。我该如何做单阶交叉?
任何帮助将不胜感激!
我想实现遗传算法。我正在尝试实施单阶交叉。我无法这样做。请帮忙!matlab交叉遗传算法
想这是我的人口
new_pop =
0000011001
0000011001
0000000100
0000011001
0000011001
0000010001
我想随机选择从该组2个父母做单阶分频器。我上面给出的集合是有序的,也就是说,钳工个体被放置在上面。我该如何做单阶交叉?
任何帮助将不胜感激!
这里的东西,让你开始:
%Randomly choose 2 individuals
n = size(new_pop, 1);
l = size(new_pop, 2);
breeders = new_pop(randperm(n,2),:);
%Choose a crossover point
cp = randperm(l, 1);
%Crossover
b1 = [breeders(1, 1:cp), breeders(2, cp+1:end)];
b2 = [breeders(2, 1:cp), breeders(1, cp+1:end)];
,如果它是不明确的,我会编辑的问题! – roni
相关问题:[单点有序交叉在matlab](http://stackoverflow.com/questions/16302382/single-point-ordered-crossover-in-matlab) –