2016-03-30 86 views
0

如何選擇n最佳染色體並將它們作爲數組返回?遺傳算法選擇

Chromosome[] Selection(int n) {} 

我知道我需要比較染色體的適應性。 我有方法public double calculateFitness()

+2

可以提供calculateFitness()代碼? – Vladimir

回答

1

我想你有一個你想要比較的數組Chromosome。然後,你可以簡單地通過他們的健身命令他們,並採取最佳ñ

Chromosome[] sourceArray = ..... // wherever you got them from 
Chromosome[] bestN = sourceArray. 
    OrderByDescending(chromosome => chromosome.calculateFitness()). 
    Take(n).ToArray(); 
0

我建議你看看其他非精英選擇方案,以避免premature convergence。總之,在解決方案的健身質量方面陷入了局部最優方案。替代的概率方案,比較容易編碼,是輪盤選擇或錦標賽選擇。

看看這個其他職位,可能會給你關於如何實現他們的想法: