PaGMO  1.1.5
Public Member Functions | Friends
pagmo::util::hv_algorithm::hv4d Class Reference

hv4d hypervolume algorithm More...

#include <hv4d.h>

Inheritance diagram for pagmo::util::hv_algorithm::hv4d:
Inheritance graph
[legend]

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...
 

Detailed Description

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.

See also
Andreia P. Guerreiro, Carlos M. Fonseca, Michael T. Emmerich, "A Fast Dimension-Sweep Algorithm for the Hypervolume Indicator in Four Dimensions", CCCG 2012, Charlottetown, P.E.I., August 8–10, 2012.
Author
(original implementation) Andreia P. Guerreiro
(C++ wrapper) Krzysztof Nowak (kn@ki.nosp@m.ryx..nosp@m.net)

Definition at line 60 of file hv4d.h.

Member Function Documentation

double pagmo::util::hv_algorithm::hv4d::compute ( std::vector< fitness_vector > &  points,
const fitness_vector r_point 
) const
virtual

Compute hypervolume.

Parameters
[in]pointsvector of points containing the D-dimensional points for which we compute the hypervolume
[in]r_pointreference point for the points
Returns
hypervolume.

Implements pagmo::util::hv_algorithm::base.

Definition at line 37 of file hv4d.cpp.

void pagmo::util::hv_algorithm::hv4d::verify_before_compute ( const std::vector< fitness_vector > &  points,
const fitness_vector r_point 
) const
virtual

Verify before compute.

Verifies whether given algorithm suits the requested data.

Parameters
[in]pointsvector of points containing the 4-dimensional points for which we compute the hypervolume
[in]r_pointreference point for the vector of points
Exceptions
value_errorwhen trying to compute the hypervolume for the non-maximal reference point

Implements pagmo::util::hv_algorithm::base.

Definition at line 66 of file hv4d.cpp.


The documentation for this class was generated from the following files: