0
私は2つの親の行があるとしましょう。Matlabの遺伝的アルゴリズムクロスオーバーのコード
親1:3-1-2-5-4
親2:クロスオーバー後の今、1-4-5-2-3
、私は子行次のようにしたい:
子供1:ゾール-4- | 2-5 | -3
子供2:3-1- | 5-2 | -4
クロスオーバーがで示される単一の位置 "|"。上記の子シーケンスを私に与えるコードがあれば親切。
私は2つの親の行があるとしましょう。Matlabの遺伝的アルゴリズムクロスオーバーのコード
親1:3-1-2-5-4
親2:クロスオーバー後の今、1-4-5-2-3
、私は子行次のようにしたい:
子供1:ゾール-4- | 2-5 | -3
子供2:3-1- | 5-2 | -4
クロスオーバーがで示される単一の位置 "|"。上記の子シーケンスを私に与えるコードがあれば親切。
用途:
%initilizes parents
parent1 = [3 1 2 5 4];
parent2 = [1 4 5 2 3];
%determines which rows should be swapped
rowsToSwap = [3 4];
%generates child1 and child2
child1 = parent2;
child1(rowsToSwap) = parent1(rowsToSwap);
child2 = parent1;
child2(rowsToSwap) = parent2(rowsToSwap);
結果:このコードスニペットで
child1 =
3 1 5 2 4
child2 =
1 4 2 5 3
は、rowsToSwapはハードcodded決定されます。 必要に応じて、ランダムサンプル関数を使用してランダムに選択することができます。
rowsToSwap = randsample(1:length(parent1),2)
ありがとうdrorco、うん、うまくいきます。 – Jelly