遗传算法选择

Genetic algorithm Selection

如何选择n条最好的染色体并将它们return作为一个数组?

Chromosome[] Selection(int n) {}

我知道我需要通过适合度来比较染色体。 我有方法 public double calculateFitness()

我假设您有一组要比较的 Chromosome。然后你可以简单地根据他们的适应度来排序,并选择最好的 n:

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

我建议你看看其他非精英选择方案以避免premature convergence。简而言之,陷入局部最优,解决方案的适应性质量没有任何进展。替代概率方案,相当容易编码,是轮盘赌选择或锦标赛选择。

查看其他帖子,可能会让您了解如何实施它们: