PaGMO
1.1.5
|
hv4d hypervolume algorithm More...
#include <hv4d.h>
Public Member Functions | |
double | compute (std::vector< fitness_vector > &, const fitness_vector &) const |
Compute hypervolume. More... | |
void | verify_before_compute (const std::vector< fitness_vector > &, const fitness_vector &) const |
Verify before compute. More... | |
base_ptr | clone () const |
Clone method. | |
std::string | get_name () const |
Algorithm name. | |
Public Member Functions inherited from pagmo::util::hv_algorithm::base | |
virtual double | exclusive (const unsigned int, std::vector< fitness_vector > &, const fitness_vector &) const |
Exclusive hypervolume method. More... | |
virtual unsigned int | least_contributor (std::vector< fitness_vector > &, const fitness_vector &) const |
Least contributor method. More... | |
virtual unsigned int | greatest_contributor (std::vector< fitness_vector > &, const fitness_vector &) const |
Greatest contributor method. More... | |
virtual std::vector< double > | contributions (std::vector< fitness_vector > &, const fitness_vector &) const |
Contributions method. More... | |
virtual | ~base () |
Destructor required for pure virtual methods. | |
Friends | |
class | boost::serialization::access |
Additional Inherited Members | |
Static Public Member Functions inherited from pagmo::util::hv_algorithm::base | |
static double | volume_between (const fitness_vector &, const fitness_vector &, unsigned int=0) |
Compute volume between two points. More... | |
Protected Types inherited from pagmo::util::hv_algorithm::base | |
enum | { DOM_CMP_B_DOMINATES_A = 1, DOM_CMP_A_DOMINATES_B = 2, DOM_CMP_A_B_EQUAL = 3, DOM_CMP_INCOMPARABLE = 4 } |
Protected Member Functions inherited from pagmo::util::hv_algorithm::base | |
void | assert_minimisation (const std::vector< fitness_vector > &, const fitness_vector &) const |
Assert that reference point dominates every other point from the set. More... | |
virtual unsigned int | extreme_contributor (std::vector< fitness_vector > &, const fitness_vector &, bool(*)(double, double)) const |
compute the extreme contributor More... | |
Static Protected Member Functions inherited from pagmo::util::hv_algorithm::base | |
static bool | cmp_least (const double, const double) |
Comparison method for the least contributor. More... | |
static bool | cmp_greatest (const double, const double) |
Comparison method for the least contributor. More... | |
static double | volume_between (double *, double *, unsigned int) |
Compute volume between two points. More... | |
static int | dom_cmp (double *, double *, unsigned int) |
Dominance comparison method. More... | |
static int | dom_cmp (const fitness_vector &, const fitness_vector &, unsigned int=0) |
Dominance comparison method. More... | |
hv4d hypervolume algorithm
This is the class containing the interface to the the hypervolume indicator in four dimensions as implemented by Andreia P. Guerreiro et al.
The original code was altered in following ways:
Note: As of yet, only the compute method is available. This is due to the fact that the original implementation assumes certain property about the input, namely that the available set of points is a non-dominated one. In order to provide accurate answers to any of the hypervolume features involving exclusive contribution by given point, we need to allow for the input to have dominated points. Since this is not possible, we cannot rely on the hv4d algorithm in those cases - remaining methods, which perform "naive" implementation of said features using the "compute" method, were overloaded to raise an exception.
|
virtual |
Compute hypervolume.
[in] | points | vector of points containing the D-dimensional points for which we compute the hypervolume |
[in] | r_point | reference point for the points |
Implements pagmo::util::hv_algorithm::base.
|
virtual |
Verify before compute.
Verifies whether given algorithm suits the requested data.
[in] | points | vector of points containing the 4-dimensional points for which we compute the hypervolume |
[in] | r_point | reference point for the vector of points |
value_error | when trying to compute the hypervolume for the non-maximal reference point |
Implements pagmo::util::hv_algorithm::base.