shark::IndicatorBasedMOCMA< Indicator > Class Template Reference

Implements the generational MO-CMA-ES. More...

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

+ Inheritance diagram for shark::IndicatorBasedMOCMA< 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

 IndicatorBasedMOCMA ()
 Default c'tor. More...
 
std::string name () const
 Returns the name of the algorithm. More...
 
std::size_t mu () const
 
std::size_t & mu ()
 
double initialSigma () const
 
double & initialSigma ()
 
double constrainedPenaltyFactor () const
 Returns the penalty factor for an individual that is outside the feasible area. More...
 
double & constrainedPenaltyFactor ()
 Returns a reference to the penalty factor for an individual that is outside the feasible area. More...
 
NotionOfSuccess notionOfSuccess () const
 
NotionOfSuccessnotionOfSuccess ()
 
template<typename Archive >
void serialize (Archive &archive, const unsigned int version)
 Stores/loads the algorithm's state. More...
 
void init (ObjectiveFunctionType &function, std::vector< SearchPointType > const &startingPoints)
 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 >
virtual ~AbstractMultiObjectiveOptimizer ()
 Virtual empty d'tor. More...
 
virtual void init (ObjectiveFunctionType &function)
 Initializes the optimizer for the supplied objective function. More...
 
const SolutionTypesolution () 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 ()
 Empty virtual d'tor. More...
 
- Public Member Functions inherited from shark::INameable
virtual ~INameable ()
 
- Public Member Functions inherited from shark::ISerializable
virtual ~ISerializable ()
 Virtual d'tor. More...
 
virtual void read (InArchive &archive)
 Read the component from the supplied archive. More...
 
virtual void write (OutArchive &archive) const
 Write the component to the supplied archive. 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 ()
 

Public Attributes

std::vector< CMAIndividual< RealVector > > m_pop
 Population of size \(\mu+\mu\). More...
 
std::size_t m_mu
 Size of parent generation. More...
 
shark::PenalizingEvaluator m_evaluator
 Evaluation operator. More...
 
IndicatorBasedSelection< Indicator > m_selection
 Selection operator relying on the (contributing) hypervolume indicator. More...
 
NotionOfSuccess m_notionOfSuccess
 Flag for deciding whether the improved step-size adaptation shall be used. More...
 
double m_individualSuccessThreshold
 
double m_initialSigma
 

Additional Inherited Members

- 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 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>
class shark::IndicatorBasedMOCMA< Indicator >

Implements the generational 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 58 of file MOCMA.h.

Member Enumeration Documentation

template<typename Indicator >
enum shark::IndicatorBasedMOCMA::NotionOfSuccess
Enumerator
IndividualBased 
PopulationBased 

Definition at line 61 of file MOCMA.h.

Constructor & Destructor Documentation

Member Function Documentation

template<typename Indicator >
double shark::IndicatorBasedMOCMA< Indicator >::constrainedPenaltyFactor ( ) const
inline

Returns the penalty factor for an individual that is outside the feasible area.

The value is multiplied with the distance to the nearest feasible point.

Definition at line 113 of file MOCMA.h.

References shark::PenalizingEvaluator::m_penaltyFactor.

Referenced by shark::IndicatorBasedMOCMA< Indicator >::IndicatorBasedMOCMA().

template<typename Indicator >
double& shark::IndicatorBasedMOCMA< Indicator >::constrainedPenaltyFactor ( )
inline

Returns a reference to the penalty factor for an individual that is outside the feasible area.

The value is multiplied with the distance to the nearest feasible point.

Definition at line 120 of file MOCMA.h.

References shark::PenalizingEvaluator::m_penaltyFactor.

template<typename Indicator >
void shark::IndicatorBasedMOCMA< Indicator >::init ( ObjectiveFunctionType function,
std::vector< SearchPointType > const &  startingPoints 
)
inlinevirtual

Initializes the algorithm for the supplied objective function.

Template Parameters
ObjectiveFunctionThe type of the objective function, needs to adhere to the concept of an AbstractObjectiveFunction.
Parameters
[in]functionThe objective function.
[in]startingPointsA set of intiial search points.

Implements shark::AbstractMultiObjectiveOptimizer< RealVector >.

