2016-04-16 24 views
0

私はMatlabの助けが必要です:FlowShopの遺伝的アルゴリズムのための2つの配列をどのようにクロスオーバーするかを知る必要があります。クロスオーバー、オフスプリング後フローショップスケジューリングのための遺伝的アルゴリズム

第配列= 1 5 4 3 7 2 9 8 10 6

2配列= 7 8 9 10 5 4 2 1 3 6

べき

子孫= 1 5 4 7 3 2 8 9 10 6

子孫2 = 7 8 9 10 1 2 3 4 5 6

こと

交配は、各数字が子孫の順序で繰り返されないようにすべきである。誰も私にこれを行う方法を教えてもらえますか?

+1

提供した例はあまり明確ではありません。第1子孫と第2子孫の両方で番号「7」が繰り返される。 – Alessiox

+0

@Alessiox私は彼女が、それが子孫のものと同じ*場所*にある値のどれもがない入力の異なる順列であることを意味すると信じています。 – Suever

+0

Alessiox、誤ってタイプされた、言及していただきありがとうございます、私は各子孫で繰り返し番号を削除、 – sarah

答えて

0

並べ替えエンコードのために定義された既存のクロスオーバーがいくつかあります。その中でも、以下は、あなたのために有用であろう:

  • サイクロスオーバー
  • 部分的に一致したクロスオーバー
  • 制服のようなクロスオーバー
  • 位置ベースのクロスオーバー

これらのクロスオーバーが維持することを目指して順列におけるジョブの位置。実装は、C#のPermutationEncodingプラグインHeuristicLabにあります。ソースファイルを参照し、これらのクロスオーバーを記述する科学論文の参照を見つけることもできます。

関連する問題