如何選擇n最佳染色體並將它們作爲數組返回?遺傳算法選擇
Chromosome[] Selection(int n) {}
我知道我需要比較染色體的適應性。 我有方法public double calculateFitness()
如何選擇n最佳染色體並將它們作爲數組返回?遺傳算法選擇
Chromosome[] Selection(int n) {}
我知道我需要比較染色體的適應性。 我有方法public double calculateFitness()
我想你有一個你想要比較的數組Chromosome
。然後,你可以簡單地通過他們的健身命令他們,並採取最佳ñ:
Chromosome[] sourceArray = ..... // wherever you got them from
Chromosome[] bestN = sourceArray.
OrderByDescending(chromosome => chromosome.calculateFitness()).
Take(n).ToArray();
我建議你看看其他非精英選擇方案,以避免premature convergence。總之,在解決方案的健身質量方面陷入了局部最優方案。替代的概率方案,比較容易編碼,是輪盤選擇或錦標賽選擇。
看看這個其他職位,可能會給你關於如何實現他們的想法:
可以提供calculateFitness()代碼? – Vladimir