Roulette-wheel selection in Genetic algorithm. Population needs to be sorted first?

妖精的绣舞 提交于 2019-12-03 07:02:04

No, you don't actually need to sort them. You are exactly correct that it will have no effect if the higher-ranked members are grouped together or not (at least with a good random number generator :) ).

Your intuition is dead on here - statistically, it will have no effect to sort, and as you mention, you don't have to waste a bunch of time and effort sorting things!

Even if you apply elitism, there is no need to sort the population.

Finding the best N individuals only requires a single iteration through the population.

You do not need to sort the population if you use such a selection.

And you are also correct about the complexity, a sort is n*log(n), making the genetic algorithm significantly slower (but still, the complexity remains polynomial, a critical feature of a genetic algorithms).

Here is how I would do it (and get extra points at school for this):

  1. implement a more generic solution using hooks - before mutation, after selection etc etc.

  2. measure the number of iterations and the speed of the algorithm / each iteration

  3. do your sorting in a hook. measure. now let the hook be empty and measure and so on.

You will get some nice data and experimentally verify what your intuition tells you.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!