shark::HypervolumeContribution3D Struct Reference

Finds the hypervolume contribution for points in 3DD. More...

#include <shark/Algorithms/DirectSearch/Operators/Hypervolume/HypervolumeContribution3D.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 as well as their 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 as well as their 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 as well as their 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 as well as their contribution. More...
 

Detailed Description

Finds the hypervolume contribution for points in 3DD.

The algorithm sweeps ascending through the z-direction and keeps track of of the current cut through the volume at a given z-value. the cut is partitioned in boxes representing parts of the hypervolume that is not hared with any other point. thus the sum of the volume of all boxes belonging to a point is making up its hypervolume.

The algorithm runs in O(n log(n)) time.

Definition at line 50 of file HypervolumeContribution3D.h.

Member Function Documentation

◆ largest() [1/2]

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

Returns the index of the points with largest contribution as well as their contribution.

Parameters
[in]pointsThe set \(S\) of points from which to select the largest 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 354 of file HypervolumeContribution3D.h.

Referenced by shark::HypervolumeContribution::largest().

◆ largest() [2/2]

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

Returns the index of the points with largest contribution as well as their 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 largest contributor.
[in]kThe number of points to select.

Definition at line 380 of file HypervolumeContribution3D.h.

References SHARK_RUNTIME_CHECK.

◆ smallest() [1/2]

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

Returns the index of the points with smallest contribution as well as their 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 280 of file HypervolumeContribution3D.h.

References SHARK_RUNTIME_CHECK.

Referenced by shark::HypervolumeContribution::smallest().

◆ smallest() [2/2]

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

Returns the index of the points with smallest contribution as well as their 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 305 of file HypervolumeContribution3D.h.

References SHARK_RUNTIME_CHECK.


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