1

したがって、以下を使用して遺伝的アルゴリズムにクロスオーバーを実装すると、次のようになります。

Input: Two strings of n bits x and y
Output: Two strings of n bits x' and y'

次のようにクロスオーバー演算子を適用します。

各文字列をゼロ以外の長さの2つのサブ文字列に分割するクロスオーバーサイトがランダムに(等しい確率で)選択されます。

x = [x1, x2];
y = [y1, y2]

と:

x1.length = y1.length

出力は次のように生成されます。

x' = [x1, y2]
y' = [y1, x2]

あなたが

(x1, y1) = ((1 0 1 0) (1 1 1 1))

4 bit stringsクロスオーバーのみで得られる可能な値を指定します。

それで、これは正しいですか?

0 1 0 1

私はそれらを足し合わせるだけで正しいと思いますが、私はこれに少し迷いました。

4

1 に答える 1

1

それらを一緒に追加するのは間違っています。

ゲノムの長さが4の場合、クロスオーバーポイントが3つある可能性があります(長さがゼロではない)。これらは4ビットのそれぞれの間にあります。

クロスオーバーポイント2を選択し、次の入力を行う場合:

1010)(1111)-x&y-

結果の文字列は次のとおりです。

10 .11 )-xの最初の2つとyの最後の2つ。

11 .10)-yの最初の2つとxの最後の2つ。

したがって、他の2つの順列(クロスオーバーポイント1と3)を簡単に把握できます。

これは宿題だと思うので、すべてをやってはいけません:)

于 2012-10-01T11:37:49.370 に答える