Implements the SMS-EMOA. More...
#include <shark/Algorithms/DirectSearch/SMS-EMOA.h>
Inheritance diagram for shark::SMSEMOA:Public Member Functions | |
| SMSEMOA (DefaultRngType &rng=Rng::globalRng) | |
| std::string | name () const |
| returns the name of the object More... | |
| double | crossoverProbability () const |
| Returns the probability that crossover is applied. More... | |
| double | nm () const |
| double | nc () const |
| unsigned int | mu () const |
| unsigned int & | mu () |
| 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, 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 > | |
| 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... | |
Public Member Functions inherited from shark::AbstractOptimizer< RealVector, RealVector, std::vector< ResultSet< RealVector, RealVector > > > | |
| 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... | |
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 shark::Individual< RealVector, RealVector > | IndividualType |
| The individual type of the SMS-EMOA. More... | |
Protected Member Functions | |
| void | doInit (std::vector< SearchPointType > const &initialSearchPoints, std::vector< ResultType > const &functionValues, RealVector const &lowerBounds, RealVector const &upperBounds, std::size_t mu, double nm, double nc, double crossover_prob) |
| std::vector< IndividualType > | generateOffspring () const |
| void | updatePopulation (std::vector< IndividualType > const &offspring) |
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< IndividualType > | m_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 |
Additional Inherited Members | |
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, ResultType > | ObjectiveFunctionType |
| typedef TypedFlags< Feature > | Features |
| typedef TypedFeatureNotAvailableException< Feature > | FeatureNotAvailableException |
Implements the SMS-EMOA.
Please see the following paper for further reference:
Definition at line 62 of file SMS-EMOA.h.
|
protected |
The individual type of the SMS-EMOA.
Definition at line 165 of file SMS-EMOA.h.
|
inline |
|
inline |
Returns the probability that crossover is applied.
Definition at line 77 of file SMS-EMOA.h.
Referenced by init().
|
inlineprotected |
Definition at line 167 of file SMS-EMOA.h.
References shark::discrete(), shark::PolynomialMutator::init(), shark::SimulatedBinaryCrossover< PointType >::init(), shark::AbstractMultiObjectiveOptimizer< RealVector >::m_best, shark::SimulatedBinaryCrossover< PointType >::m_nc, shark::PolynomialMutator::m_nm, m_parents, mu(), nc(), nm(), and SIZE_CHECK.
Referenced by init().
|
inlineprotected |
|
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 125 of file SMS-EMOA.h.
References shark::AbstractOptimizer< RealVector, RealVector, std::vector< ResultSet< RealVector, RealVector > > >::checkFeatures(), crossoverProbability(), doInit(), shark::BoxConstraintHandler< Vector >::lower(), mu(), nc(), nm(), and SHARKEXCEPTION.
|
inline |
Definition at line 89 of file SMS-EMOA.h.
Referenced by doInit(), generateOffspring(), init(), and updatePopulation().
|
inline |
Definition at line 93 of file SMS-EMOA.h.
|
inlinevirtual |
returns the name of the object
Reimplemented from shark::INameable.
Definition at line 72 of file SMS-EMOA.h.
|
inline |
Definition at line 85 of file SMS-EMOA.h.
References shark::SimulatedBinaryCrossover< PointType >::m_nc.
|
inline |
Definition at line 81 of file SMS-EMOA.h.
References shark::PolynomialMutator::m_nm.
|
inlinevirtual |
Read the component from the supplied archive.
| [in,out] | archive | The archive to read from. |
Reimplemented from shark::ISerializable.
Definition at line 97 of file SMS-EMOA.h.
References shark::AbstractMultiObjectiveOptimizer< RealVector >::m_best, and 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 SMS-EMOA.h.
References generateOffspring(), and updatePopulation().
|
inlineprotected |
Definition at line 218 of file SMS-EMOA.h.
References shark::AbstractMultiObjectiveOptimizer< RealVector >::m_best, m_parents, and mu().
Referenced by step().
|
inlinevirtual |
Write the component to the supplied archive.
| [in,out] | archive | The archive to write to. |
Reimplemented from shark::ISerializable.
Definition at line 107 of file SMS-EMOA.h.
References shark::AbstractMultiObjectiveOptimizer< RealVector >::m_best, and m_parents.
|
protected |
Population of size \(\mu + 1\).
Definition at line 236 of file SMS-EMOA.h.
Referenced by doInit(), generateOffspring(), read(), updatePopulation(), and write().