Implements the generational MO-CMA-ES. More...
#include <shark/Algorithms/DirectSearch/MOCMA.h>
Public Types | |
enum | NotionOfSuccess { IndividualBased, PopulationBased } |
![]() | |
typedef super::SearchPointType | SearchPointType |
typedef super::SolutionType | SolutionType |
typedef super::ObjectiveFunctionType | ObjectiveFunctionType |
![]() | |
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, ResultType > | ObjectiveFunctionType |
typedef TypedFlags< Feature > | Features |
typedef TypedFeatureNotAvailableException< Feature > | FeatureNotAvailableException |
Public Member Functions | |
IndicatorBasedMOCMA (DefaultRngType &rng=Rng::globalRng) | |
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 () |
NotionOfSuccess | notionOfSuccess () const |
NotionOfSuccess & | notionOfSuccess () |
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 &function) |
Initializes the optimizer for the supplied objective function. More... | |
void | init (ObjectiveFunctionType &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... | |
![]() | |
virtual | ~AbstractMultiObjectiveOptimizer () |
Virtual empty d'tor. More... | |
const SolutionType & | solution () const |
Accesses the current approximation of the Pareto-set and -front, respectively. More... | |
![]() | |
const Features & | features () 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... | |
![]() | |
virtual | ~INameable () |
![]() | |
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< IndividualType > | generateOffspring () const |
void | updatePopulation (std::vector< IndividualType > const &offspringVec) |
![]() | |
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< IndividualType > | m_parents |
Population of size \(\mu + 1\). More... | |
![]() | |
SolutionType | m_best |
The current Pareto-set/-front. More... | |
![]() | |
Features | m_features |
Implements the generational MO-CMA-ES.
Please see the following papers for further reference:
|
protected |
enum shark::IndicatorBasedMOCMA::NotionOfSuccess |
|
inline |
Definition at line 66 of file MOCMA.h.
References shark::IndicatorBasedMOCMA< Indicator >::initialSigma(), shark::AbstractOptimizer< RealVector, RealVector, std::vector< ResultSet< RealVector, RealVector > > >::m_features, shark::IndicatorBasedMOCMA< Indicator >::mu(), shark::IndicatorBasedMOCMA< Indicator >::notionOfSuccess(), and shark::IndicatorBasedMOCMA< Indicator >::PopulationBased.
|
inlineprotected |
Definition at line 167 of file MOCMA.h.
References shark::discrete(), shark::IndicatorBasedMOCMA< Indicator >::initialSigma(), shark::AbstractMultiObjectiveOptimizer< RealVector >::m_best, shark::IndicatorBasedMOCMA< Indicator >::m_parents, shark::IndicatorBasedMOCMA< Indicator >::mu(), and SIZE_CHECK.
Referenced by shark::IndicatorBasedMOCMA< Indicator >::init().
|
inlineprotected |
Definition at line 207 of file MOCMA.h.
References shark::IndicatorBasedMOCMA< Indicator >::m_parents, and shark::IndicatorBasedMOCMA< Indicator >::mu().
Referenced by shark::IndicatorBasedMOCMA< Indicator >::step().
|
inlinevirtual |
Initializes the optimizer for the supplied objective function.
Tries to sample an initial starting point. If the function does not implement this feature, an exception is thrown. Otherwise, the call is dispatched to the pure-virtual function.
function | The function to be initialized for. |
Exception | if the function does not feature the proposal of starting points. |
Reimplemented from shark::AbstractMultiObjectiveOptimizer< RealVector >.
Definition at line 122 of file MOCMA.h.
References shark::AbstractOptimizer< RealVector, RealVector, std::vector< ResultSet< RealVector, RealVector > > >::checkFeatures(), shark::IndicatorBasedMOCMA< Indicator >::mu(), and SHARKEXCEPTION.
Referenced by main().
|
inlinevirtual |
Initializes the algorithm for the supplied objective function.
[in] | function | The objective function. |
[in] | initialSearchPoints | A set of intiial search points. |
Implements shark::AbstractMultiObjectiveOptimizer< RealVector >.
Definition at line 138 of file MOCMA.h.
References shark::AbstractOptimizer< RealVector, RealVector, std::vector< ResultSet< RealVector, RealVector > > >::checkFeatures(), shark::IndicatorBasedMOCMA< Indicator >::doInit(), shark::IndicatorBasedMOCMA< Indicator >::initialSigma(), shark::IndicatorBasedMOCMA< Indicator >::mu(), and SHARKEXCEPTION.
|
inline |
Definition at line 88 of file MOCMA.h.
Referenced by shark::IndicatorBasedMOCMA< Indicator >::doInit(), shark::IndicatorBasedMOCMA< Indicator >::IndicatorBasedMOCMA(), and shark::IndicatorBasedMOCMA< Indicator >::init().
|
inline |
|
inline |
Definition at line 81 of file MOCMA.h.
Referenced by shark::IndicatorBasedMOCMA< Indicator >::doInit(), shark::IndicatorBasedMOCMA< Indicator >::generateOffspring(), shark::IndicatorBasedMOCMA< Indicator >::IndicatorBasedMOCMA(), shark::IndicatorBasedMOCMA< Indicator >::init(), main(), and shark::IndicatorBasedMOCMA< Indicator >::updatePopulation().
|
inline |
|
inlinevirtual |
Returns the name of the algorithm.
Reimplemented from shark::INameable.
|
inline |
Definition at line 95 of file MOCMA.h.
Referenced by shark::IndicatorBasedMOCMA< Indicator >::IndicatorBasedMOCMA().
|
inline |
|
inlinevirtual |
Read the component from the supplied archive.
[in,out] | archive | The archive to read from. |
Reimplemented from shark::ISerializable.
Definition at line 101 of file MOCMA.h.
References shark::AbstractMultiObjectiveOptimizer< RealVector >::m_best, and shark::IndicatorBasedMOCMA< Indicator >::m_parents.
|
inlinevirtual |
Executes one iteration of the algorithm.
[in] | function | The function to iterate upon. |
Implements shark::AbstractOptimizer< RealVector, RealVector, std::vector< ResultSet< RealVector, RealVector > > >.
Definition at line 157 of file MOCMA.h.
References shark::IndicatorBasedMOCMA< Indicator >::generateOffspring(), and shark::IndicatorBasedMOCMA< Indicator >::updatePopulation().
Referenced by main().
|
inlineprotected |
Definition at line 218 of file MOCMA.h.
References shark::IndicatorBasedMOCMA< Indicator >::IndividualBased, shark::Individual< RealVector, FitnessType, CMAChromosome >::IsSelected(), shark::AbstractMultiObjectiveOptimizer< RealVector >::m_best, shark::IndicatorBasedMOCMA< Indicator >::m_parents, shark::IndicatorBasedMOCMA< Indicator >::mu(), shark::blas::noalias(), shark::IndicatorBasedMOCMA< Indicator >::PopulationBased, shark::CMAChromosome::Successful, and shark::CMAChromosome::Unsuccessful.
Referenced by shark::IndicatorBasedMOCMA< Indicator >::step().
|
inlinevirtual |
Write the component to the supplied archive.
[in,out] | archive | The archive to write to. |
Reimplemented from shark::ISerializable.
Definition at line 111 of file MOCMA.h.
References shark::AbstractMultiObjectiveOptimizer< RealVector >::m_best, and shark::IndicatorBasedMOCMA< Indicator >::m_parents.
|
protected |
Population of size \(\mu + 1\).
Definition at line 250 of file MOCMA.h.
Referenced by shark::IndicatorBasedMOCMA< Indicator >::doInit(), shark::IndicatorBasedMOCMA< Indicator >::generateOffspring(), shark::IndicatorBasedMOCMA< Indicator >::read(), shark::IndicatorBasedMOCMA< Indicator >::updatePopulation(), and shark::IndicatorBasedMOCMA< Indicator >::write().