1.6. Sorting

1.6.1. sorLogNondominated

surrogate.sorting.sorLogNondominated()[source]

Sort individuals in pareto non-dominated fronts using the Generalized Reduced Run-Time Complexity Non-Dominated Sorting Algorithm presented by Fortin et al. (2013).

Parameters:individuals – A list of individuals to select from.
Returns:A list of Pareto fronts (lists), with the first list being the true Pareto front.

1.6.2. sorNondominated

surrogate.sorting.sorNondominated()[source]

Sort the first k individuals into different nondomination levels using the “Fast Nondominated Sorting Approach” proposed by Deb et al., see [Deb2002]. This algorithm has a time complexity of \(O(MN^2)\), where \(M\) is the number of objectives and \(N\) the number of individuals.

Parameters:
  • individuals – A list of individuals to select from.
  • k – The number of individuals to select.
  • first_front_only – If True sort only the first front and exit.
Returns:

A list of Pareto fronts (lists), the first list includes nondominated individuals.

[Deb2002]Deb, Pratab, Agarwal, and Meyarivan, “A fast elitist non-dominated sorting genetic algorithm for multi-objective optimization: NSGA-II”, 2002.

1.6.3. sorNDHelperA

surrogate.sorting.sorNDHelperA()[source]

Create a non-dominated sorting of S on the first M objectives

1.6.4. sorNDHelperB

surrogate.sorting.sorNDHelperB()[source]

Assign front numbers to the solutions in H according to the solutions in L. The solutions in L are assumed to have correct front numbers and the solutions in H are not compared with each other, as this is supposed to happen after sorNDHelperB is called.