shark::SMSEMOA Class Reference

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 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...
 
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< IndividualTypegenerateOffspring () 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< 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
 

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, ResultTypeObjectiveFunctionType
 
typedef TypedFlags< FeatureFeatures
 
typedef TypedFeatureNotAvailableException< FeatureFeatureNotAvailableException
 

Detailed Description

Implements the SMS-EMOA.

Please see the following paper for further reference:

  • Beume, Naujoks, Emmerich. SMS-EMOA: Multiobjective selection based on dominated hypervolume. European Journal of Operational Research.

Definition at line 62 of file SMS-EMOA.h.

Member Typedef Documentation

§ IndividualType

typedef shark::Individual<RealVector,RealVector> shark::SMSEMOA::IndividualType
protected

The individual type of the SMS-EMOA.

Definition at line 165 of file SMS-EMOA.h.

Constructor & Destructor Documentation

§ SMSEMOA()

Member Function Documentation

§ crossoverProbability()

double shark::SMSEMOA::crossoverProbability ( ) const
inline

Returns the probability that crossover is applied.

Definition at line 77 of file SMS-EMOA.h.

Referenced by init().

§ doInit()

void shark::SMSEMOA::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 
)
inlineprotected

§ generateOffspring()

std::vector<IndividualType> shark::SMSEMOA::generateOffspring ( ) const
inlineprotected

Definition at line 212 of file SMS-EMOA.h.

References m_parents, and mu().

Referenced by step().

§ init()

void shark::SMSEMOA::init ( ObjectiveFunctionType function,
std::vector< SearchPointType > const &  initialSearchPoints 
)
inlinevirtual

Initializes the algorithm for the supplied objective function.

Parameters
[in]functionThe objective function.
[in]initialSearchPointsA 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.

§ mu() [1/2]

unsigned int shark::SMSEMOA::mu ( ) const
inline

Definition at line 89 of file SMS-EMOA.h.

Referenced by doInit(), generateOffspring(), init(), and updatePopulation().

§ mu() [2/2]

unsigned int& shark::SMSEMOA::mu ( )
inline

Definition at line 93 of file SMS-EMOA.h.

§ name()

std::string shark::SMSEMOA::name ( ) const
inlinevirtual

returns the name of the object

Reimplemented from shark::INameable.

Definition at line 72 of file SMS-EMOA.h.

§ nc()

double shark::SMSEMOA::nc ( ) const
inline

Definition at line 85 of file SMS-EMOA.h.

References shark::SimulatedBinaryCrossover< PointType >::m_nc.

Referenced by doInit(), and init().

§ nm()

double shark::SMSEMOA::nm ( ) const
inline

Definition at line 81 of file SMS-EMOA.h.

References shark::PolynomialMutator::m_nm.

Referenced by doInit(), and init().

§ read()

void shark::SMSEMOA::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 97 of file SMS-EMOA.h.

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

§ step()

void shark::SMSEMOA::step ( ObjectiveFunctionType const &  function)
inlinevirtual

Executes one iteration of the algorithm.

Parameters
[in]functionThe 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().

§ updatePopulation()

void shark::SMSEMOA::updatePopulation ( std::vector< IndividualType > const &  offspring)
inlineprotected

Definition at line 218 of file SMS-EMOA.h.

References shark::AbstractMultiObjectiveOptimizer< RealVector >::m_best, m_parents, and mu().

Referenced by step().

§ write()

void shark::SMSEMOA::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 107 of file SMS-EMOA.h.

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

Member Data Documentation

§ m_parents

std::vector<IndividualType> shark::SMSEMOA::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().


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