4

シンボリック回帰を実行するために、定常状態の遺伝的アルゴリズムを実装しています。

私の質問は、突然変異とクロスオーバー演算子の関係についてです。

私は常に突然変異確率(Pm)を調べてから、突然変異とトーナメントの選択を適用して、エラーに基づいて親を選択します。

  • 最初の質問:

突然変異は、交叉(または別の遺伝的演算子)の後に得られた子供にのみ適用する必要がありますか、それとも1人の親に直接適用して、新しい個体を生成することができますか?

  • 2番目の質問:

クロスオーバー手術後に得られた子供は常に突然変異を試みなければなりません(もちろんPmで)?

よろしくお願いします。

4

3 に答える 3

4

通常、交配プロセスには交叉と突然変異が含まれるため、質問に答える標準的な方法は、親を取得し、交叉を適用してから最終結果を突然変異させることです (それを子と呼ぶ前に)。

この理由は、親に突然変異を適用すると、基本的に「過剰な突然変異」が発生するためです (突然変異率が同じであると仮定すると、スクランブルされる可能性が 2 倍になります)。

私がそのように見たことがない場合でも、もちろんそれを行うことはできますが、進化プロセスを混乱させないように、突然変異を「再スケーリング」する必要があります(突然変異が多すぎる->ランダムウォーク)。

私が今まで参考として使ってきたすべての標準的な進化率は子供に与えられているので、それはそれで行くもう一つの理由です.

于 2011-03-17T19:39:20.987 に答える
0

他の回答で述べたように、どちらのアプローチも使用可能であり、実際に両方が実装されているのを見てきました。デザイン選びです。しかし、そうは言っても、一度に 1 つの遺伝子操作のみを実行する方が望ましいとあなたを説得したいと思います。

高い「局所性」の特性は、ほとんどの場合、遺伝子操作者にとって望ましいものです。局所性とは、オペレーターの個人への影響がどの程度局所化されているかを指します。それは根本的に変化するか、それとも小さな調整のみを行い、検索空間内の隣接する場所に個人を移動させます。ローカリティの低いオペレーターは、検索スペースに無関係な大きなジャンプを作成します。これにより、ラッキー ストライキに頼る代わりに、徐々に前進することが難しくなります。クロスオーバーと突然変異を 1 つのステップで適用する場合、変更は効果的に結合され、個別に適用する場合よりも局所性の低い操作が作成されます。

選択によってこれが必要になる場合もありますが、通常は、フィットネスの状況が非常に険しく、進化的アルゴリズムがおそらく間違ったアプローチである場合に限られます。

于 2011-03-17T23:23:53.420 に答える
0

いずれの場合も、どちらかを実行できます。さまざまなクロスオーバーおよび突然変異スキームが、さまざまな問題に対してうまく機能する場合があります。問題に対してさまざまなことを試して、それらがどのように機能するかを確認してください。(しかし、もちろん、(1) 交叉後の子にのみ突然変異が適用されると言い、(2) 交叉後の子供は突然変異しないと言う場合、結果は突然変異がないということです:-)、したがって、その組み合わせはおそらく良くない。)

于 2011-03-17T14:33:35.757 に答える