如何选择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