physbo.search.unify.nds module
- class physbo.search.unify.nds.NDS(num_objectives: int, rank_max: int = 10)[source]
Bases:
objectUnified 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