2

遺伝的アルゴリズムには、親から子への染色体の交配を選択する段階があります。

バイナリ形式で簡単に実行できます。

しかし、値のエンコーディングを使用して染色体をエンコードするとどうなるでしょうか?

私の染色体の 1 ビットが DOUBLE 型の値であるとしましょう。0.99 としましょう。確率を表すため、その範囲は (0-1) です。

この DOUBLE 数をクロスオーバーするには?

バイナリに変換してクロスオーバーしてから元に戻す...?

4

1 に答える 1

0

ブレンド クロスオーバー オペレーター(α = 0 のバリアント) を使用できます。

p1    first parent
p2    second parent
u     random number in [0, 1]

offspring = (1 - u) * p1 + u * p2

と仮定するとp1 < p2、この交差演算子は範囲内でランダムな解を作成します[p1, p2]

混合交差演算子には、親の差が小さい場合、子と親の解の差も小さいという興味深い特性があります。したがって、現在の母集団の広がりは、結果として得られる母集団における解の広がりを決定します (これは の形式ですadaptation)。

ブレンド交差演算子 (BLX-α) のより高度なバージョンと別のよく知られている演算子 (Simulated Binary Crossover) については、Kalyanmoy Deb と Hans-Georg Beyer によるSelf-Adaptive Genetic Algorithms with Simulated Binary Crossover で説明されています(短い要約はこちら) 。 .


差分進化は別の可能性です。

于 2016-05-05T16:06:46.977 に答える