遺伝的アルゴリズムに部分的に一致したクロスオーバーを使用する場合の重複の処理

ヴィンシーリック

私は遺伝的アルゴリズムに不慣れで、Pythonの実装に取り​​組んでいます。私はクロスオーバーのステップまで進んでおり、部分的に一致したクロスオーバーを試みています。最終的な出力では、重複する番号が含まれていないリストを期待しています。ただし、場合によっては、重複を導入しています。たとえば、リストを取る

Mate 1 [1,2,3,5,4,6]

Mate 2 [6,5,4,3,2,1]

クロスオーバー部分が [3,5,4] -> [4,3,2]

次に、マッピング前の子孫はになり[1,2,4,3,2,6]ます。アルゴリズムの私の理解は、クロスオーバーの外側のマッピングです4 -> 3, 5 -> 3 and 2 -> 4ただし、これにより、出力[1,4,4,3,2,6]が重複し、5が欠落します。

この問題を回避するにはどうすればよいですか?最初の4つは5になりますか?そして、これは、複数の重複を導入する可能性のあるより大きなリストにどのように拡張されますか?

マヨワアヨデレ

あなたがそれを正しく実装したかどうかはわかりません:

部分的に一致したクロスオーバー(説明を参照)の場合、例で提案されているようにクロスオーバーポイントが2と5の場合、取得できるのは

offspring1 = [6, 2, 3, 5, 4, 1]
offspring2 = [1, 5, 4, 3, 2, 6]

3,5,4mate1から選択し、残りをmate2の順序で入力すると、子孫1が取得されますが4,3,2、mate2から選択し、残りをmate 1の順序で入力すると、子孫2が取得されます。

以下の実装を参照してください。

mate1 = [1,2,3,5,4,6]
mate2 = [6,5,4,3,2,1]


crossoverpoint1 = 2
crossoverpoint2=5
child = []

#fill in the initial genes in order of mate1
count = 0
for i in mate1:
    if(count == crossoverpoint1):
        break
    if(i not in mate2[crossoverpoint1:crossoverpoint2]):
        child.append(i)
        count= count+1

#select the genes within the crossover points from mate2          
child.extend(mate2[crossoverpoint1:crossoverpoint2])

#fill in the remaining genes in order of mate1
child.extend([x for x in mate1 if x not in child])

print(child)

出力:

[1, 5, 4, 3, 2, 6]

offspring1を取得するには、mate1をmate2に交換します。さまざまなクロスオーバーポイントを試すこともできます。これが役立つかどうか教えてください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Java:遺伝的アルゴリズムのクロスオーバーのために2つのダブルビットストリングを混合する

分類Dev

遺伝的アルゴリズム-部分的にマッピングされたクロスオーバー-Java

分類Dev

遺伝的アルゴリズム、重複データなしでクロスオーバー

分類Dev

NEATアルゴリズム:互いに素な遺伝子と過剰な遺伝子をクロスオーバーする方法は?

分類Dev

2次元配列でクロスオーバーを実行する方法-遺伝的アルゴリズム

分類Dev

c ++クロスオーバー遺伝的アルゴリズムpush_backベクトルは古いものを上書きします

分類Dev

オーダークロスオーバー(OX)-遺伝的アルゴリズム

分類Dev

遺伝的アルゴリズムの「ユニークな」クロスオーバー-TSP

分類Dev

遺伝的アルゴリズム-親の選択とクロスオーバーの確率

分類Dev

非遺伝的ケースのMatlab遺伝的アルゴリズム

分類Dev

集団メンバーの誰もがそれに従わない場合、遺伝的アルゴリズムの制約にどのように対処するのですか?

分類Dev

遺伝的アルゴリズム-クロスオーバーと突然変異が正しく機能しない

分類Dev

ニューラルネットワークはどのように遺伝的アルゴリズムとバックプロパゲーションを使用してゲームをプレイしますか?

分類Dev

遺伝的アルゴリズムにおける繁殖のためのベクトル化されたアプローチ

分類Dev

Golangを使用した遺伝的アルゴリズムでのルーレットホイールの選択

分類Dev

リストの位置で囲まれた項目を使用して計算する(遺伝的アルゴリズムの適合性)

分類Dev

0.25のクロスオーバーインデックスは、実際のエンコーディングの遺伝的アルゴリズムで何を意味しますか?

分類Dev

クロスエントロピーと遺伝的アルゴリズムの違いは何ですか?

分類Dev

