値をビットとしてエンコードする必要はありません。見2Dボックスカー(無駄にしないでくださいあまりにも多くのクロスオーバーは、全体(フロート)の値で行われ、たとえばそれに時間を)。「アセンブリ」全体が交差しています。これにより、ソース(ゲームの美学の一部)の認識性が高まりますが、特定の染色体とその親の間のバリエーションがより限定されるようになります。
整数の代わりにビットを使用することを検討する理由は、プールにシードされるデータの範囲に関係しています。35の整数を持つことは、クロスオーバーが全体の値として取られる35の値でのみ発生することを意味します。1120ビット(35 * 32ビット整数)を使用すると、より細かい粒度が得られます(ATCGでの従来の「遺伝的アルゴリズム」の動作-アミノ酸やタンパク質の「値」全体ではないことを考慮してください)。
ビットを使用すると、1つの整数の上部と別の整数の下部を取得する「よりクリーンな」変異(ビットを反転)とクロスオーバーを使用できます。これらの両方は、子孫の潜在的な多様性を高めるのに役立ちます。
たった2バイトの染色体を考えてみましょう(見やすくするために、整数ではなくバイトを使用しています)。
chromosome 1: 0xA3 0xB2
chromosome 2: 0x12 0x34
これら2つの染色体間の交差は、限られた場所でのみ発生します。あなたは次のようになります:
chromosome 1': 0x12 0xB2
chromosome 2': 0xA3 0x34
代わりにこれがビットとして行われた場合:
chromosome 1: 1010001110110010
chromosome 2: 0001001000110100
^ ^
これで^
、クロスオーバーを与えるサイトを選択できます:
chromosome 1': 1010001000110010
chromosome 2': 0001001110110100
^ ^
これにより、2つの染色体間で可能なバリエーションが豊富な、より豊かなモデルが提供されます。