NSGA II 遺伝的アルゴリズムを実装して、大学の時間割を作成しています。ソリューションのバリエーションに問題があります。
私のアルゴリズムは、初期化、突然変異、およびクロスオーバーのようにうまく機能しますが、最終世代の後、ソリューションを確認すると、それらはすべて同じです。たとえば、1 つの世代に 200 あり、そのうちの 64 は互いに同じであり、54 はそれぞれと同じです。その他など
私の質問は、これを引き起こしている可能性があるのは何ですか? そして、交叉と突然変異の最良の形態は何ですか?
また、世代サイズ、世代数、突然変異率、交差率の基準はありますか?
現時点では、次のように実行されます。
- ランダムに 300 個のソリューションを生成する
- フィットネスとランキングを計算する
- 200 の最良のソリューションを選ぶ
- これらの 5% を突然変異させ、80 人の子供を産む
- 再計算してランク付け
- ベスト300を選んで次の世代へ
- 繰り返す