shark::IndicatorBasedSteadyStateMOCMA< Indicator > Class Template Reference

Implements the \((\mu+1)\)-MO-CMA-ES. More...

#include <shark/Algorithms/DirectSearch/SteadyStateMOCMA.h>

+ Inheritance diagram for shark::IndicatorBasedSteadyStateMOCMA< Indicator >:

Public Types

enum  NotionOfSuccess { IndividualBased, PopulationBased }
 
- Public Types inherited from shark::AbstractMultiObjectiveOptimizer< RealVector >
typedef super::SearchPointType SearchPointType
 
typedef super::SolutionType SolutionType
 
typedef super::ObjectiveFunctionType ObjectiveFunctionType
 
- Public Types inherited from shark::AbstractOptimizer< RealVector, RealVector, std::vector< ResultSet< RealVector, RealVector > > >
enum  Feature
 Models features that the optimizer requires from the objective function. More...
 
typedef RealVector SearchPointType
 
typedef RealVector ResultType
 
typedef std::vector< ResultSet< RealVector, RealVector > > SolutionType
 
typedef AbstractObjectiveFunction< RealVector, ResultTypeObjectiveFunctionType
 
typedef TypedFlags< FeatureFeatures
 
typedef TypedFeatureNotAvailableException< FeatureFeatureNotAvailableException
 

Public Member Functions

 IndicatorBasedSteadyStateMOCMA (random::rng_type &rng=random::globalRng)
 
std::string name () const
 Returns the name of the algorithm. More...
 
std::size_t mu () const
 
std::size_t & mu ()
 
std::size_t numInitPoints () const
 Returns the number of points this method requires for initialisation. More...
 
double initialSigma () const
 
double & initialSigma ()
 
NotionOfSuccess notionOfSuccess () const
 
NotionOfSuccessnotionOfSuccess ()
 
Indicator & indicator ()
 
Indicator const & indicator () const
 
void read (InArchive &archive)
 Read the component from the supplied archive. More...
 
void write (OutArchive &archive) const
 Write the component to the supplied archive. More...
 
void init (ObjectiveFunctionType const &function, std::vector< SearchPointType > const &initialSearchPoints)
 Initializes the algorithm for the supplied objective function. More...
 
void step (ObjectiveFunctionType const &function)
 Executes one iteration of the algorithm. More...
 
- Public Member Functions inherited from shark::AbstractMultiObjectiveOptimizer< RealVector >
SolutionType const & solution () const
 Accesses the current approximation of the Pareto-set and -front, respectively. More...
 
- Public Member Functions inherited from shark::AbstractOptimizer< RealVector, RealVector, std::vector< ResultSet< RealVector, RealVector > > >
const Featuresfeatures () const
 
virtual void updateFeatures ()
 
bool requiresValue () const
 
bool requiresFirstDerivative () const
 
bool requiresSecondDerivative () const
 
bool canSolveConstrained () const
 
bool requiresClosestFeasible () const
 
virtual ~AbstractOptimizer ()
 
virtual void init (ObjectiveFunctionType const &function)
 Initialize the optimizer for the supplied objective function. More...
 
- Public Member Functions inherited from shark::INameable
virtual ~INameable ()
 
- Public Member Functions inherited from shark::ISerializable
virtual ~ISerializable ()
 Virtual d'tor. More...
 
void load (InArchive &archive, unsigned int version)
 Versioned loading of components, calls read(...). More...
 
void save (OutArchive &archive, unsigned int version) const
 Versioned storing of components, calls write(...). More...
 
 BOOST_SERIALIZATION_SPLIT_MEMBER ()
 

Protected Types

typedef CMAIndividual< RealVector > IndividualType
 The individual type of the SteadyState-MOCMA. More...
 

Protected Member Functions

void doInit (std::vector< SearchPointType > const &initialSearchPoints, std::vector< ResultType > const &functionValues, std::size_t mu, double initialSigma)
 
std::vector< IndividualTypegenerateOffspring () const
 
void updatePopulation (std::vector< IndividualType > const &offspringVec)
 
- Protected Member Functions inherited from shark::AbstractOptimizer< RealVector, RealVector, std::vector< ResultSet< RealVector, RealVector > > >
void checkFeatures (ObjectiveFunctionType const &objectiveFunction)
 Convenience function that checks whether the features of the supplied objective function match with the required features of the optimizer. More...
 

Protected Attributes

std::vector< IndividualTypem_parents
 Population of size \(\mu + 1\). More...
 
- Protected Attributes inherited from shark::AbstractMultiObjectiveOptimizer< RealVector >
SolutionType m_best
 The current Pareto-set/-front. More...
 
- Protected Attributes inherited from shark::AbstractOptimizer< RealVector, RealVector, std::vector< ResultSet< RealVector, RealVector > > >
Features m_features
 

Detailed Description

template<typename Indicator = HypervolumeIndicator>
class shark::IndicatorBasedSteadyStateMOCMA< Indicator >

Implements the \((\mu+1)\)-MO-CMA-ES.

Please see the following papers for further reference:

  • Igel, Suttorp and Hansen. Steady-state Selection and Efficient Covariance Matrix Update in the Multi-Objective CMA-ES.
  • Voß, Hansen and Igel. Improved Step Size Adaptation for the MO-CMA-ES.

