saealib.NonDominatedSorter#

class saealib.NonDominatedSorter(*args, **kwargs)[source]#

Bases: Protocol

Protocol for non-dominated sorting callables.

Any callable that accepts an objective matrix f, an optional per-objective direction array, and an optional dominator keyword argument and returns (ranks, fronts) satisfies this protocol. The free function non_dominated_sort is the default implementation.

Parameters:
  • f (np.ndarray) – Objective matrix. shape: (n, n_obj)

  • direction (np.ndarray or None) – Per-objective optimization direction: +1 = maximize, -1 = minimize. None defaults to minimization for all objectives.

  • dominator (Dominator or None) – Dominance predicate to use. None defaults to ParetoDominator.

Returns:

  • ranks (np.ndarray) – Pareto front index for each individual (0 = first/best front). shape: (n,)

  • fronts (list[list[int]]) – fronts[i] contains the local indices of individuals in front i.

Methods

Method Details

NonDominatedSorter.__init__(*args, **kwargs)#