shark::HypervolumeCalculator Struct Reference

Frontend for hypervolume calculation algorithms in m dimensions. More...

#include <shark/Algorithms/DirectSearch/Operators/Hypervolume/HypervolumeCalculator.h>

Public Member Functions

 HypervolumeCalculator ()
 Default c'tor. More...
 
void useApproximation (bool useApproximation)
 True if the hypervolume approximation is to be used in dimensions > 3. More...
 
double approximationEpsilon () const
 
double & approximationEpsilon ()
 
double approximationDelta () const
 
double & approximationDelta ()
 
template<typename Archive >
void serialize (Archive &archive, const unsigned int version)
 
template<typename Points , typename VectorType >
double operator() (Points const &points, VectorType const &refPoint)
 Executes the algorithm. More...
 

Detailed Description

Frontend for hypervolume calculation algorithms in m dimensions.

Depending on the dimensionality of the problem, one of the specialized algorithms is called. For large dimensionalities for which there are no specialized fast algorithms, either the exponential time or the approximated algorithm is called based on the choice of algorithm

Definition at line 46 of file HypervolumeCalculator.h.

Constructor & Destructor Documentation

◆ HypervolumeCalculator()

shark::HypervolumeCalculator::HypervolumeCalculator ( )
inline

Default c'tor.

Definition at line 49 of file HypervolumeCalculator.h.

Member Function Documentation

◆ approximationDelta() [1/2]

double shark::HypervolumeCalculator::approximationDelta ( ) const
inline

Definition at line 63 of file HypervolumeCalculator.h.

References shark::HypervolumeApproximator::delta().

◆ approximationDelta() [2/2]

double& shark::HypervolumeCalculator::approximationDelta ( )
inline

Definition at line 67 of file HypervolumeCalculator.h.

References shark::HypervolumeApproximator::delta().

◆ approximationEpsilon() [1/2]

double shark::HypervolumeCalculator::approximationEpsilon ( ) const
inline

Definition at line 56 of file HypervolumeCalculator.h.

References shark::HypervolumeApproximator::epsilon().

◆ approximationEpsilon() [2/2]

double& shark::HypervolumeCalculator::approximationEpsilon ( )
inline

Definition at line 59 of file HypervolumeCalculator.h.

References shark::HypervolumeApproximator::epsilon().

◆ operator()()

template<typename Points , typename VectorType >
double shark::HypervolumeCalculator::operator() ( Points const &  points,
VectorType const &  refPoint 
)
inline

Executes the algorithm.

Parameters
[in]pointsThe set \(S\) of points for which the following assumption needs to hold: \(\forall s \in S: \lnot \exists s' \in S: s' \preceq s \)
[in]refPointThe reference point \(\vec{r} \in \mathbb{R}^n\) for the hypervolume calculation, needs to fulfill: \( \forall s \in S: s \preceq \vec{r}\). .

Definition at line 81 of file HypervolumeCalculator.h.

References SIZE_CHECK.

◆ serialize()

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

Definition at line 72 of file HypervolumeCalculator.h.

◆ useApproximation()

void shark::HypervolumeCalculator::useApproximation ( bool  useApproximation)
inline

True if the hypervolume approximation is to be used in dimensions > 3.

Definition at line 52 of file HypervolumeCalculator.h.


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