0

クロスオーバーとミューテーションの操作についてアドバイスが必要なGPを書いています。GPは、ハード行の制約とソフト列の制約がある行列の最適なソリューションを見つけようとしています。

母集団内の特定のソリューションの場合、行には固定セットのオブジェクトタイプIDのランダムな組み合わせが含まれます。GPは、行がレイアウトされた後、各列のIDを集計する場合、各タイプの数がそのIDの推奨範囲内に収まらなければならないという解決策を見つけようとしています。列の制約にどれだけ近いかでソリューションを評価できる適応度関数を作成しました。100%すべての列が仕様の範囲内にあります。

少しアドバイスが必要なのはクロスオーバーです。親は、フィットネススコアが高いソリューションから選択されます。ワンポイントクロスオーバーがあり、父親の上からいくつかの行をスライスし、母親から無料の下の行をスライスして子孫を生成します。ほとんどの場合、ソリューションが実行不可能になるため、列ごとにスライスすることはできません。

このアプローチはクロスオーバーに適していると思われますか?私は、これを最終的に実現可能にするのに十分な優れた遺伝的「物質」が世代から世代へと受け継がれないのではないかと心配しています。突然変異については、1行か2行を再ランダム化し、ソリューションの新しいフィットネススコアを確認することを計画しています。

アドバイスをありがとうございます。

4

1 に答える 1

0

どの遺伝的アルゴリズムでも、ソリューションのエンコーディングに適したクロスオーバー方法を選択する必要があります。特定の方法で乗換えすると、子孫の多くが生存不能になる場合は、そのように乗換えるべきではありません。ただし、行を越えると検索スペースを完全に探索できなくなるように聞こえます。

これに対処するために使用できるいくつかのアプローチがあります。

  1. VSOverflowで提案されているように、最初は「コース」適応度関数を使用します。これにより、無効なソリューションに最初はそれほど厳しくペナルティが課せられません。このようなアプローチは、文献にも存在しません。たとえば、Punch(1996)を参照してください。
  2. あなたの母集団をいくつかの最初の亜母集団に分割し、時折を除いてそれらが相互作用することを許可しないでください。これにより、行の収束が遅くなり、有望な行が偶然に殺される可能性が低くなります。
  3. よりきめ細かい選択で個々のセルを交換できる場合(制御された方法で、結果が後で有効になるように)、それはおそらく良い考えです。
于 2012-07-19T17:58:09.237 に答える