PaGMO  1.1.5
Public Member Functions | Protected Member Functions | Friends
pagmo::algorithm::sms_emoa Class Reference

S-metric selection evolutionary multiobjective optimisation algorithm (SMS-EMOA) More...

#include <sms_emoa.h>

Inheritance diagram for pagmo::algorithm::sms_emoa:
Inheritance graph
[legend]

Public Member Functions

 sms_emoa (const sms_emoa &)
 Copy constructor. More...
 
 sms_emoa (int gen=100, int sel_m=2, double cr=0.95, double eta_c=10, double m=0.01, double eta_m=50)
 Constructor. More...
 
 sms_emoa (pagmo::util::hv_algorithm::base_ptr hv_algorithm, int gen=100, int sel_m=2, double cr=0.95, double eta_c=10, double m=0.01, double eta_m=50)
 Constructor. More...
 
base_ptr clone () const
 Clone method.
 
pagmo::util::hv_algorithm::base_ptr get_hv_algorithm () const
 Get the hypervolume algorithm used for the computation. More...
 
void evolve (population &) const
 Evolve implementation. More...
 
std::string get_name () const
 Algorithm name.
 
- Public Member Functions inherited from pagmo::algorithm::base
 base ()
 Default constructor. More...
 
virtual ~base ()
 Trivial destructor. More...
 
std::string human_readable () const
 Return human readable representation of the algorithm. More...
 
void set_screen_output (const bool p)
 Setter-Getter for protected m_screen_output data. More...
 
bool get_screen_output () const
 Gets screen output. More...
 
void reset_rngs (const unsigned int) const
 Resets the seed of the internal rngs using a user-provided seed. More...
 

Protected Member Functions

std::string human_readable_extra () const
 Extra human readable algorithm info. More...
 

Friends

class boost::serialization::access
 

Additional Inherited Members

- Protected Attributes inherited from pagmo::algorithm::base
bool m_screen_output
 Indicates to the derived class whether to print stuff on screen.
 
rng_double m_drng
 Random number generator for double-precision floating point values.
 
rng_uint32 m_urng
 Random number generator for unsigned integer values.
 
unsigned int m_fevals
 A counter for the number of function evaluations.
 

Detailed Description

S-metric selection evolutionary multiobjective optimisation algorithm (SMS-EMOA)

SMS-EMOA is a S-metric (hypervolume indicator) based evolutionary algorithm.

See also
Nicola Beume, Boris Naujoks, Michael Emmerich, "SMS-EMOA: Multiobjective selection based on dominated hypervolume"
Author
Krzysztof Nowak kn@ki.nosp@m.ryx..nosp@m.net

Definition at line 46 of file sms_emoa.h.

Constructor & Destructor Documentation

pagmo::algorithm::sms_emoa::sms_emoa ( const sms_emoa orig)

Copy constructor.

Copy constructor of SMS-EMOA.

Parameters
[in]origOriginal instance of SMS-EMOA to make a copy from

Definition at line 68 of file sms_emoa.cpp.

pagmo::algorithm::sms_emoa::sms_emoa ( int  gen = 100,
int  sel_m = 2,
double  cr = 0.95,
double  eta_c = 10,
double  m = 0.01,
double  eta_m = 50 
)

Constructor.

Constructs the SMS-EMOA algorithm.

Parameters
[in]genNumber of generations to evolve.
[in]sel_mSelection method of the algorithm. If sel_m=1, least_contributor is used for the computation regardless of the number of fronts. If sel_m=2, domination count is used in case there are more than one front.
[in]crCrossover probability
[in]eta_cDistribution index for crossover
[in]mMutation probability
[in]eta_mDistribution index for mutation
Exceptions
value_errorif gen is negative, crossover probability is not $ \in [0,1[$, mutation probability or mutation width is not $ \in [0,1]$,

Definition at line 56 of file sms_emoa.cpp.

pagmo::algorithm::sms_emoa::sms_emoa ( pagmo::util::hv_algorithm::base_ptr  hv_algorithm,
int  gen = 100,
int  sel_m = 2,
double  cr = 0.95,
double  eta_c = 10,
double  m = 0.01,
double  eta_m = 50 
)

Constructor.

Constructs the SMS-EMOA algorithm with the preferred hypervolume algorithm for computation.

Parameters
[in]genNumber of generations to evolve.
[in]sel_mSelection method of the algorithm. If sel_m=1, least_contributor is used for the computation regardless of the number of fronts. If sel_m=2, domination count is used in case there are more than one front.
[in]crCrossover probability
[in]eta_cDistribution index for crossover
[in]mMutation probability
[in]eta_mDistribution index for mutation
[in]hv_algorithmHypervolume algorithm used for the computation of the least contributor
Exceptions
value_errorif gen is negative, crossover probability is not $ \in [0,1[$, mutation probability or mutation width is not $ \in [0,1]$,

Definition at line 90 of file sms_emoa.cpp.

Member Function Documentation

void pagmo::algorithm::sms_emoa::evolve ( population pop) const
virtual

Evolve implementation.

Run the SMS-EMOA evolve routine.

Parameters
[in,out]popinput/output pagmo::population to be evolved.

Implements pagmo::algorithm::base.

Definition at line 341 of file sms_emoa.cpp.

pagmo::util::hv_algorithm::base_ptr pagmo::algorithm::sms_emoa::get_hv_algorithm ( ) const

Get the hypervolume algorithm used for the computation.

Returns an instance of the algorithm currently set for the computation of the least_contributor.

Returns
shared pointer to the hv_algorithm instance

Definition at line 103 of file sms_emoa.cpp.

std::string pagmo::algorithm::sms_emoa::human_readable_extra ( ) const
protectedvirtual

Extra human readable algorithm info.

Will return a formatted string displaying the parameters of the algorithm.

Reimplemented from pagmo::algorithm::base.

Definition at line 389 of file sms_emoa.cpp.


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