shark::HypervolumeContributionMD Struct Reference

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...
 

Detailed Description

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.

Member Function Documentation

◆ largest() [1/2]

template<class Set , typename VectorType >
std::vector<KeyValuePair<double,std::size_t> > shark::HypervolumeContributionMD::largest ( Set const &  points,
std::size_t  k,
VectorType const &  ref 
) const
inline

Returns the index of the points with largest contribution.

Parameters
[in]pointsThe set \(S\) of points from which to select the smallest contributor.
[in]referencePointThereference 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().

◆ largest() [2/2]

template<class Set >
std::vector<KeyValuePair<double,std::size_t> > shark::HypervolumeContributionMD::largest ( Set const &  points,
std::size_t  k 
) const
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.

Parameters
[in]pointsThe set \(S\) of points from which to select the smallest contributor.
[in]kThe number of points to select.

Definition at line 156 of file HypervolumeContributionMD.h.

References SHARK_RUNTIME_CHECK.

◆ smallest() [1/2]

template<class Set , typename VectorType >
std::vector<KeyValuePair<double,std::size_t> > shark::HypervolumeContributionMD::smallest ( Set const &  points,
std::size_t  k,
VectorType const &  ref 
) const
inline

Returns the index of the points with smallest contribution.

Parameters
[in]pointsThe set \(S\) of points from which to select the smallest contributor.
[in]kThe number of points to select.
[in]referencePointThereference 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().

◆ smallest() [2/2]

template<class Set >
std::vector<KeyValuePair<double,std::size_t> > shark::HypervolumeContributionMD::smallest ( Set const &  points,
std::size_t  k 
) const
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.

Parameters
[in]pointsThe set \(S\) of points from which to select the smallest contributor.
[in]kThe number of points to select.

Definition at line 109 of file HypervolumeContributionMD.h.

References SHARK_RUNTIME_CHECK.


The documentation for this struct was generated from the following file: