shark::HypervolumeApproximator< Rng > Struct Template Reference

Implements an FPRAS for approximating the volume of a set of high-dimensional objects. More...

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

Public Member Functions

template<typename Iterator , typename Extractor , typename VectorType >
double operator() (Iterator begin, Iterator end, Extractor e, const VectorType &referencePoint, double eps=HypervolumeApproximator::DEFAULT_EPSILON, double delta=HypervolumeApproximator::DEFAULT_DELTA) const
 Approximates the volume of the union of high-dimensional axis-parallel boxes. More...
 

Static Public Attributes

static double DEFAULT_EPSILON = 1E-2
 Default error bound. More...
 
static double DEFAULT_DELTA = 0.1
 Default error probability. More...
 

Detailed Description

template<typename Rng>
struct shark::HypervolumeApproximator< Rng >

Implements an FPRAS for approximating the volume of a set of high-dimensional objects.

See Bringmann, Friedrich: Approximating the volume of unions and intersections of high-dimensional geometric objects, Computational Geometry, Volume 43, 2010, 601-610. and refer to the unit tests for examples:

Template Parameters
RngThe type of the random number generator. Please note that the performance of the algorithm is determined by the speed of the RNG.

Definition at line 51 of file HypervolumeApproximator.h.

Member Function Documentation

§ operator()()

template<typename Rng >
template<typename Iterator , typename Extractor , typename VectorType >
double shark::HypervolumeApproximator< Rng >::operator() ( Iterator  begin,
Iterator  end,
Extractor  e,
const VectorType referencePoint,
double  eps = HypervolumeApproximator< Rng >::DEFAULT_EPSILON,
double  delta = HypervolumeApproximator< Rng >::DEFAULT_DELTA 
) const
inline

Approximates the volume of the union of high-dimensional axis-parallel boxes.

Template Parameters
IteratorType of the iterator over the range of axis-parallel boxes.
ExtractorExtractor type for extracting point information from objects.
Parameters
[in]beginIterator to the beginning of the range of boxes.
[in]endIterator pointer after the last valid box.
[in]eExtractor instance
[in]referencePointMinimization is considered and the reference point usually is chosen as the Nadir-point.
[in]epsError bound, default value: \(10^{-2}\).
[in]deltaError probability, default value: \(10^{-2}\).
Returns
The volume or a negative value if the range of objects is empty.

Definition at line 80 of file HypervolumeApproximator.h.

References shark::blas::distance(), and shark::uni().

Member Data Documentation

§ DEFAULT_DELTA

template<typename Rng >
double shark::HypervolumeApproximator< T >::DEFAULT_DELTA = 0.1
static

Default error probability.

Definition at line 61 of file HypervolumeApproximator.h.

§ DEFAULT_EPSILON

template<typename Rng >
double shark::HypervolumeApproximator< T >::DEFAULT_EPSILON = 1E-2
static

Default error bound.

Definition at line 56 of file HypervolumeApproximator.h.


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