0
私は遺伝的アルゴリズムを実行しています。どのようにしてRから子孫を作成するかをテストしています.Rの各行は親に対応し、各列は形質に対応しています。私のコードでは、両親1と2、そして両親3と4を合わせて合計2人の子供を育てようとしています。しかし、コードを実行すると、子1と子2の間に余分な0の行が挿入されます。これはなぜ起こるのですか?マトリックスに余分な行が表示されるのはなぜですか?
R=[1,2,3;4,5,6;1000,2000,3000;4000,5000,6000]
for parent=1:2:3
theta=rand(1);
trait1=theta*R(0+parent,1)+(1-theta)*R(1+parent,1);
theta=rand(1);
trait2=theta*R(0+parent,2)+(1-theta)*R(1+parent,2);
theta=rand(1);
trait3=theta*R(0+parent,3)+(1-theta)*R(1+parent,3);
children(parent,:)=[trait1,trait2,trait3];
end
children
出力:
R =
1 2 3
4 5 6
1000 2000 3000
4000 5000 6000
children =
3.0837e+00 4.2959e+00 3.2356e+00
0 0 0
2.7330e+03 2.7728e+03 3.0762e+03
は
追加するには良いアイデアになることはありませんそれを継続的に行うつもり –
@SardarUsama最適化について話しますか? 「子供たち」は、初期コードの各反復でサイズを変更していました。しかし、私は、配列のサイズがわかっている場合でも、明示的に定義するほうが良いと思います。このトピックで2行の重要性がなぜ重要なのか分かりません。とにかく、私の答えを更新しました。 –
質問はMCVEを意味します。 –