遺伝的アルゴリズムを使用して、浮動小数点数の平方根を見つけようとしています。
乱数の母集団と適応度関数を初期化しました。母集団と均一なクロスオーバーからの親の選択を実装するにはどうすればよいですか?
質問する
1714 次
1 に答える
2
SELECTION
gilad によって与えられた関数 (あなたが使用しているもの) は問題ないようです。標準的な手順に従わないのはなぜですか?ウィキペディアでいくつかのアイデアを見つけることができます
CROSSOVER
候補を 32 ビット ベクトル (実際には 31) と見なしている場合、一様な交差を行うには、いずれかの親のビットを半分の確率で選択する必要があります。
アイデアは次のようになります。
- コインを投げる
- head が親の 1 を引き継ぐ場合、
- 尾が親 2 を引き継ぐ場合
プログラムで 2 つの親から子を作成する効率的な方法は、ランダムな 32 ビット数値を生成し、r
親a
とb
doを指定することです。
child = (r & a) | (~r & b);
于 2012-10-11T08:11:52.950 に答える