shark::ReferenceVectorGuidedSelection< IndividualType > Struct Template Reference

Implements the reference vector selection for the RVEA algorithm. More...

#include <shark/Algorithms/DirectSearch/Operators/Selection/ReferenceVectorGuidedSelection.h>

Public Types

typedef std::set< std::size_t > bag_t
 

Public Member Functions

void operator() (std::vector< IndividualType > &population, RealMatrix const &referenceVectors, RealVector const &gammas, std::size_t const curIteration)
 Select individuals by marking them as "selected".
 
template<typename Archive >
void serialize (Archive &archive)
 

Static Public Member Functions

static std::vector< bag_tpopulationPartition (RealMatrix const &cosAngles)
 Associates a population to a set of reference vectors.
 
static RealMatrix extractPopulationFitness (std::vector< IndividualType > const &population)
 
static RealVector minCol (RealMatrix const &m)
 
static RealMatrix cosAngles (RealMatrix const &m1, RealMatrix const &m2)
 Compute cosine of angles between all row vectors in two matrices.
 

Public Attributes

double m_alpha
 
std::size_t m_maxIters
 

Detailed Description

template<typename IndividualType>
struct shark::ReferenceVectorGuidedSelection< IndividualType >

Implements the reference vector selection for the RVEA algorithm.

This selector uses a set of unit reference vectors to partition the search space by assigning to each reference vector the individual that is "closest" to it, as measured by the angle-penalized distance. See below paper for details: R. Cheng, Y. Jin, M. Olhofer, and B. Sendhoff, “A reference vector guided evolutionary algorithm for many-objective optimization,” IEEE Transactions on Evolutionary Computation, Vol 20, Issue 5, October 2016 http://dx.doi.org/10.1109/TEVC.2016.2519378

Definition at line 53 of file ReferenceVectorGuidedSelection.h.

Member Typedef Documentation

◆ bag_t

template<typename IndividualType >
typedef std::set<std::size_t> shark::ReferenceVectorGuidedSelection< IndividualType >::bag_t

Definition at line 55 of file ReferenceVectorGuidedSelection.h.

Member Function Documentation

◆ cosAngles()

template<typename IndividualType >
static RealMatrix shark::ReferenceVectorGuidedSelection< IndividualType >::cosAngles ( RealMatrix const &  m1,
RealMatrix const &  m2 
)
inlinestatic

◆ extractPopulationFitness()

template<typename IndividualType >
static RealMatrix shark::ReferenceVectorGuidedSelection< IndividualType >::extractPopulationFitness ( std::vector< IndividualType > const &  population)
inlinestatic

◆ minCol()

template<typename IndividualType >
static RealVector shark::ReferenceVectorGuidedSelection< IndividualType >::minCol ( RealMatrix const &  m)
inlinestatic

◆ operator()()

template<typename IndividualType >
void shark::ReferenceVectorGuidedSelection< IndividualType >::operator() ( std::vector< IndividualType > &  population,
RealMatrix const &  referenceVectors,
RealVector const &  gammas,
std::size_t const  curIteration 
)
inline

◆ populationPartition()

template<typename IndividualType >
static std::vector< bag_t > shark::ReferenceVectorGuidedSelection< IndividualType >::populationPartition ( RealMatrix const &  cosAngles)
inlinestatic

Associates a population to a set of reference vectors.

The parameter is an N-by-M matrix where N is the population size and M is the number of reference vectors. Entry (i,j) is the cosine of the angle between population i and reference vector j.

Definition at line 129 of file ReferenceVectorGuidedSelection.h.

References shark::ReferenceVectorGuidedSelection< IndividualType >::cosAngles().

Referenced by shark::ReferenceVectorGuidedSelection< IndividualType >::operator()().

◆ serialize()

Member Data Documentation

◆ m_alpha

◆ m_maxIters


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