1
$\begingroup$

I'm looking for a specific variation of rank selection in genetic algorithms.

I came across a python program tailored for a specific problem that uses a variant of "rank" selection. In normal rank selection, all individuals are sorted by fitness (in descending order) so that worst chromosome gets a weight of 1 and the best gets a weight of the population size. Then, usual roulette wheel selection is used based on those "weights".

In the case of that program, a slightly different variation of rank selection is used. Instead of relying on rouletted wheel selection after the chromosomes have beed sorted by rank, that program just pairs chromosome 1 with 2, 3 with 4, 5 with 6 and so on for crossover. Does that rank selection method have a particular name and/or can anyone pinpoint me to a link describing that variation. I googled it but haven't been able to find anything similar so far...

$\endgroup$
0

1 Answer 1

1
$\begingroup$

For Differential Evolution (DE) there is the Rank-Based Crossover Operator that is quite similar.

It has been proposed in "A line up evolutionary algorithm for solving nonlinear constrained optimization problems" by Haralambos Sarimveis, Athanassios Nikolakopoulos (2005):

The idea is to line up the solutions in each generation in a descending order according to the corresponding values of the objective function. The crossover and mutation operations are then applied to the solutions as follows: during the crossover operation, for each adjacent pair the difference vector is computed, weighted by a random number between 0 and 1 and added on the first vector of the pair. The produced solution replaces the first vector, if it produces an objective function value that is lower than the fitness value of the second vector. At the end of the crossover operation, the solutions are lined up again.

Of course DE has a peculiar crossover operator but the general idea of lining up individuals (rank based order) to choose crossover pairs is the same.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.