Function PGASortND_Jensen

Function Documentation

unsigned int PGASortND_Jensen(PGAContext *ctx, PGAIndividual **start, size_t n, int goal)

Perform nondominated sorting using Jensen’s algorithm.

Description

Perform dominance computation known as nondominated sorting or ranking. This is the new algorithm originally by Jensen [Jen03], modified to correctly handle duplicates by Fortin et. al. [FGP13] and (for a slightly modified version) shown to be O(N*log(N)**(M-1)) by Buzdalov and Shalyto [BS14].

The algorithm selects the appropriate algorithm based on the number of objectives (there is a special case for m=2 objectives).

Parameters:
  • ctx – context variable

  • start – pointer to individuals

  • n – number of individuals

  • goal – number of individuals needed in next generation

Returns:

Maximum rank given or UINT_MAX if goal was reached exactly (in which case no crowding is necessary)