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_t > | populationPartition (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 |
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.
typedef std::set<std::size_t> shark::ReferenceVectorGuidedSelection< IndividualType >::bag_t |
Definition at line 55 of file ReferenceVectorGuidedSelection.h.
|
inlinestatic |
Compute cosine of angles between all row vectors in two matrices.
Definition at line 169 of file ReferenceVectorGuidedSelection.h.
|
inlinestatic |
Definition at line 144 of file ReferenceVectorGuidedSelection.h.
Referenced by shark::ReferenceVectorGuidedSelection< shark::Individual >::operator()().
|
inlinestatic |
Definition at line 156 of file ReferenceVectorGuidedSelection.h.
Referenced by shark::ReferenceVectorGuidedSelection< shark::Individual >::operator()().
|
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.
|
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.
|
inline |
Definition at line 180 of file ReferenceVectorGuidedSelection.h.
double shark::ReferenceVectorGuidedSelection< IndividualType >::m_alpha |
Definition at line 186 of file ReferenceVectorGuidedSelection.h.
Referenced by shark::ReferenceVectorGuidedSelection< shark::Individual >::serialize().
std::size_t shark::ReferenceVectorGuidedSelection< IndividualType >::m_maxIters |
Definition at line 187 of file ReferenceVectorGuidedSelection.h.
Referenced by shark::ReferenceVectorGuidedSelection< shark::Individual >::serialize().