クロスオーバー値が0.5ではないのはなぜですか?


8

私がGAについて読んだほとんどの文献では、約0.7のクロスオーバー値を使用することを推奨しています。そのため、一方の染色体の遺伝子の最初の70%と残りの30%を使用して、1つの新しい染色体を生成します。

上位2つを選択して親の染色体を選択している場合(適合度でランク付け)、評価の高い染色体の遺伝子により多くの重みを付けているため、ここでロジックを確認できます。ただし、確率的な方法(ルーレットホイールなど)を使用して親を選択している場合、クロスオーバー値として0.5以外のものを使用する意味は何ですか?親として染色体AとBを選択した場合、Aを最初に選択し、次にBを選択し、次にBを最初に選択する可能性があります。

私は実際にはこれまでに1つのGAしか書いていません(まだ学習曲線の一番下にありますが、ここでの大きな助けのおかげで速く上に移動します)。しかし、その実験により、0.5はソリューションへの収束が速くなることが示されていますその他の値。

それとも何か不足していますか?


2
Most of the literature I've read about GAs suggests using a crossover value of around 0.7<-覚えておくべきことの1つは、ヒューリスティック最適化におけるこれらのタイプの値の多くは、(経験的な導出ではなく)良い結果につながると思われる値に基づいて導出されることです。私はGAにあまり詳しくありませんが、他の母集団ベースの最適化手法では、定数がかなり恣意的に決定されていることを知っています。
エンダーランド16

1
また、なぜこの質問が反対票を投じられたのか本当にわかりません-完全にトピックと範囲のようです。
エンダーランド16

1
私は反対投票について心配する必要はありません...私がここで作成するほとんどすべての投稿に1つあります。
Robert Harvey

2
@enderland:これらの値はランダムに変化し、最も適した組み合わせが生き残るので、ここまで言ってみませんか?;-)
イェルクWミッターク

2
また、クロスオーバー値は必ずしも静的である必要はありません。GAの目標の一部は、多くのパスを探索するために多くの差異を取得することであるため、ランダムなクロスオーバー値を選択することもできます。たとえば、0.5と0.8です。特に、確定的ピッキングを必ずしも使用していない場合。
Delioth 16

回答:


5

理想的なクロスオーバー操作は、問題の空間に大きく依存します。進化的アルゴリズムと遺伝的アルゴリズムの根本的な前提は、2つの優れたソリューションを組み合わせてより優れたソリューションにすることができるというものです。優れたソリューションは他の優れたソリューションに似ています。これは、問題の空間に連続する各世代が収束する単一の最適値がある場合、直感的に意味があります。

複数の最適値がある場合、これらの最適値の間のスペースは、定義により最適ではありません。ある最適に近い染色体Aを取り、それを別の最適に近い染色体Bと組み合わせると、その間に着地し、親よりも悪い染色体cが生成される可能性があります。どちらか一方の親の近くに留まると、親よりも良い、または少なくともそれほど悪くない染色体dが得られる可能性が高くなります。

     _                d         ^ fitness
    / \              d \        |
   /   A            B   \       |
__/     \___ccc___dd     \____  |
-----------------------------------> chromosome space
     |                |
     |     valley     |
     |     of "meh"   |
1. optimum         2. optimum

クロスオーバー値は、問題の構造に合わせて調整できるアルゴリズムパラメーターの1つにすぎません。クロスオーバー値が低いと収束が速くなり、クロスオーバー値が非常に高くなることがあります。しかし、非常に高い値の場合、これは交差のようなものではなく、突然変異のようなごくわずかな変化にすぎません。したがって、1.0に近い値を使用する代わりに、交差率を下げて突然変異率を上げます。


@amon説明ありがとうございます。ほとんどの場合と同じように、特定の状況で何が機能するかを確認するために遊んでいる場合です
Avrohom Yisroel

これにより、おそらくクロスオーバー率を毎回ランダムに選択する必要があると思います。
モニカについて質問する

2

紛らわしいことに、交差率と突然変異率は、同じように命名されていますが、通常は異なる解釈がされています。

x%の突然変異率==>突然変異演算子を確率1.0で実行すると、その演算子を適用するたびに、突然変異した個体のビットのx%が変更されます。

x%のクロスオーバー率==>クロスオーバーを確率x 実行することを選択します。

したがって、70%のクロスオーバー率は、親1からビットの70%を取得し、親2から30%を取得することを意味しません。つまり、70%の時間で選択したクロスオーバー演算子を実行することになります。残りの30%の時間に、親を変更せずに子孫プールに渡します。


返信いただきありがとうございます。多分私は自分自身を明確に説明しなかったかもしれませんが、これが私が2つを理解した方法です。突然変異についてはまったく質問せず、交差についてのみ質問しました。
Avrohom Yisroel
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.