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

Detailed Description

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.

Member Function Documentation

◆ largest() [1/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 157 of file HypervolumeContributionMD.h.

References SHARK_CRITICAL_REGION, SHARK_PARALLEL_FOR, and SHARK_RUNTIME_CHECK.

◆ largest() [2/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]kNumber of points.
[in]refThe 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().

◆ smallest() [1/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 110 of file HypervolumeContributionMD.h.

References SHARK_CRITICAL_REGION, SHARK_PARALLEL_FOR, and SHARK_RUNTIME_CHECK.

◆ smallest() [2/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]refThe 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().


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