shark::HypervolumeCalculatorMDHOY Struct Reference

Implementation of the exact hypervolume calculation in m dimensions. More...

#include <shark/Algorithms/DirectSearch/Operators/Hypervolume/HypervolumeCalculatorMDHOY.h>

Public Member Functions

template<typename Set , typename VectorType >
double operator() (Set const &points, VectorType const &refPoint)
 Executes the algorithm. More...
 
template<typename VectorType >
int covers (VectorType const &cuboid, VectorType const &regionLow)
 
template<typename VectorType >
int partCovers (VectorType const &cuboid, VectorType const &regionUp)
 
template<typename VectorType >
int containsBoundary (VectorType const &cub, VectorType const &regLow, int split)
 
template<typename VectorType >
double getMeasure (const VectorType &regionLow, const VectorType &regionUp)
 
template<typename VectorType >
int isPile (const VectorType &cuboid, const VectorType &regionLow, const VectorType &regionUp)
 
template<typename VectorType >
unsigned int binaryToInt (const VectorType &v)
 
template<typename VectorType >
void intToBinary (unsigned int i, VectorType &result)
 
template<typename VectorType >
double computeTrellis (const VectorType &regLow, const VectorType &regUp, const VectorType &trellis)
 
template<typename VectorType >
double getMedian (const VectorType &bounds, int length)
 
template<typename Set , typename VectorType >
double stream (const VectorType &regionLow, const VectorType &regionUp, const Set &points, int split, double cover)
 

Public Attributes

std::size_t m_sqrtNoPoints
 

Detailed Description

Implementation of the exact hypervolume calculation in m dimensions.

The algorithm is described in

Nicola Beume und Guenter Rudolph. Faster S-Metric Calculation by Considering Dominated Hypervolume as Klee's Measure Problem. In: B. Kovalerchuk (ed.): Proceedings of the Second IASTED Conference on Computational Intelligence (CI 2006), pp. 231-236. ACTA Press: Anaheim, 2006.

Definition at line 48 of file HypervolumeCalculatorMDHOY.h.

Member Function Documentation

◆ binaryToInt()

template<typename VectorType >
unsigned int shark::HypervolumeCalculatorMDHOY::binaryToInt ( const VectorType v)
inline

Definition at line 132 of file HypervolumeCalculatorMDHOY.h.

Referenced by computeTrellis().

◆ computeTrellis()

template<typename VectorType >
double shark::HypervolumeCalculatorMDHOY::computeTrellis ( const VectorType regLow,
const VectorType regUp,
const VectorType trellis 
)
inline

Definition at line 159 of file HypervolumeCalculatorMDHOY.h.

References binaryToInt(), and intToBinary().

Referenced by stream().

◆ containsBoundary()

template<typename VectorType >
int shark::HypervolumeCalculatorMDHOY::containsBoundary ( VectorType const &  cub,
VectorType const &  regLow,
int  split 
)
inline

Definition at line 94 of file HypervolumeCalculatorMDHOY.h.

Referenced by stream().

◆ covers()

template<typename VectorType >
int shark::HypervolumeCalculatorMDHOY::covers ( VectorType const &  cuboid,
VectorType const &  regionLow 
)
inline

Definition at line 76 of file HypervolumeCalculatorMDHOY.h.

Referenced by stream().

◆ getMeasure()

template<typename VectorType >
double shark::HypervolumeCalculatorMDHOY::getMeasure ( const VectorType regionLow,
const VectorType regionUp 
)
inline

Definition at line 108 of file HypervolumeCalculatorMDHOY.h.

Referenced by stream().

◆ getMedian()

template<typename VectorType >
double shark::HypervolumeCalculatorMDHOY::getMedian ( const VectorType bounds,
int  length 
)
inline

Definition at line 190 of file HypervolumeCalculatorMDHOY.h.

Referenced by stream().

◆ intToBinary()

template<typename VectorType >
void shark::HypervolumeCalculatorMDHOY::intToBinary ( unsigned int  i,
VectorType result 
)
inline

Definition at line 143 of file HypervolumeCalculatorMDHOY.h.

Referenced by computeTrellis().

◆ isPile()

template<typename VectorType >
int shark::HypervolumeCalculatorMDHOY::isPile ( const VectorType cuboid,
const VectorType regionLow,
const VectorType regionUp 
)
inline

Definition at line 117 of file HypervolumeCalculatorMDHOY.h.

Referenced by stream().

◆ operator()()

template<typename Set , typename VectorType >
double shark::HypervolumeCalculatorMDHOY::operator() ( Set const &  points,
VectorType const &  refPoint 
)
inline

Executes the algorithm.

Parameters
[in]setThe set \(S\) of points for which the following assumption needs to hold: \(\forall s \in S: \lnot \exists s' \in S: s' \preceq s \)
[in]refPointThe reference point \(\vec{r} \in \mathbb{R}^n\) for the hypervolume calculation, needs to fulfill: \( \forall s \in S: s \preceq \vec{r}\). .

Definition at line 54 of file HypervolumeCalculatorMDHOY.h.

References m_sqrtNoPoints, and SIZE_CHECK.

◆ partCovers()

template<typename VectorType >
int shark::HypervolumeCalculatorMDHOY::partCovers ( VectorType const &  cuboid,
VectorType const &  regionUp 
)
inline

Definition at line 85 of file HypervolumeCalculatorMDHOY.h.

Referenced by stream().

◆ stream()

template<typename Set , typename VectorType >
double shark::HypervolumeCalculatorMDHOY::stream ( const VectorType regionLow,
const VectorType regionUp,
const Set &  points,
int  split,
double  cover 
)
inline

Member Data Documentation

◆ m_sqrtNoPoints

std::size_t shark::HypervolumeCalculatorMDHOY::m_sqrtNoPoints

Definition at line 340 of file HypervolumeCalculatorMDHOY.h.

Referenced by operator()(), and stream().


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