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... | |
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.
|
inline |
Definition at line 67 of file HypervolumeApproximator.h.
Referenced by shark::HypervolumeCalculator::approximationDelta(), and operator()().
|
inline |
Definition at line 71 of file HypervolumeApproximator.h.
|
inline |
Definition at line 60 of file HypervolumeApproximator.h.
Referenced by shark::HypervolumeCalculator::approximationEpsilon(), and operator()().
|
inline |
Definition at line 63 of file HypervolumeApproximator.h.
|
inline |
Executes the algorithm.
[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().
|
inline |
Definition at line 55 of file HypervolumeApproximator.h.