2017-02-10 16 views
1

この問題を考える:1000の正の数のベクトルを持つと、部品の合計が近似(近い)値を持つように、7つの要素で1000要素の最適なパーティションを見つける。効率的な遺伝的アルゴリズム

どのように染色体表現、演算子(突然変異、クロスオーバー)、フィットネス機能、選択..を作ると、最も効率的な問題を解決できるように&最適化された方法ですか?

私の考えは、各番号にインデックスを付けることです(インデックス番号が一番低い番号はインデックスが1000です)。しかし、これが最も効果的な方法ではないと思いますか?どんな提案も歓迎です!

答えて

0

パーティションの問題があるので、全体のセットを1つの染色体に入れる必要があると思います。あなたは1から7までの値を持つことができる長さ1000の配列を持っているとしましょう。フィットネス関数は、すべてのパーティションの合計の差を計算できます。クロスオーバーは、シングルポイントまたはダブルポイントで行うことができます。その後、突然変異は個々の遺伝子をその値からランダムな値に無作為に変えることができます。例えば、102位は4であり、次に1に変異します。この解決策では、すべての染色体が有効な解決策であることを保証します。問題の規則に従わない染色体(各染色体ごとに1つの染色体を持つことを選択した場合の問題)を繰り返すたびにチェックする必要があります。いつものように、交叉の基準と突然変異の可能性は、最良の性能を得る前に探査と調整が必要です。

関連する問題