遺伝的アルゴリズム(GA)を構成するプロセスの中で、最も重要で「進化の原動力」とも呼ばれているのが「交叉(Crossover / クロスオーバー)」です。選択淘汰(Selection)によって選ばれた優秀な親個体のDNA情報を混ぜ合わせ、両親の長所を兼ね備えた新しい子個体を生成するこのプロセスは、GAが持つ最大の武器であり、単なるランダム生成とGAを根本的に区別する決定的な仕組みです。
本記事では、交叉の数理的な定義から代表的な交叉方式の違い、そしてgene46における実際の交叉アルゴリズムの実装まで、包括的に解説します。
1. 交叉とは何か? — 親のDNAを融合する生物学的メタファー
自然界の有性生殖では、父親と母親のそれぞれの染色体が「組み換え(Recombination)」と呼ばれるプロセスで結合し、子供は両親の遺伝子を部分的に受け継いだ新しいゲノムを持って生まれてきます。
遺伝的アルゴリズムにおける交叉は、この生物学的メカニズムをそのまま計算機上に移植したものです。選択淘汰で生き残った2つの親個体(Parent A、Parent B)のDNA配列(パラメータの数値リスト)を、特定のルールに従ってブレンドし、新しい子個体(Offspring)を生成します。
ここで重要なのは、交叉は「親が持っていた優秀な遺伝子の組み合わせを保存しながら、新たな組み合わせを試す」という点です。完全にランダムに新しい個体を生成するのとは異なり、交叉は「すでに評価の高かった遺伝的特徴」をベースにしているため、世代を重ねるごとに集団全体の適応度が着実に向上していきます。
2. 代表的な交叉方式の種類と数理モデル
研究者たちは、問題の性質に応じて様々な交叉方式を考案してきました。以下に代表的な4つの方式を解説します。
2-1. 一点交叉(Single-point Crossover)
最も古典的でシンプルな交叉方式です。DNA配列のランダムな1箇所に「切断点(Crossover Point)」を設定し、その点より前の部分を親Aから、後の部分を親Bから受け継いで結合します。
例えば、10個の遺伝子を持つDNA配列で、切断点が4番目に設定された場合:
親A: [a1, a2, a3, a4 | a5, a6, a7, a8, a9, a10]
親B: [b1, b2, b3, b4 | b5, b6, b7, b8, b9, b10]
子: [a1, a2, a3, a4, b5, b6, b7, b8, b9, b10]
シンプルですが、切断点の位置によって結果が大きく変わるため、近接した遺伝子座のリンケージ(連鎖)が強く保存されやすいという特徴があります。
2-2. 二点交叉(Two-point Crossover)
切断点を2箇所に増やし、その間のセグメントだけを親同士で入れ替えます。一点交叉よりも多様な遺伝子の組み合わせを生み出すことができ、DNAの中央部に位置する重要なパラメータの交換が促進されます。
2-3. 一様交叉(Uniform Crossover)
各遺伝子座(パラメータの各位置)ごとに、独立して50%の確率で親Aから取るか親Bから取るかを決定します。これは「コイントスを遺伝子の数だけ繰り返す」イメージです。
一様交叉は、遺伝子座間のリンケージを完全に破壊するため、探索空間をより広くカバーできます。一方で、親の遺伝子の「まとまった良い組み合わせ(ビルディングブロック)」が壊れやすいというトレードオフがあります。
2-4. 実数交叉(BLX-α / Blend Crossover)
バイナリ(0/1)ではなく実数値のDNAを扱う場合に特に有効な方式です。親Aの値と親Bの値の間、さらにその両側にα倍だけ広がった範囲から、ランダムに子の値を生成します。
例えば、親Aの色パラメータが0.3、親Bが0.7、α=0.5のとき、子は0.1〜0.9の範囲のいずれかの値を取ります。親の特徴をブレンドしながら、わずかに親の範囲を超えた「新しい色味」を探索できるのがこの方式の強みです。
3. gene46における交叉の実装
gene46では、線画モード(Line Art)とモザイクモード(Mosaic Art)の2つの描画モデルがあり、それぞれで交叉の挙動が異なります。
- 線画モード: ベジェ曲線の制御点座標、線の太さ、色のRGBA値など、数十個の実数パラメータで構成されるDNA配列に対して、一様交叉をベースにした方式を採用しています。親Aの「美しい曲線の形状」と親Bの「鮮やかなグラデーション」が融合し、両方の長所を持った子個体が誕生します。
- モザイクモード: ニューラルネットワーク的な関数ノードの接続構造と重み係数がDNAとして定義されています。交叉では、ノード間の接続パターンを親Aと親Bからそれぞれ受け継ぐことで、全く新しい抽象パターンが出現することがあります。
4. 交叉率(Crossover Rate)と進化効率の関係
交叉が実際に行われる確率を「交叉率(Crossover Rate)」と呼びます。一般的なGAでは0.6〜0.9(60%〜90%)に設定されます。
- 交叉率が低すぎる場合: 親のクローン(完全コピー)が多くなり、世代間の変化が乏しくなります。進化が極めて遅くなります。
- 交叉率が高すぎる場合: 親の良い遺伝子の組み合わせが頻繁に分解されるため、せっかく蓄積された「優秀なDNAパターン」が壊れやすくなります。
gene46では、この交叉率と突然変異率のバランスが、プレイヤーのスワイプ選択の効果を最大化するよう最適に調整されています。
5. まとめ
交叉は、遺伝的アルゴリズムが「ただのランダム生成」ではなく「知的な探索」を行うための最も重要なメカニズムです。あなたが「いいね」した美しいカードのDNAが、別の美しいカードのDNAと交叉によって融合し、両方の長所を兼ね備えた次世代の個体として画面に現れる——この「遺伝子のブレンド」こそが、gene46の進化を支えるコアエンジンです。
📚 参考文献・一次情報源(Citation & References)
- Larry J. Eshelman & J. David Schaffer (1993), Real-Coded Genetic Algorithms and Interval-Schemata, Foundations of Genetic Algorithms 2, Morgan Kaufmann
- David E. Goldberg (1989), Genetic Algorithms in Search, Optimization, and Machine Learning, Addison-Wesley — Wikipedia 遺伝的アルゴリズム項目
この記事の執筆・監修
gene46 運営・開発チーム (GA研究ユニット)
遺伝的アルゴリズム(GA)を用いた自律進化型ジェネレーティブアートの挙動および最適化について研究・開発を行っているプロジェクトチームです。ゲーム開発と計算機科学の境界線上で活動しています。