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 () | |
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 |
NotionOfSuccess & | notionOfSuccess () |
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... | |
![]() | |
virtual | ~AbstractMultiObjectiveOptimizer () |
Virtual empty d'tor. More... | |
virtual void | init (ObjectiveFunctionType &function) |
Initializes the optimizer for the supplied objective function. 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... | |
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 | |
![]() | |
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... | |
![]() | |
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:
enum shark::IndicatorBasedMOCMA::NotionOfSuccess |
|
inline |
Default c'tor.
Definition at line 79 of file MOCMA.h.
References shark::IndicatorBasedMOCMA< Indicator >::constrainedPenaltyFactor(), 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.
|
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().
|
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.
|
inlinevirtual |
Initializes the algorithm for the supplied objective function.
ObjectiveFunction | The type of the objective function, needs to adhere to the concept of an AbstractObjectiveFunction. |
[in] | function | The objective function. |
[in] | startingPoints | A 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().
|
inline |
Definition at line 103 of file MOCMA.h.
References shark::IndicatorBasedMOCMA< Indicator >::m_initialSigma.
Referenced by shark::IndicatorBasedMOCMA< Indicator >::IndicatorBasedMOCMA().
|
inline |
Definition at line 106 of file MOCMA.h.
References shark::IndicatorBasedMOCMA< Indicator >::m_initialSigma.
|
inline |
Definition at line 96 of file MOCMA.h.
References shark::IndicatorBasedMOCMA< Indicator >::m_mu.
Referenced by shark::IndicatorBasedMOCMA< Indicator >::IndicatorBasedMOCMA(), shark::IndicatorBasedMOCMA< Indicator >::init(), main(), and shark::IndicatorBasedMOCMA< Indicator >::step().
|
inline |
Definition at line 99 of file MOCMA.h.
References shark::IndicatorBasedMOCMA< Indicator >::m_mu.
|
inlinevirtual |
Returns the name of the algorithm.
Reimplemented from shark::INameable.
|
inline |
Definition at line 124 of file MOCMA.h.
References shark::IndicatorBasedMOCMA< Indicator >::m_notionOfSuccess.
Referenced by shark::IndicatorBasedMOCMA< Indicator >::IndicatorBasedMOCMA().
|
inline |
Definition at line 127 of file MOCMA.h.
References shark::IndicatorBasedMOCMA< Indicator >::m_notionOfSuccess.
|
inline |
Stores/loads the algorithm's state.
Archive | The type of the archive. |
[in,out] | archive | The archive to use for loading/storing. |
[in] | version | Currently unused. |
Definition at line 138 of file MOCMA.h.
References shark::AbstractMultiObjectiveOptimizer< RealVector >::m_best.
|
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 185 of file MOCMA.h.
References shark::IndicatorBasedMOCMA< Indicator >::IndividualBased, shark::AbstractMultiObjectiveOptimizer< RealVector >::m_best, shark::IndicatorBasedMOCMA< Indicator >::m_evaluator, shark::IndicatorBasedMOCMA< Indicator >::m_selection, shark::IndicatorBasedMOCMA< Indicator >::mu(), shark::blas::noalias(), shark::IndicatorBasedMOCMA< Indicator >::PopulationBased, shark::CMAChromosome::Successful, and shark::CMAChromosome::Unsuccessful.
Referenced by main().
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().
double shark::IndicatorBasedMOCMA< Indicator >::m_individualSuccessThreshold |
double shark::IndicatorBasedMOCMA< Indicator >::m_initialSigma |
Definition at line 74 of file MOCMA.h.
Referenced by shark::IndicatorBasedMOCMA< Indicator >::initialSigma().
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().
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().
std::vector<CMAIndividual<RealVector> > shark::IndicatorBasedMOCMA< Indicator >::m_pop |
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().