shark::HypervolumeCalculator Struct Reference

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

Detailed Description

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.

Constructor & Destructor Documentation

§ HypervolumeCalculator()

shark::HypervolumeCalculator::HypervolumeCalculator ( )
inline

Default c'tor.

Definition at line 83 of file HypervolumeCalculator.h.

Member Function Documentation

§ operator()()

template<typename Set , typename Extractor , typename VectorType >
double shark::HypervolumeCalculator::operator() ( Extractor const &  extractor,
const Set &  set,
const VectorType refPoint 
)

Executes the algorithm.

Parameters
[in]extractorFunction object \(f\)to "project" elements of the set to \(\mathbb{R}^m\).
[in]setThe 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]refPointThe 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().

§ runtime()

static double shark::HypervolumeCalculator::runtime ( std::size_t  noPoints,
std::size_t  noObjectives 
)
inlinestatic

Returns an estimate on the runtime of the algorithm.

Parameters
[in]noPointsThe number of points n considered in the runtime estimation.
[in]noObjectivesThe number of objectives m considered in the runtime estimation.

Definition at line 74 of file HypervolumeCalculator.h.

§ serialize()

template<typename Archive >
void shark::HypervolumeCalculator::serialize ( Archive &  archive,
const std::size_t  version 
)
inline

Serializes/Deserializes the state of the calculator to the supplied archive.

Template Parameters
ArchiveArchive type, needs to be a model of a boost::serialization archive.
Parameters
[in,out]archiveArchive to store to/load from.
[in]versionCurrently unused.

Definition at line 93 of file HypervolumeCalculator.h.

References h, shark::blas::min(), shark::blas::noalias(), operator()(), and shark::size().


The documentation for this struct was generated from the following file: