shark::HypervolumeIndicator Struct Reference

Calculates the hypervolume covered by a front of non-dominated points. More...

#include <shark/Algorithms/DirectSearch/Operators/Indicators/HypervolumeIndicator.h>

Public Member Functions

template<typename ParetoFrontType , typename ParetoArchive >
std::size_t leastContributor (ParetoFrontType const &front, ParetoArchive const &) const
 Determines the point contributing the least hypervolume to the overall front of points. More...
 
template<typename ParetoFrontType , typename ParetoArchive >
std::vector< std::size_t > leastContributors (ParetoFrontType const &front, ParetoArchive const &archive, std::size_t K) const
 
template<class random >
void init (std::size_t, std::size_t, random &)
 
void setReference (RealVector const &newReference)
 Sets the reference point. More...
 
void useApproximation (bool useApproximation)
 Whether the approximtive algorithm should be used on large problems. More...
 
double approximationEpsilon () const
 Error bound for the approximative algorithm. More...
 
double & approximationEpsilon ()
 Error bound for the approximative algorithm. More...
 
double approximationDelta () const
 Error probability for the approximative algorithm. More...
 
double & approximationDelta ()
 Error probability for the approximative algorithm. More...
 
template<typename Archive >
void serialize (Archive &archive, const unsigned int version)
 

Detailed Description

Calculates the hypervolume covered by a front of non-dominated points.

If given, the Indicator uses a provided reference value that can be set via setReference. Otherwise, it is computed from the data by using the maximum value in the set. As this usually gives 0 contribution to the extremum points (i.e. the ones with best function value), those points are skipped when computing the contribution (i.e. extremum points are never selected). Note, that for boundary points that are not extrema, this does not hold and they are selected.

for problems with many objectives, an approximative algorithm can be used.

Definition at line 54 of file HypervolumeIndicator.h.

Member Function Documentation

◆ approximationDelta() [1/2]

double shark::HypervolumeIndicator::approximationDelta ( ) const
inline

Error probability for the approximative algorithm.

Definition at line 108 of file HypervolumeIndicator.h.

References shark::HypervolumeContribution::approximationDelta().

◆ approximationDelta() [2/2]

double& shark::HypervolumeIndicator::approximationDelta ( )
inline

Error probability for the approximative algorithm.

Definition at line 113 of file HypervolumeIndicator.h.

References shark::HypervolumeContribution::approximationDelta().

◆ approximationEpsilon() [1/2]

double shark::HypervolumeIndicator::approximationEpsilon ( ) const
inline

Error bound for the approximative algorithm.

Definition at line 99 of file HypervolumeIndicator.h.

References shark::HypervolumeContribution::approximationEpsilon().

◆ approximationEpsilon() [2/2]

double& shark::HypervolumeIndicator::approximationEpsilon ( )
inline

Error bound for the approximative algorithm.

Definition at line 103 of file HypervolumeIndicator.h.

References shark::HypervolumeContribution::approximationEpsilon().

◆ init()

template<class random >
void shark::HypervolumeIndicator::init ( std::size_t  ,
std::size_t  ,
random &   
)
inline

Definition at line 84 of file HypervolumeIndicator.h.

◆ leastContributor()

template<typename ParetoFrontType , typename ParetoArchive >
std::size_t shark::HypervolumeIndicator::leastContributor ( ParetoFrontType const &  front,
ParetoArchive const &   
) const
inline

Determines the point contributing the least hypervolume to the overall front of points.

Parameters
[in]frontpareto front of points

Definition at line 59 of file HypervolumeIndicator.h.

References shark::HypervolumeContribution::smallest().

Referenced by leastContributors().

◆ leastContributors()

template<typename ParetoFrontType , typename ParetoArchive >
std::vector<std::size_t> shark::HypervolumeIndicator::leastContributors ( ParetoFrontType const &  front,
ParetoArchive const &  archive,
std::size_t  K 
) const
inline

Definition at line 68 of file HypervolumeIndicator.h.

References leastContributor().

◆ serialize()

template<typename Archive >
void shark::HypervolumeIndicator::serialize ( Archive &  archive,
const unsigned int  version 
)
inline

Definition at line 118 of file HypervolumeIndicator.h.

◆ setReference()

void shark::HypervolumeIndicator::setReference ( RealVector const &  newReference)
inline

Sets the reference point.

If no point is set, it is estimated from the current front and the extremum points are never selected.

Definition at line 89 of file HypervolumeIndicator.h.

◆ useApproximation()

void shark::HypervolumeIndicator::useApproximation ( bool  useApproximation)
inline

Whether the approximtive algorithm should be used on large problems.

Definition at line 94 of file HypervolumeIndicator.h.

References shark::HypervolumeContribution::useApproximation().


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