Definition at line 156 of file MOCMA.h.

References shark::AbstractOptimizer< RealVector, RealVector, std::vector< ResultSet< RealVector, RealVector > > >::checkFeatures(), shark::AbstractMultiObjectiveOptimizer< RealVector >::m_best, shark::IndicatorBasedMOCMA< Indicator >::m_evaluator, shark::IndicatorBasedMOCMA< Indicator >::mu(), and shark::Individual< PointType, FitnessTypeT, Chromosome >::searchPoint().

Referenced by main().

template<typename Indicator >
double shark::IndicatorBasedMOCMA< Indicator >::initialSigma ( ) const
inline
template<typename Indicator >
double& shark::IndicatorBasedMOCMA< Indicator >::initialSigma ( )
inline

Definition at line 106 of file MOCMA.h.

References shark::IndicatorBasedMOCMA< Indicator >::m_initialSigma.

template<typename Indicator >
std::size_t& shark::IndicatorBasedMOCMA< Indicator >::mu ( )
inline

Definition at line 99 of file MOCMA.h.

References shark::IndicatorBasedMOCMA< Indicator >::m_mu.

template<typename Indicator >
std::string shark::IndicatorBasedMOCMA< Indicator >::name ( ) const
inlinevirtual

Returns the name of the algorithm.

Reimplemented from shark::INameable.

Definition at line 92 of file MOCMA.h.

template<typename Indicator >
NotionOfSuccess shark::IndicatorBasedMOCMA< Indicator >::notionOfSuccess ( ) const
inline
template<typename Indicator >
NotionOfSuccess& shark::IndicatorBasedMOCMA< Indicator >::notionOfSuccess ( )
inline
template<typename Indicator >
template<typename Archive >
void shark::IndicatorBasedMOCMA< Indicator >::serialize ( Archive &  archive,
const unsigned int  version 
)
inline

Stores/loads the algorithm's state.

Template Parameters
ArchiveThe type of the archive.
Parameters
[in,out]archiveThe archive to use for loading/storing.
[in]versionCurrently unused.

Definition at line 138 of file MOCMA.h.

References shark::AbstractMultiObjectiveOptimizer< RealVector >::m_best.

Member Data Documentation

template<typename Indicator >
shark::PenalizingEvaluator shark::IndicatorBasedMOCMA< Indicator >::m_evaluator

Evaluation operator.

Definition at line 69 of file MOCMA.h.

Referenced by shark::IndicatorBasedMOCMA< Indicator >::init(), and shark::IndicatorBasedMOCMA< Indicator >::step().

template<typename Indicator >
double shark::IndicatorBasedMOCMA< Indicator >::m_individualSuccessThreshold

Definition at line 73 of file MOCMA.h.

template<typename Indicator >
double shark::IndicatorBasedMOCMA< Indicator >::m_initialSigma

Definition at line 74 of file MOCMA.h.

Referenced by shark::IndicatorBasedMOCMA< Indicator >::initialSigma().

template<typename Indicator >
std::size_t shark::IndicatorBasedMOCMA< Indicator >::m_mu

Size of parent generation.

Definition at line 67 of file MOCMA.h.

Referenced by shark::IndicatorBasedMOCMA< Indicator >::mu().

template<typename Indicator >
NotionOfSuccess shark::IndicatorBasedMOCMA< Indicator >::m_notionOfSuccess

Flag for deciding whether the improved step-size adaptation shall be used.

Definition at line 72 of file MOCMA.h.

Referenced by shark::IndicatorBasedMOCMA< Indicator >::notionOfSuccess().

template<typename Indicator >
std::vector<CMAIndividual<RealVector> > shark::IndicatorBasedMOCMA< Indicator >::m_pop

Population of size \(\mu+\mu\).

Definition at line 66 of file MOCMA.h.

template<typename Indicator >
IndicatorBasedSelection< Indicator > shark::IndicatorBasedMOCMA< Indicator >::m_selection

Selection operator relying on the (contributing) hypervolume indicator.

Definition at line 70 of file MOCMA.h.

Referenced by shark::IndicatorBasedMOCMA< Indicator >::step().


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