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. | |
| 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. | |
| 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. | |
| 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. | |
Finds the hypervolume contribution for points in MD.
This implementation is slightly less naive. Instead of calculating 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.
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 157 of file HypervolumeContributionMD.h.
References SHARK_CRITICAL_REGION, SHARK_PARALLEL_FOR, and SHARK_RUNTIME_CHECK.
| 
 | 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] | k | Number of points. | 
| [in] | ref | 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 81 of file HypervolumeContributionMD.h.
References SHARK_PARALLEL_FOR, and SHARK_RUNTIME_CHECK.
Referenced by shark::HypervolumeContribution::largest(), and shark::HypervolumeContribution::largest().
| 
 | 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 110 of file HypervolumeContributionMD.h.
References SHARK_CRITICAL_REGION, SHARK_PARALLEL_FOR, and 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] | ref | 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 53 of file HypervolumeContributionMD.h.
References SHARK_PARALLEL_FOR, and SHARK_RUNTIME_CHECK.
Referenced by shark::HypervolumeContribution::smallest(), and shark::HypervolumeContribution::smallest().