本研究では、1点交叉・2点交叉・一様交叉を用いた。
(1)1点交叉
1点交叉では、親1、親2の文字列上で交差点をランダムに1カ所選び、交差点''
''の右側の2つの親の
部分文字列をそのまま変換して、子1、子2を生成する。このような1点交叉の例は次の様になる。
| 親1: 11000 |
子1: 110000100 | |
| 親2: 10111 |
(2)2点交叉
1点交叉では、交差点を1ヶ所選択したが、これを2カ所にしたものが2点交叉である。
具体的には、交差点の間で交互に2つの親の部分文字列をそっくりそのまま変換して、子1、子2を生成する。 このような2点交叉の例は次の様になる。
| 親1: 11 |
子1: 111110001 | |
| 親2: 10 |
(3)一様交叉
一様交叉は、任意個の交差点を取ることのできる交叉法と見なされ、
1989年にG.Syswerdaによって提案された。
一様交叉では、まず
をランダムに発生させて
ビットのマスクパターンを作る。
このマスクパターン上の1の遺伝子座には親1の遺伝子を、0の遺伝子座には親2の
遺伝子を受け継ぐ子1と、その逆の受け継ぎ方をする子2を生成させる。
このような一様交叉の例は次の様になる。
| 親1 | : | 110000001 |
| 親2 | : | 101110100 |
| マスク | : | 101101101 |
| 子1 | : | 100010001 |
| 子2 | : | 111100100 |