syne_tune.optimizer.schedulers.multiobjective.non_dominated_priority module

syne_tune.optimizer.schedulers.multiobjective.non_dominated_priority.pareto_efficient(X)[source]

Evaluates for each allocation in the provided array whether it is Pareto efficient. The costs are assumed to be improved by lowering them (eg lower is better).

Return type:

ndarray

Parameters

X: np.ndarray [N, D]

The allocations to check where N is the number of allocations and D the number of costs per allocation.

Returns

np.ndarray [N]

A boolean array, indicating for each allocation whether it is Pareto efficient.

syne_tune.optimizer.schedulers.multiobjective.non_dominated_priority.compute_epsilon_net(X, dim=None)[source]

Outputs an order of the items in the provided array such that the items are spaced well. This means that after choosing a seed item, the next item is chosen to be the farthest from the seed item. The third item is then chosen to maximize the distance to the existing points and so on.

This algorithm is taken from “Nearest-Neighbor Searching and Metric Space Dimensions” (Clarkson, 2005, p.17).

Return type:

ndarray

Parameters

X: np.ndarray [N, D]

The items to sparsify where N is the number of items and D their dimensionality.

dim: Optional[int], default: None

The index of the dimension which to use to choose the seed item. If None, an item is chosen at random, otherwise the item with the lowest value in the specified dimension is used.

Returns

np.ndarray [N]

A list of item indices, defining a sparsified order of the items.

syne_tune.optimizer.schedulers.multiobjective.non_dominated_priority.nondominated_sort(X, dim=None, max_items=None, flatten=True)[source]

Performs a multi-objective sort by iteratively computing the Pareto front and sparsifying the items within the Pareto front. This is a non-dominated sort leveraging an epsilon-net.

Return type:

Union[List[int], List[List[int]]]

Parameters

X: np.ndarray [N, D]

The multi-dimensional items to sort.

dim: Optional[int], default: None

The feature (metric) to prefer when ranking items within the Pareto front. If None, items are chosen randomly.

max_items: Optional[int], default: None

The maximum number of items that should be returned. When this is None, all items are sorted.

flatten: bool, default: True

Whether to flatten the resulting array.

Returns

Union[List[int], List[List[int]]]

The indices of the sorted items, either globally or within each of the Pareto front depending on the value of flatten.