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.

## ◆ approximationDelta() [1/2]

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

Error probability for the approximative algorithm.

Definition at line 108 of file HypervolumeIndicator.h.

## ◆ approximationDelta() [2/2]

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

Error probability for the approximative algorithm.

Definition at line 113 of file HypervolumeIndicator.h.

## ◆ approximationEpsilon() [1/2]

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

Error bound for the approximative algorithm.

Definition at line 99 of file HypervolumeIndicator.h.

## ◆ approximationEpsilon() [2/2]

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

Error bound for the approximative algorithm.

Definition at line 103 of file HypervolumeIndicator.h.

## ◆ 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] front pareto 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 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.

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