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.

Member Function Documentation

◆ 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]eFunction object \(f\)to "project" elements of the set to \(\mathbb{R}^n\).
[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}^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: