physbo.search.unify.nds module

class physbo.search.unify.nds.NDS(num_objectives: int, rank_max: int = 10)[source]

Bases: object

Unified objective function based on the Non-Dominated Sorting (NDS) method.

The unified objective function of original objectives t is defined as: t_unified = 1 / rank where rank is the Pareto rank of the solution. Solutions with the rank 1 are the Pareto solutions of the original set. Solutions with the rank 2 are the Pareto solutions of the set where the solutions with the rank 1 are removed. Solutions with the rank r are the Pareto solutions of the set where the solutions with the rank 1, 2, …, r-1 are removed.

Parameters:

num_objectives (int) – Number of objectives

Initialize NDS unified objective function

Parameters:
  • num_objectives (int) – Number of objectives

  • rank_max (int) – Maximum rank of the NDS

num_objectives: int

Number of objectives

rank_max: int

Maximum rank of the NDS

physbo.search.unify.nds.nds_impl(t: ndarray, rank_max: int) ndarray[source]

NDS implementation

Parameters:
  • t (np.ndarray) – Training data

  • rank_max (int) – Maximum rank of the NDS

Returns:

t_unified – Values of the unified objective function Shape: (N, 1)

Return type:

np.ndarray

physbo.search.unify.nds.nds_impl_naive(t: ndarray, rank_max: int) ndarray[source]

Naive – slow but simple – implementation of NDS

Parameters:
  • t (np.ndarray) – Values of the original objective functions Shape: (N, num_objectives)

  • rank_max (int) – Maximum rank of the NDS

Returns:

t_unified – Values of the unified objective function Shape: (N, 1)

Return type:

np.ndarray