遺伝的アルゴリズムにおける交差確率のポイントは何ですか?
遺伝的アルゴリズムの一般的な手順は次のとおりです: ( source )
最初に、初期集団が生成されます。次に、選択方法 (この場合はトーナメント選択) を使用して、子のペアを作成する個体のペアを選択します。
子は、そのサイズが目的の値に達するまで子の母集団に追加されます。
次のステップは、サイズ N の親母集団とサイズ M の子母集団を結合することです。どちらか一方を他方に置き換えて、両方の母集団から最良の N 個の個体を保持します。
N = population size
P = create parent population by randomly creating N individuals
while not done
C = create empty child population
while not enough individuals in C
parent1 = select parent ***** HERE IS WHERE YOU DO TOURNAMENT SELECTION *****
parent2 = select parent ***** HERE IS WHERE YOU DO TOURNAMENT SELECTION *****
child1, child2 = crossover(parent1, parent2)
mutate child1, child2
evaluate child1, child2 for fitness
insert child1, child2 into C
end while
P = combine P and C somehow to get N new individuals
end while
もちろん、特定の確率で突然変異を実行したい場合があります。たとえば、100 人に 1 人の子供が突然変異します。
しかし、クロスオーバー率のポイントがわかりません。ペアの親がトーナメントの選択で選択され、クロスオーバーが発生しなかった場合はどうなりますか? 親を子集団に追加する必要がありますか? この場合、親と子の母集団でメンバーが重複することになります。
ここでの目標は、各世代で必要な数の子供を作成することであり、クロスオーバーによって実現する必要があります。クロスオーバー率が意味を持つようにこのアルゴリズムを変更する方法は?
交差確率が 100% の場合、すべての子孫は交差によって作られます。0% の場合、新しい世代全体が古い集団の染色体の正確なコピーから作成されます (ただし、これは新しい世代が同じであることを意味するわけではありません!)。 ソース
交差確率が 0% の場合、世代全体が古い母集団からの染色体の正確なコピーで構成されます。では、なぜ新しい世代は同じではないのでしょうか?