physbo.search.unify package
Submodules
Module contents
- class physbo.search.unify.NDS(num_objectives: int, rank_max: int = 10)[ソース]
ベースクラス:
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.
- パラメータ:
num_objectives (int) -- Number of objectives
Initialize NDS unified objective function
- パラメータ:
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
- class physbo.search.unify.ParEGO(num_objectives: int, weight_sum: float = 0.05, weight_max: float = 1.0, weights: ndarray | None = None, weights_discrete: int = 0)[ソース]
ベースクラス:
objectParEGO unified objective function
The unified objective function of original objectives t is defined as: t_unified = weight_max * max(weights * t) + weight_sum * sum(weights * t)
Before calculating the unified objective function, the original objectives are normalized to 0 and 1 using min-max scaling.
- パラメータ:
num_objectives (int) -- Number of objectives
weight_sum (float) -- Weight of the sum of objectives, default is 0.05
weight_max (float) -- Weight of the max of objectives, default is 1.0
weights (np.ndarray) -- Weights for the objectives. Weights are automatically normalized to sum to 1. If None (default), random weights are used for each call.
weights_discrete (int) -- Number of discrete points \(s\) to generate random weights. The weights are generated as \(w_i = \frac{a_i}{s}\), where \(a_i\) is random integer in \([0, s)\) such that \(\sum_{i=1}^{num_objectives} a_i = s\). (See Equation (1) in [1] for details.) If 0 (default), each weight is generated randomly from \([0, 1)\) and normalized to sum to 1.
参考文献
[1] J. Knowles, ParEGO: a hybrid algorithm with on-line landscape approximation for expensive multiobjective optimization problems, IEEE Trans. Evol. Comput. 10, 50 (2006) (doi:10.1109/tevc.2005.851274).
- num_objectives: int
Number of objectives
- weight_max: float
Weight of the max of objectives
- weight_sum: float
Weight of the sum of objectives
- weights: ndarray | None
Weights for the objectives. Weights are automatically normalized to sum to 1. If None, random weights are used for each call.
- weights_discrete: int
Number of discrete points to generate random weights