遺伝的アルゴリズムにおけるクロスオーバ確率のポイントは何ですか?遺伝的アルゴリズムにおけるクロスオーバー確率
遺伝的アルゴリズムの一般的な手順は以下のとおりです(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%の場合、古い世代の染色体の正確なコピー から完全な新しい世代が作成されます(ただし、これは新しい世代の が同じであることを意味しません)。 Source
交叉確率は0%であれば、全体の世代は古い集団からの染色体の正確なコピーで作られています。それでは、どのように新世代はと同じではありませんか?
「新世代はどうしてこういうの?」突然変異。 –
@JohnColemanそれは、新しい染色体は、古い集団からの染色体の正確なコピーであると言います。 – user5539357
彼らはたぶん間違っていますが、突然変異率と確率率の両方を0にしても、すべてのメンバーが再現されるわけではないので、全体としての人口はまだ変化しています。 –