next up previous contents
Next: 突然変異 Up: 遺伝的アルゴリズム[8] Previous: 選択   目次


交叉

選択された個体間での染色体の組み替えにより新しい個体を生成するという交叉(crossover)は、 GAでは最も重要な役割を果たす遺伝的オペレータであるといえる。このような交叉は、 個体群の中から任意の2つの個体(親)をランダムに選び、さらに、ランダムに選ばれた1点あるいは 多点の交差点(crossover point)で遺伝子を組み替えることにより、新たな2つの個体(子)を 生成する操作である。

本研究では、1点交叉・2点交叉・一様交叉を用いた。

(1)1点交叉

1点交叉では、親1、親2の文字列上で交差点をランダムに1カ所選び、交差点''$\vert$''の右側の2つの親の 部分文字列をそのまま変換して、子1、子2を生成する。このような1点交叉の例は次の様になる。

親1: 11000$\vert$0001   子1: 110000100
親2: 10111$\vert$0100  

(2)2点交叉

1点交叉では、交差点を1ヶ所選択したが、これを2カ所にしたものが2点交叉である。

具体的には、交差点の間で交互に2つの親の部分文字列をそっくりそのまま変換して、子1、子2を生成する。 このような2点交叉の例は次の様になる。

親1: 11$\vert$000$\vert$0001   子1: 111110001
親2: 10$\vert$111$\vert$0100  

(3)一様交叉

一様交叉は、任意個の交差点を取ることのできる交叉法と見なされ、 1989年にG.Syswerdaによって提案された。 一様交叉では、まず${0,1}$をランダムに発生させて$n$ビットのマスクパターンを作る。 このマスクパターン上の1の遺伝子座には親1の遺伝子を、0の遺伝子座には親2の 遺伝子を受け継ぐ子1と、その逆の受け継ぎ方をする子2を生成させる。

このような一様交叉の例は次の様になる。

親1 110000001
親2 101110100
マスク 101101101
子1 100010001
子2 111100100



Deguchi Lab. 2012年3月9日