如何选择 n 最佳染色体并将其作为数组返回?
Chromosome[] Selection(int n) {}
我知道我需要根据它们的适应性来比较染色体。
我有方法public double calculateFitness()
答案 0 :(得分:1)
我认为你有一个你要比较的Chromosome
数组。然后你可以简单地按照他们的健康状况对它们进行排序并采用最好的 n :
Chromosome[] sourceArray = ..... // wherever you got them from
Chromosome[] bestN = sourceArray.
OrderByDescending(chromosome => chromosome.calculateFitness()).
Take(n).ToArray();
答案 1 :(得分:0)
我建议你看看其他非精英选择方案,以避免premature convergence。简而言之,在解决方案方面没有任何进展,陷入局部最佳状态。健身质量。替代概率方案,相当容易编码,是轮盘赌轮选择或锦标赛选择。
查看其他帖子,可以让您了解如何实施它们: