Frontend for hypervolume contribution algorithms in m dimensions. More...
#include <shark/Algorithms/DirectSearch/Operators/Hypervolume/HypervolumeContribution.h>
Public Member Functions | |
HypervolumeContribution () | |
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<class Set , typename VectorType > | |
std::vector< KeyValuePair< double, std::size_t > > | smallest (Set const &points, std::size_t k, VectorType const &ref) const |
Returns the index of the points with smallest contribution as well as their contribution. More... | |
template<class Set , typename VectorType > | |
std::vector< KeyValuePair< double, std::size_t > > | largest (Set const &points, std::size_t k, VectorType const &ref) const |
Returns the index of the points with largest contribution as well as their contribution. More... | |
template<class Set > | |
std::vector< KeyValuePair< double, std::size_t > > | smallest (Set const &points, std::size_t k) const |
Returns the index of the points with smallest contribution as well as their contribution. More... | |
template<class Set > | |
std::vector< KeyValuePair< double, std::size_t > > | largest (Set const &points, std::size_t k) const |
Returns the index of the points with largest contribution as well as their contribution. More... | |
Frontend for hypervolume contribution 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, the exponential time algorithm is called. Also a log-transformation of points is supported
Definition at line 47 of file HypervolumeContribution.h.
|
inline |
Default c'tor.
Definition at line 50 of file HypervolumeContribution.h.
|
inline |
Definition at line 64 of file HypervolumeContribution.h.
References shark::HypervolumeContributionApproximator::delta().
Referenced by shark::HypervolumeIndicator::approximationDelta().
|
inline |
Definition at line 68 of file HypervolumeContribution.h.
References shark::HypervolumeContributionApproximator::delta().
|
inline |
Definition at line 57 of file HypervolumeContribution.h.
References shark::HypervolumeContributionApproximator::epsilon().
Referenced by shark::HypervolumeIndicator::approximationEpsilon().
|
inline |
Definition at line 60 of file HypervolumeContribution.h.
References shark::HypervolumeContributionApproximator::epsilon().
|
inline |
Returns the index of the points with largest contribution as well as their contribution.
[in] | points | The set \(S\) of points from which to select the largest contributor. |
[in] | referencePoint | The reference Point \(\vec{r} \in \mathbb{R}^2\) for the hypervolume calculation, needs to fulfill: \( \forall s \in S: s \preceq \vec{r}\). |
Definition at line 107 of file HypervolumeContribution.h.
References shark::HypervolumeContributionMD::largest(), shark::HypervolumeContribution2D::largest(), shark::HypervolumeContribution3D::largest(), SHARK_RUNTIME_CHECK, and SIZE_CHECK.
|
inline |
Returns the index of the points with largest contribution as well as their contribution.
As no reference point is given, the extremum points can not be computed and are never selected.
[in] | points | The set \(S\) of points from which to select the smallest contributor. |
[in] | referencePoint | The reference Point \(\vec{r} \in \mathbb{R}^2\) for the hypervolume calculation, needs to fulfill: \( \forall s \in S: s \preceq \vec{r}\). |
Definition at line 156 of file HypervolumeContribution.h.
References shark::HypervolumeContributionMD::largest(), shark::HypervolumeContribution2D::largest(), shark::HypervolumeContribution3D::largest(), and SHARK_RUNTIME_CHECK.
|
inline |
Definition at line 73 of file HypervolumeContribution.h.
|
inline |
Returns the index of the points with smallest contribution as well as their contribution.
[in] | points | The set \(S\) of points from which to select the smallest contributor. |
[in] | k | The number of points to select. |
[in] | referencePoint | The reference Point \(\vec{r} \in \mathbb{R}^2\) for the hypervolume calculation, needs to fulfill: \( \forall s \in S: s \preceq \vec{r}\). |
Definition at line 84 of file HypervolumeContribution.h.
References SHARK_RUNTIME_CHECK, SIZE_CHECK, shark::HypervolumeContributionMD::smallest(), shark::HypervolumeContribution2D::smallest(), shark::HypervolumeContributionApproximator::smallest(), and shark::HypervolumeContribution3D::smallest().
Referenced by shark::HypervolumeIndicator::leastContributor().
|
inline |
Returns the index of the points with smallest contribution as well as their contribution.
As no reference point is given, the extremum points can not be computed and are never selected.
[in] | points | The set \(S\) of points from which to select the smallest contributor. |
[in] | k | The number of points to select. |
[in] | referencePoint | The reference Point \(\vec{r} \in \mathbb{R}^2\) for the hypervolume calculation, needs to fulfill: \( \forall s \in S: s \preceq \vec{r}\). |
Definition at line 132 of file HypervolumeContribution.h.
References SHARK_RUNTIME_CHECK, shark::HypervolumeContributionMD::smallest(), shark::HypervolumeContribution2D::smallest(), shark::HypervolumeContributionApproximator::smallest(), and shark::HypervolumeContribution3D::smallest().
|
inline |
True if the hypervolume approximation is to be used in dimensions > 3.
Definition at line 53 of file HypervolumeContribution.h.
Referenced by shark::HypervolumeIndicator::useApproximation().