Finds the hypervolume contribution for points in MD. More...
#include <shark/Algorithms/DirectSearch/Operators/Hypervolume/HypervolumeContributionMD.h>
Public Member Functions | |
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. 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. 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. 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. More... | |
Finds the hypervolume contribution for points in MD.
This implementation is slightly less naive. Instead of calculating Con{x S}=Hyp{S}-Hyp{S/x} directly, we restrict the volume dominated by points in S to be inside the box [x,ref]. This leads to points in S not being relevant for the computation and thus can be discarded using a simple dominance test.
Definition at line 46 of file HypervolumeContributionMD.h.
|
inline |
Returns the index of the points with largest contribution.
[in] | points | The set \(S\) of points from which to select the smallest contributor. |
[in] | referencePointThe | 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 80 of file HypervolumeContributionMD.h.
References SHARK_PARALLEL_FOR, and SHARK_RUNTIME_CHECK.
Referenced by shark::HypervolumeContribution::largest().
|
inline |
Returns the index of the points with largest 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. |
Definition at line 156 of file HypervolumeContributionMD.h.
References SHARK_RUNTIME_CHECK.
|
inline |
Returns the index of the points with smallest contribution.
[in] | points | The set \(S\) of points from which to select the smallest contributor. |
[in] | k | The number of points to select. |
[in] | referencePointThe | 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 53 of file HypervolumeContributionMD.h.
References SHARK_PARALLEL_FOR, and SHARK_RUNTIME_CHECK.
Referenced by shark::HypervolumeContribution::smallest().
|
inline |
Returns the index of the points with smallest 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. |
Definition at line 109 of file HypervolumeContributionMD.h.
References SHARK_RUNTIME_CHECK.