2012-02-08 8 views
2

私はGAを書きまして、親を選ぶときには、私が選んだ母親をトーナメントの選択を使って見つけるか、私の母集団の各ソリューションのための選択を使用して2人の親。トーナメント選択の両親を選択する

どれですか?

答えて

4

提案された選択肢の違いは何を意味するのかあまり明確ではありませんが、一般的に、2つのランダムな個人を選び、最良のものを選んでください。次に、2人のランダムな個体を選び、最良の個体を保つと、それはParent#2になります。それらの2つの親は次に子集団に入る子孫を生産するために再結合する。十分な子孫が得られるまで繰り返す。

したがって、次のループのようなものを使用して子集団を生成します。 (親のセットごとに複数の子孫を生成することができます...状況に合わせてループの境界を調整します)。

for i = 1 to N 
    pick individual t1 at random from parent population 
    pick individual t2 at random from parent population 
    parent1 = winner(t1, t2) 

    pick individual t1 at random from parent population 
    pick individual t2 at random from parent population 
    parent2 = winner(t1, t2) 

    generate offspring from parent1, parent2 
    mutate offspring 
    evaluate offspring 
    add offspring to child population 
end for 
+1

ありがとうございました。 これは、同じ親をクロスオーバーすることがあることを意味しますか? トーナメントのサイズを2つに限定する必要はないということも付け加えておきます。あなたは好きなだけ無作為の親を選び、適法なものを見つけることができます。 – Undefined

+0

親と交差する場合は、明らかに元のクローンと変異の典型的な機会を得るでしょう。それは判断の呼び出しですが、そうではありません。なぜなら、他のメンバーよりもはるかに手頃な1人または2人のメンバーがいれば、あなたは多様性をかなり早く殺すことができるからです。 – Novak

+0

そして、私はしばしば、世代の上位1人か2人のメンバーを、とにかくクローンするように予約しています。私は私の予約に加えて、偶然起こってほしくない。 – Novak

関連する問題