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 |
Calculates the hypervolume covered by a front of non-dominated points.
Definition at line 48 of file HypervolumeIndicator.h.
|
inline |
Determines the individual contributing the least to the front it belongs to.
[in] | extractor | Maps the individuals to the objective space. |
[in] | front | The front of non-dominated individuals. |
[in] | referencePoint | reference for measuring the hypervolume |
Definition at line 87 of file HypervolumeIndicator.h.
References shark::blas::distance(), and SHARK_PARALLEL_FOR.
Referenced by leastContributor().
|
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.
[in] | extractor | Extracts point information from front elements. |
[in] | front | pareto front of points |
Definition at line 115 of file HypervolumeIndicator.h.
References leastContributor(), and m_reference.
|
inline |
Calculates the volume of a hyperfront using a reference point.
[in,out] | extractor | Extractor instance that maps elements of the front to \(\mathbb{R}^d\). |
[in] | front | pareto front of points to calculate the hypervolume for. |
[in] | referencePoint | reference for measuring the hypervolume |
Definition at line 59 of file HypervolumeIndicator.h.
References m_hv.
|
inline |
Executes the algorithm and calls to an instance of HypervolumeCalculator.
This version uses the reference point estimated by the last call to updateInternals.
[in] | extractor | Extractor instance that maps elements of the front to \(\mathbb{R}^d\). |
[in] | front | front of points to calculate the hypervolume for. |
Definition at line 75 of file HypervolumeIndicator.h.
References m_reference.
|
inline |
Serializes/Deserializes the state of the indicator to the supplied archive.
Archive | Archive type, needs to be a model of a boost::serialization archive. |
[in,out] | archive | Archive to store to/load from. |
[in] | version | Currently unused. |
Definition at line 149 of file HypervolumeIndicator.h.
References m_hv, and m_reference.
|
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
extractor | Extracts point information from set. |
set | The set of points. |
Definition at line 127 of file HypervolumeIndicator.h.
References m_reference, shark::blas::max(), and shark::blas::noalias().
HypervolumeCalculator shark::HypervolumeIndicator::m_hv |
Definition at line 154 of file HypervolumeIndicator.h.
Referenced by operator()(), and serialize().
RealVector shark::HypervolumeIndicator::m_reference |
Definition at line 155 of file HypervolumeIndicator.h.
Referenced by leastContributor(), operator()(), serialize(), and updateInternals().