2016-05-15 5 views
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

クロスオーバーがで示される単一の位置 "|"。上記の子シーケンスを私に与えるコードがあれば親切。

答えて

0

用途:

%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) 
+0

ありがとうdrorco、うん、うまくいきます。 – Jelly

関連する問題