Aggregation Functions
#
File position: /EMOC/src/core/utility.h and /EMOC/src/core/utility.cpp
There are several aggregation functions for decomposition:
double CalWeightedSum(Individual *ind, double *weight_vector, double *ideal_point, int obj_num)
double CalInverseChebycheff(Individual *ind, double *weight_vector, double *ideal_point, int obj_num)
double CalPBI(Individual *ind, double *weight_vector, double *ideal_point, int obj_num, double theta)
double CalWeightedSum(Individual *ind, double *weight_vector, double *ideal_point, int obj_num)
Use weighted sum method to decompose the individual ind
based on weight vector weight_vector
.
Parameter: |
ind: Individual*, default=None     The pointer to the individual which will be decomposed.
weight_vector: double*, default=None     The weight vector for decomposition. It's a 1D array of double.
obj_num: int, default=None     The number of objectives. |
Returns: |
weighted_sum: double     The decomposition value with the weighted sum method. |
double CalInverseChebycheff(Individual *ind, double *weight_vector, double *ideal_point, int obj_num)
Use inverse chebycheff method to decompose the individual ind
based on weight vector weight_vector
.
Parameter: |
ind: Individual*, default=None     The pointer to the individual which will be decomposed.
weight_vector: double*, default=None     The weight vector for decomposition. It's a 1D array of double.
ideal_point: double*, default=None     The ideal point of current population. It's a 1D array of double.
obj_num: int, default=None     The number of objectives. |
Returns: |
inverse_chebycheff: double     The decomposition value with the inverse chebycheff method. |
double CalPBI(Individual *ind, double *weight_vector, double *ideal_point, int obj_num, double theta)
Use penalty-based boundary intersection method to decompose the individual ind
based on weight vector weight_vector
.
Parameter: |
ind: Individual*, default=None     The pointer to the individual which will be decomposed.
weight_vector: double*, default=None     The weight vector for decomposition. It's a 1D array of double.
ideal_point: double*, default=None     The ideal point of current population. It's a 1D array of double.
obj_num: int, default=None     The number of objectives.
theta: double, default=None     The parameter of penalty-based boundary intersection method. |
Returns: |
pbi: double     The decomposition value with the penalty-based boundary intersection method. |