本研究では、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 |