PaGMO
1.1.5
|
WFG hypervolume algorithm. More...
#include <wfg.h>
Public Member Functions | |
wfg (const unsigned int stop_dimension=2) | |
Constructor. | |
double | compute (std::vector< fitness_vector > &, const fitness_vector &) const |
Compute hypervolume. More... | |
std::vector< double > | contributions (std::vector< fitness_vector > &, const fitness_vector &) const |
Contributions method. More... | |
void | verify_before_compute (const std::vector< fitness_vector > &, const fitness_vector &) const |
Verify before compute method. 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 | ~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... | |
WFG hypervolume algorithm.
This is the class containing the implementation of the WFG algorithm for the computation of hypervolume indicator.
|
virtual |
Compute hypervolume.
Computes the hypervolume using the WFG algorithm.
[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 |
Contributions method.
This method employs a slightly modified version of the original WFG algorithm to suit the computation of the exclusive contributions. It differs from the IWFG algorithm (referenced below), as we do not use the priority-queueing mechanism, but compute every exclusive contribution instead. This may suggest that the algorithm for the extreme contributor itself reduces to the 'naive' approach. It is not the case however, as we utilize the benefits of the 'limitset', before we begin the recursion. This simplifies the sub problems for each exclusive computation right away, which makes the whole algorithm much faster, and in many cases only slower than regular WFG algorithm by a constant factor.
[in] | points | vector of points containing the D-dimensional points for which we compute the hypervolume |
[in] | r_point | reference point for the points |
Reimplemented from pagmo::util::hv_algorithm::base.
|
virtual |
Verify before compute method.
Verifies whether given algorithm suits the requested data.
[in] | points | vector of points containing the D-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.