title: How to perform rank based selection in a genetic algorithm?
body: <p>I am implementing a small genetic algorithm framework - primarily for private use, unless I manage to make something reasonable at which time I will post it as open source. Right now I am focusing on selection techniques. So far I have implemented roulette wheel selection, stochastic universal sampling and tournament selection. Next on my list is rank based selection. I had a little more difficulty finding information about that than the other techniques that I've already implemented, but here is my understanding so far.</p>
  
  <blockquote>
    <ol>
    <li><p>When you have your population from which you want to get reasonable parents for the next round, you first go through it and divide the
    fitness of each individual by the total fitness in the population.</p></li>
    <li><p>Then you use some other selection technique (such as roulette wheel) to actually determine whom to select for breeding.</p></li>
    </ol>
  </blockquote>
  
  <p><strong>Is this correct?</strong> If so, am I right in thinking that the rank adjustment is a sort of preprocessing step which then has to be followed by an actual selection procedure that picks out the candidates? Please correct me if I have misunderstood any of this. I am grateful for any additional pointers.</p>