私は学校のプロジェクト用に GA を開発していますが、関数の適合性を評価すると、個人はその逆数に相当することに気付きました。
たとえば、セット(1, 1, -1, 1)
は と同等(-1, -1, 1, -1)
です。検索スペースを縮小し、より効率的に解に到達するには、クロスオーバーが検索スペースの後半で検索しないようにするにはどうすればよいですか?
私は学校のプロジェクト用に GA を開発していますが、関数の適合性を評価すると、個人はその逆数に相当することに気付きました。
たとえば、セット(1, 1, -1, 1)
は と同等(-1, -1, 1, -1)
です。検索スペースを縮小し、より効率的に解に到達するには、クロスオーバーが検索スペースの後半で検索しないようにするにはどうすればよいですか?
スペースを半分にカットします。最初の要素が非負である必要があります。(x_1、..、x_n)とその逆(-x_1、..、-x_n)がある場合、検索スペースには1つだけが含まれます。(x_1 = 0の場合、それらは同じです)ところで、あなたが解決している問題は何ですか?
計算コストが高くなりますが、このようなものが仕事をするはずです。第 1 世代を無視して、すべての世代 >=2:
交差/突然変異によって生成された子が逆である場合は、それを無視して、「良い」子になるまで別の子を生成します。
個人に適切に重みを割り当てるように、フィットネス関数を書き直してみてください。解決しようとしている問題や、重みを再割り当てする方法がわからない場合。覚えておいてほしいのは、最も適した個人がプールにいるべきであり、交差のために選択される可能性が高いということです。遺伝的アルゴリズムの目的を無効にする優れたソリューションと同じ適合度を持つダミーでいっぱいのプールは望ましくありません。