Implementation of the exact hypervolume calculation in m dimensions. More...
#include <shark/Algorithms/DirectSearch/HypervolumeCalculator.h>
Public Member Functions | |
HypervolumeCalculator () | |
Default c'tor. More... | |
template<typename Archive > | |
void | serialize (Archive &archive, const std::size_t version) |
Serializes/Deserializes the state of the calculator to the supplied archive. More... | |
template<typename Set , typename Extractor , typename VectorType > | |
double | operator() (Extractor const &extractor, const Set &set, const VectorType &refPoint) |
Executes the algorithm. More... | |
Static Public Member Functions | |
static double | runtime (std::size_t noPoints, std::size_t noObjectives) |
Returns an estimate on the runtime of the algorithm. More... | |
Implementation of the exact hypervolume calculation in m dimensions.
The algorithm is described in
Nicola Beume und Günter Rudolph. Faster S-Metric Calculation by Considering Dominated Hypervolume as Klee's Measure Problem. In: B. Kovalerchuk (ed.): Proceedings of the Second IASTED Conference on Computational Intelligence (CI 2006), pp. 231-236. ACTA Press: Anaheim, 2006.
Definition at line 67 of file HypervolumeCalculator.h.
|
inline |
Default c'tor.
Definition at line 83 of file HypervolumeCalculator.h.
double shark::HypervolumeCalculator::operator() | ( | Extractor const & | extractor, |
const Set & | set, | ||
const VectorType & | refPoint | ||
) |
Executes the algorithm.
[in] | extractor | Function object \(f\)to "project" elements of the set to \(\mathbb{R}^m\). |
[in] | set | The set \(S\) of points for which the following assumption needs to hold: \(\forall s \in S: \lnot \exists s' \in S: f( s' ) \preceq f( s ) \) |
[in] | refPoint | The reference point \(\vec{r} \in \mathbb{R}^m\) for the hypervolume calculation, needs to fulfill: \( \forall s \in S: s \preceq \vec{r}\). . |
Referenced by serialize().
|
inlinestatic |
Returns an estimate on the runtime of the algorithm.
[in] | noPoints | The number of points n considered in the runtime estimation. |
[in] | noObjectives | The number of objectives m considered in the runtime estimation. |
Definition at line 74 of file HypervolumeCalculator.h.
|
inline |
Serializes/Deserializes the state of the calculator to the supplied archive.
Archive | Archive type, needs to be a model of a boost::serialization archive. |
[in,out] | archive | Archive to store to/load from. |
[in] | version | Currently unused. |
Definition at line 93 of file HypervolumeCalculator.h.
References h, shark::blas::min(), shark::blas::noalias(), operator()(), and shark::size().