# `utilities.fast_non_dominated_sorting`

## Module Contents

### Functions

 `dominates`(→ bool) Returns true if x dominates y. `non_dominated`(→ numpy.ndarray) Finds the non-dominated front from a population of solutions. `fast_non_dominated_sort`(→ numpy.ndarray) Conduct fast non-dominated sorting on a population of solutions. `fast_non_dominated_sort_indices`(→ List[numpy.ndarray]) Conduct fast non-dominated sorting on a population of solutions.
utilities.fast_non_dominated_sorting.dominates(x: numpy.ndarray, y: numpy.ndarray) bool[source]

Returns true if x dominates y.

Parameters:
• x (np.ndarray) – First solution. Should be a 1-D array of numerics.

• y (np.ndarray) – Second solution. Should be the same shape as x.

Returns:

True if x dominates y, false otherwise.

Return type:

bool

utilities.fast_non_dominated_sorting.non_dominated(data: numpy.ndarray) numpy.ndarray[source]

Finds the non-dominated front from a population of solutions.

Parameters:

data (np.ndarray) – 2-D array of solutions, with each row being a single solution.

Returns:

Boolean array of same length as number of solutions (rows). The value is

true if corresponding solution is non-dominated. False otherwise

Return type:

np.ndarray

utilities.fast_non_dominated_sorting.fast_non_dominated_sort(data: numpy.ndarray) numpy.ndarray[source]

Conduct fast non-dominated sorting on a population of solutions.

Parameters:

data (np.ndarray) – 2-D array of solutions, with each row being a single solution.

Returns:

n x f boolean array. n is the number of solutions, f is the number of fronts.

The value of an array element is true if the corresponding solution id (column) belongs in the corresponding front (row).

Return type:

np.ndarray

utilities.fast_non_dominated_sorting.fast_non_dominated_sort_indices(data: numpy.ndarray) List[numpy.ndarray][source]

Conduct fast non-dominated sorting on a population of solutions.

This function returns identical results as fast_non_dominated_sort, but in a different format. This function returns an array of solution indices for each front, packed in a list.

Parameters:

data (np.ndarray) – 2-D array of solutions, with each row being a single solution.

Returns:

A list with f elements where f is the number of fronts in the data,

arranged in ascending order. Each element is a numpy array of the indices of solutions belonging to the corresponding front.

Return type:

List[np.ndarray]