Hypervolume

Hypervolume #

File position: /EMOC/src/metric/hv.h and /EMOC/src/metric/hv.cpp

Due to the complexity of calculating hypervolume, we use a class to encapsulate the details into a class HVCalculator. The most important public interface is the following:

double HVCalculator::Calculate(Individual** pop, int pop_num, int obj_num, double** pf_data, int pf_size)

Calculate the hypervolume value of current population pop based on the pareto front data pf_data.

Parameter:
pop: Individual**, default=None
    The population which need to be initialized. It's an array of Individual* where each Individual* is a pointer to a individual in the population.

pop_num: int, default=None
    The size of the given population.

obj_num: int, default=None
    The number of objectives.

pf_data: double**, default=None
    The pareto front data. It's a 2D array of double (pf_size X obj_num).

pf_size: int, default=None
    The size of the pareto front pf_data.
Returns:
hv_value: double
    Hypervolume value of current population pop.