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". More...
 
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. More...
 
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. More...
 

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

Compute cosine of angles between all row vectors in two matrices.

Definition at line 169 of file ReferenceVectorGuidedSelection.h.

◆ 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

Select individuals by marking them as "selected".

The selection operator requires the set of reference vectors, the set of least angles between reference vectors (the gammas), as well as the current iteration number.

Definition at line 64 of file ReferenceVectorGuidedSelection.h.

◆ 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.

◆ serialize()

template<typename IndividualType>
template<typename Archive >
void shark::ReferenceVectorGuidedSelection< IndividualType >::serialize ( Archive &  archive)
inline

Definition at line 180 of file ReferenceVectorGuidedSelection.h.

Member Data Documentation

◆ m_alpha

◆ m_maxIters

template<typename IndividualType>
std::size_t shark::ReferenceVectorGuidedSelection< IndividualType >::m_maxIters

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