私は最終年度のプロジェクトに取り組んでおり、時刻表の最適化のための遺伝的アルゴリズムを開発しています。クラスの時間割を表すランダムな染色体を作成しているので、現時点ではかなりうまくいっています。関数フィットネス関数と潜在的な制約を設計しましたが、制約の実際の重み付けにこだわっています。
フィットネス関数として次の関数を使用しています。
1/1 + (Ci*Wci)
Ci が制約 i の違反の量であり、Wci が制約 i の重み付けであるように。
明らかに、ハード制約をソフト制約よりも高く重み付けする必要があります。
以前にこの手法を使用したことがある人はいますか?これらの重み値に推奨される範囲はありますか?