2016-03-30 87 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。总之,在解决方案的健身质量方面陷入了局部最优方案。替代的概率方案,比较容易编码,是轮盘选择或锦标赛选择。

看看这个其他职位,可能会给你关于如何实现他们的想法: