遗传算法选择
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。简而言之,陷入局部最优,解决方案的适应性质量没有任何进展。替代概率方案,相当容易编码,是轮盘赌选择或锦标赛选择。
查看其他帖子,可能会让您了解如何实施它们:
- Roulette-Wheel
- Tournamet
如何选择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。简而言之,陷入局部最优,解决方案的适应性质量没有任何进展。替代概率方案,相当容易编码,是轮盘赌选择或锦标赛选择。
查看其他帖子,可能会让您了解如何实施它们:
- Roulette-Wheel
- Tournamet