shark::HypervolumeApproximator Struct Reference

Implements an FPRAS for approximating the volume of a set of high-dimensional objects. The algorithm is described in. More...

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

## Public Member Functions

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

double epsilon () const

double & epsilon ()

double delta () const

double & delta ()

template<typename Set , typename VectorType >
double operator() (Set const &points, VectorType const &refPoint)
Executes the algorithm. More...

## Detailed Description

Implements an FPRAS for approximating the volume of a set of high-dimensional objects. The algorithm is described in.

Bringmann, Karl, and Tobias Friedrich. "Approximating the volume of unions and intersections of high-dimensional geometric objects." Algorithms and Computation. Springer Berlin Heidelberg, 2008. 436-447.

The algorithm computes an approximation of the true Volume V, V' that fulfills

$P((1-epsilon)V < V' <(1+epsilon)V') < 1-\delta$

Definition at line 52 of file HypervolumeApproximator.h.

## ◆ delta() [1/2]

 double shark::HypervolumeApproximator::delta ( ) const
inline

## ◆ delta() [2/2]

 double& shark::HypervolumeApproximator::delta ( )
inline

Definition at line 71 of file HypervolumeApproximator.h.

## ◆ epsilon() [1/2]

 double shark::HypervolumeApproximator::epsilon ( ) const
inline

## ◆ epsilon() [2/2]

 double& shark::HypervolumeApproximator::epsilon ( )
inline

Definition at line 63 of file HypervolumeApproximator.h.

## ◆ operator()()

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

Executes the algorithm.

Parameters
 [in] e Function object $$f$$to "project" elements of the set to $$\mathbb{R}^n$$. [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}^n$$ for the hypervolume calculation, needs to fulfill: $$\forall s \in S: s \preceq \vec{r}$$. .

Definition at line 80 of file HypervolumeApproximator.h.

References delta(), epsilon(), SHARK_RUNTIME_CHECK, and shark::sqr().

## ◆ serialize()

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

Definition at line 55 of file HypervolumeApproximator.h.

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