Definition at line 52 of file SteadyStateMOCMA.h.

Member Typedef Documentation

◆ IndividualType

template<typename Indicator = HypervolumeIndicator>
typedef CMAIndividual<RealVector> shark::IndicatorBasedSteadyStateMOCMA< Indicator >::IndividualType
protected

The individual type of the SteadyState-MOCMA.

Definition at line 161 of file SteadyStateMOCMA.h.

Member Enumeration Documentation

◆ NotionOfSuccess

template<typename Indicator = HypervolumeIndicator>
enum shark::IndicatorBasedSteadyStateMOCMA::NotionOfSuccess
Enumerator
IndividualBased 
PopulationBased 

Definition at line 54 of file SteadyStateMOCMA.h.

Constructor & Destructor Documentation

◆ IndicatorBasedSteadyStateMOCMA()

Member Function Documentation

◆ doInit()

◆ generateOffspring()

template<typename Indicator = HypervolumeIndicator>
std::vector<IndividualType> shark::IndicatorBasedSteadyStateMOCMA< Indicator >::generateOffspring ( ) const
inlineprotected

◆ indicator() [1/2]

template<typename Indicator = HypervolumeIndicator>
Indicator& shark::IndicatorBasedSteadyStateMOCMA< Indicator >::indicator ( )
inline

◆ indicator() [2/2]

template<typename Indicator = HypervolumeIndicator>
Indicator const& shark::IndicatorBasedSteadyStateMOCMA< Indicator >::indicator ( ) const
inline

Definition at line 103 of file SteadyStateMOCMA.h.

◆ init()

template<typename Indicator = HypervolumeIndicator>
void shark::IndicatorBasedSteadyStateMOCMA< Indicator >::init ( ObjectiveFunctionType const &  function,
std::vector< SearchPointType > const &  initialSearchPoints 
)
inlinevirtual

◆ initialSigma() [1/2]

◆ initialSigma() [2/2]

template<typename Indicator = HypervolumeIndicator>
double& shark::IndicatorBasedSteadyStateMOCMA< Indicator >::initialSigma ( )
inline

Definition at line 89 of file SteadyStateMOCMA.h.

◆ mu() [1/2]

◆ mu() [2/2]

template<typename Indicator = HypervolumeIndicator>
std::size_t& shark::IndicatorBasedSteadyStateMOCMA< Indicator >::mu ( )
inline

Definition at line 78 of file SteadyStateMOCMA.h.

◆ name()

template<typename Indicator = HypervolumeIndicator>
std::string shark::IndicatorBasedSteadyStateMOCMA< Indicator >::name ( ) const
inlinevirtual

Returns the name of the algorithm.

Reimplemented from shark::INameable.

Definition at line 71 of file SteadyStateMOCMA.h.

◆ notionOfSuccess() [1/2]

template<typename Indicator = HypervolumeIndicator>
NotionOfSuccess shark::IndicatorBasedSteadyStateMOCMA< Indicator >::notionOfSuccess ( ) const
inline

◆ notionOfSuccess() [2/2]

template<typename Indicator = HypervolumeIndicator>
NotionOfSuccess& shark::IndicatorBasedSteadyStateMOCMA< Indicator >::notionOfSuccess ( )
inline

Definition at line 96 of file SteadyStateMOCMA.h.

◆ numInitPoints()

template<typename Indicator = HypervolumeIndicator>
std::size_t shark::IndicatorBasedSteadyStateMOCMA< Indicator >::numInitPoints ( ) const
inlinevirtual

Returns the number of points this method requires for initialisation.

The number of points supplied is allowed to be smaller, however in this case the optimizer will resort to techniques generating additional points if needed.

Implements shark::AbstractOptimizer< RealVector, RealVector, std::vector< ResultSet< RealVector, RealVector > > >.

Definition at line 82 of file SteadyStateMOCMA.h.

◆ read()

template<typename Indicator = HypervolumeIndicator>
void shark::IndicatorBasedSteadyStateMOCMA< Indicator >::read ( InArchive archive)
inlinevirtual

Read the component from the supplied archive.

Parameters
[in,out]archiveThe archive to read from.

Reimplemented from shark::ISerializable.

Definition at line 107 of file SteadyStateMOCMA.h.

References shark::AbstractMultiObjectiveOptimizer< RealVector >::m_best, and shark::IndicatorBasedSteadyStateMOCMA< Indicator >::m_parents.

◆ step()

template<typename Indicator = HypervolumeIndicator>
void shark::IndicatorBasedSteadyStateMOCMA< Indicator >::step ( ObjectiveFunctionType const &  function)
inlinevirtual

◆ updatePopulation()

◆ write()

template<typename Indicator = HypervolumeIndicator>
void shark::IndicatorBasedSteadyStateMOCMA< Indicator >::write ( OutArchive archive) const
inlinevirtual

Write the component to the supplied archive.

Parameters
[in,out]archiveThe archive to write to.

Reimplemented from shark::ISerializable.

Definition at line 117 of file SteadyStateMOCMA.h.

References shark::AbstractMultiObjectiveOptimizer< RealVector >::m_best, and shark::IndicatorBasedSteadyStateMOCMA< Indicator >::m_parents.

Member Data Documentation

◆ m_parents


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