多変数遺伝的アルゴリズムのゲノムに対して遺伝的操作を実行するさまざまな方法のパフォーマンスへの影響

分類Dev

Scala遺伝的アルゴリズム(GA)ライブラリのシミュレートされたバイナリクロスオーバー(SBX)クロスオーバーオペレーター

分類Dev

複数の場所が一致する場合、Nginxはリクエストを処理する場所をどのように決定しますか

分類Dev

テキスト処理のスクリプト:パターン全体が一致する場合にのみ、一連の行を削除します

分類Dev

完全な履歴が与えられた場合にスポーツの試合に勝つチームのオッズを計算するアルゴリズム

分類Dev

遺伝的アルゴリズムの過剰適合を回避する方法

分類Dev

Javaの遺伝的アルゴリズムにガウス突然変異演算子を実装する方法

分類Dev

Matlabの遺伝的アルゴリズムを使用した画像再構成アルゴリズムの最適化

分類Dev

Nginx:場所が一致する場合にのみサーバーブロックを使用します

分類Dev

オブジェクトの複数のグループの最適な一致を見つけるためのアルゴリズム

分類Dev

Haskellの合計と製品タイプを列挙するための遺伝的アルゴリズム?

Related 関連記事

  1. 1

    Java:遺伝的アルゴリズムのクロスオーバーのために2つのダブルビットストリングを混合する

  2. 2

    遺伝的アルゴリズム-部分的にマッピングされたクロスオーバー-Java

  3. 3

    遺伝的アルゴリズム、重複データなしでクロスオーバー

  4. 4

    NEATアルゴリズム:互いに素な遺伝子と過剰な遺伝子をクロスオーバーする方法は?

  5. 5

    2次元配列でクロスオーバーを実行する方法-遺伝的アルゴリズム

  6. 6

    c ++クロスオーバー遺伝的アルゴリズムpush_backベクトルは古いものを上書きします

  7. 7

    オーダークロスオーバー(OX)-遺伝的アルゴリズム

  8. 8

    遺伝的アルゴリズムの「ユニークな」クロスオーバー-TSP

  9. 9

    遺伝的アルゴリズム-親の選択とクロスオーバーの確率

  10. 10

    非遺伝的ケースのMatlab遺伝的アルゴリズム

  11. 11

    集団メンバーの誰もがそれに従わない場合、遺伝的アルゴリズムの制約にどのように対処するのですか?

  12. 12

    遺伝的アルゴリズム-クロスオーバーと突然変異が正しく機能しない

  13. 13

    ニューラルネットワークはどのように遺伝的アルゴリズムとバックプロパゲーションを使用してゲームをプレイしますか?

  14. 14

    遺伝的アルゴリズムにおける繁殖のためのベクトル化されたアプローチ

  15. 15

    Golangを使用した遺伝的アルゴリズムでのルーレットホイールの選択

  16. 16

    リストの位置で囲まれた項目を使用して計算する(遺伝的アルゴリズムの適合性)

  17. 17

    0.25のクロスオーバーインデックスは、実際のエンコーディングの遺伝的アルゴリズムで何を意味しますか?

  18. 18

    クロスエントロピーと遺伝的アルゴリズムの違いは何ですか?

  19. 19

    多変数遺伝的アルゴリズムのゲノムに対して遺伝的操作を実行するさまざまな方法のパフォーマンスへの影響

  20. 20

    Scala遺伝的アルゴリズム(GA)ライブラリのシミュレートされたバイナリクロスオーバー(SBX)クロスオーバーオペレーター

  21. 21

    複数の場所が一致する場合、Nginxはリクエストを処理する場所をどのように決定しますか

  22. 22

    テキスト処理のスクリプト:パターン全体が一致する場合にのみ、一連の行を削除します

  23. 23

    完全な履歴が与えられた場合にスポーツの試合に勝つチームのオッズを計算するアルゴリズム

  24. 24

    遺伝的アルゴリズムの過剰適合を回避する方法

  25. 25

    Javaの遺伝的アルゴリズムにガウス突然変異演算子を実装する方法

  26. 26

    Matlabの遺伝的アルゴリズムを使用した画像再構成アルゴリズムの最適化

  27. 27

    Nginx:場所が一致する場合にのみサーバーブロックを使用します

  28. 28

    オブジェクトの複数のグループの最適な一致を見つけるためのアルゴリズム

  29. 29

    Haskellの合計と製品タイプを列挙するための遺伝的アルゴリズム?

ホットタグ

アーカイブ