shark::HypervolumeIndicator Struct Reference

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

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

Public Member Functions

template<typename Extractor , typename ParetoFrontType , typename VectorType >
double operator() (Extractor const &extractor, ParetoFrontType const &front, VectorType const &referencePoint)
 Calculates the volume of a hyperfront using a reference point. More...
 
template<typename Extractor , typename ParetoFrontType >
double operator() (Extractor const &extractor, ParetoFrontType const &front)
 Executes the algorithm and calls to an instance of HypervolumeCalculator. More...
 
template<typename Extractor , typename ParetoFrontType , typename VectorType >
std::size_t leastContributor (Extractor const &extractor, ParetoFrontType const &front, VectorType const &referencePoint)
 Determines the individual contributing the least to the front it belongs to. More...
 
template<typename Extractor , typename ParetoFrontType >
std::size_t leastContributor (Extractor const &extractor, ParetoFrontType const &front)
 Determines the point contributing the least hypervolume to the overall front of points. More...
 
template<typename Extractor , typename PointSet >
void updateInternals (Extractor const &extractor, PointSet const &set)
 Updates the internal variables of the indicator using a whole population. More...
 
template<typename Archive >
void serialize (Archive &archive, const unsigned int version)
 Serializes/Deserializes the state of the indicator to the supplied archive. More...
 

Public Attributes

HypervolumeCalculator m_hv
 
RealVector m_reference
 

Detailed Description

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

Definition at line 48 of file HypervolumeIndicator.h.

Member Function Documentation

§ leastContributor() [1/2]

template<typename Extractor , typename ParetoFrontType , typename VectorType >
std::size_t shark::HypervolumeIndicator::leastContributor ( Extractor const &  extractor,
ParetoFrontType const &  front,
VectorType const &  referencePoint 
)
inline

Determines the individual contributing the least to the front it belongs to.

Parameters
[in]extractorMaps the individuals to the objective space.
[in]frontThe front of non-dominated individuals.
[in]referencePointreference for measuring the hypervolume

Definition at line 87 of file HypervolumeIndicator.h.

References shark::blas::distance(), and SHARK_PARALLEL_FOR.

Referenced by leastContributor().

§ leastContributor() [2/2]

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

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

This version uses the reference point estimated by the last call to updateInternals.

Parameters
[in]extractorExtracts point information from front elements.
[in]frontpareto front of points

Definition at line 115 of file HypervolumeIndicator.h.

References leastContributor(), and m_reference.

§ operator()() [1/2]

template<typename Extractor , typename ParetoFrontType , typename VectorType >
double shark::HypervolumeIndicator::operator() ( Extractor const &  extractor,
ParetoFrontType const &  front,
VectorType const &  referencePoint 
)
inline

Calculates the volume of a hyperfront using a reference point.

Parameters
[in,out]extractorExtractor instance that maps elements of the front to \(\mathbb{R}^d\).
[in]frontpareto front of points to calculate the hypervolume for.
[in]referencePointreference for measuring the hypervolume

Definition at line 59 of file HypervolumeIndicator.h.

References m_hv.

§ operator()() [2/2]

template<typename Extractor , typename ParetoFrontType >
double shark::HypervolumeIndicator::operator() ( Extractor const &  extractor,
ParetoFrontType const &  front 
)
inline

Executes the algorithm and calls to an instance of HypervolumeCalculator.

This version uses the reference point estimated by the last call to updateInternals.

Parameters
[in]extractorExtractor instance that maps elements of the front to \(\mathbb{R}^d\).
[in]frontfront of points to calculate the hypervolume for.

Definition at line 75 of file HypervolumeIndicator.h.

References m_reference.

§ serialize()

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

Serializes/Deserializes the state of the indicator to the supplied archive.

Template Parameters
ArchiveArchive type, needs to be a model of a boost::serialization archive.
Parameters
[in,out]archiveArchive to store to/load from.
[in]versionCurrently unused.

Definition at line 149 of file HypervolumeIndicator.h.

References m_hv, and m_reference.

§ updateInternals()

template<typename Extractor , typename PointSet >
void shark::HypervolumeIndicator::updateInternals ( Extractor const &  extractor,
PointSet const &  set 
)
inline

Updates the internal variables of the indicator using a whole population.

Calculates the reference point of the volume from the population using the maximum value in every dimension+1

Parameters
extractorExtracts point information from set.
setThe set of points.

Definition at line 127 of file HypervolumeIndicator.h.

References m_reference, shark::blas::max(), and shark::blas::noalias().

Member Data Documentation

§ m_hv

HypervolumeCalculator shark::HypervolumeIndicator::m_hv

Definition at line 154 of file HypervolumeIndicator.h.

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

§ m_reference

RealVector shark::HypervolumeIndicator::m_reference

Definition at line 155 of file HypervolumeIndicator.h.

Referenced by leastContributor(), operator()(), serialize(), and updateInternals().


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