Implementation of the exact hypervolume subset selection algorithm in 2 dimensions. More...
#include <shark/Algorithms/DirectSearch/Operators/Hypervolume/HypervolumeSubsetSelection2D.h>
Public Member Functions  
template<typename Set , typename SelectedSet , typename VectorType >  
void  operator() (Set const &points, SelectedSet &selected, std::size_t k, VectorType const &refPoint) 
Executes the algorithm. While this algorithm in general accepts fronts with dominated points in it, the caller has to ensure that after domination checks there are at least as many points left as there are to select. The Algorithm will throw an exception otherwise. More...  
template<typename Set , typename SelectedSet >  
void  operator() (Set const &points, SelectedSet &selected, std::size_t k) 
Executes the algorithm. More...  
Implementation of the exact hypervolume subset selection algorithm in 2 dimensions.
This algorithm solves the problem of selecting a subset of points with largest hypervolume in 2D. The algorithm has complexity n (k+log(n))
While this algorithm accepts fronts with dominated points in it, the caller has to ensure that after domination checks there are at least as many points left as there are to select. The Algorithm will throw an exception otherwise.
This can easily be ensured by removing the nondominated points prior to calling this function.
The algorithm is described in: Bringmann, Karl, Tobias Friedrich, and Patrick Klitzke. "Twodimensional subset selection for hypervolume and epsilonindicator." Proceedings of the 2014 conference on Genetic and evolutionary computation. ACM, 2014. (although it is not very helpful)
Definition at line 54 of file HypervolumeSubsetSelection2D.h.

inline 
Executes the algorithm. While this algorithm in general accepts fronts with dominated points in it, the caller has to ensure that after domination checks there are at least as many points left as there are to select. The Algorithm will throw an exception otherwise.
This can easily be ensured by removing the nondominated points prior to calling this function.
[in]  points  The set \(S\) of points to select 
[out]  selected  set of the same size as the set of points indicating whether the point is selected (1) or not (0) 
[in]  k  number of points to select. Must be lrger than 0 
[in]  refPoint  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 256 of file HypervolumeSubsetSelection2D.h.
References SHARK_RUNTIME_CHECK, and SIZE_CHECK.

inline 
Executes the algorithm.
This version does not use a reference point. instead the extreme points are always kept which implicitely defines a reference point that after domination checks there are at least as many points left as there are to select. The Algorithm will throw an exception otherwise.
This can easily be ensured by removing the nondominated points prior to calling this function.
[in]  points  The set \(S\) of points to select 
[out]  selected  set of the same size as the set of points indicating whether the point is selected (1) or not (0) 
[in]  k  number of points to select, must be larger or equal 2 
Definition at line 290 of file HypervolumeSubsetSelection2D.h.
References SHARK_RUNTIME_CHECK, and SIZE_CHECK.