is it possible to evaluate each individual in the population using the fitness value without finding the probability as the following pseudo code

For all members of population
    sum += fitness ( member)
End for 
Loop until new population is full 
      Do this twice 
            Number = Random between 0 and sum
            Currentfitness = 0.0
            For each member in population
               Currentfitness += fitness (member)
               if Number > Currentfitness then select member
            End for 
      End
Create offspring 
End loop

and what the following part of the code do ?

Do this twice

I really confuse how the Roulette Wheel selects pair of parents. can any help ? thanks in advance

link|improve this question

67% accept rate
feedback

1 Answer

up vote 0 down vote accepted

The code is meant to select a random element, but with probabilities according to a certain weight.

Example:

  • We want to select from a two-element array with the following weights: { 1, 9 }
  • The cumulative weight is { 1, 10 }
  • The total weight is 10
  • We choose a random number between 1 and 10
  • We look into the cumulative weight array and find the first index where our random number is greater than the element
  • This index is the index of the randomly chosen element

Intuitively, this example makes sense: 9 out of ten times the random number will fall between 1 and 9 causing the first element to be drawn with probability 0.9 (just as the weights specified).

link|improve this answer
So, can I use the value of cumulative fitness instead of cumulative probability. ? – Jone Mamni 22 mins ago
Yes, the intent is to select randomly with weight = fitness and probability proportional to fitness. – usr 19 mins ago
if I have 6 chromosomes, according to the original code. what will be the selection at each spin ? is it pair of parents or 3 pairs of parents? – Jone Mamni 16 mins ago
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.