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

"Strength Pareto Evolutionary Algorithm (SPEA2)" More...

#include <spea2.h>

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

Public Member Functions

 spea2 (int gen=100, double cr=0.95, double eta_c=10, double m=0.01, double eta_m=50, int archive_size=0)
 Constructor. More...
 
base_ptr clone () const
 Clone method.
 
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

"Strength Pareto Evolutionary Algorithm (SPEA2)"

Strength Pareto Evolutionary Algorithm (SPEA2) is a multi-objective optimization algorithm. The quality of an individual is measured taking into consideration its pareto strenght and its distance to its K-th neighbour, where $ K=\sqrt{pop size + archive size} $ It uses an external archive in which are stored the non dominated solutions found so far. The size of the archive is kept constant throughout the run by mean of a truncation operator taking into consideration the distance of each individual to its closest neighbours.

Author
Andrea Mambrini (andre.nosp@m.a.ma.nosp@m.mbrin.nosp@m.i@gm.nosp@m.ail.c.nosp@m.om)
Annalisa Riccardi (nina1.nosp@m.983@.nosp@m.gmail.nosp@m..com)
See also
Eckart Zitzler, Marco Laumanns, and Lothar Thiele – "SPEA2: Improving the Strength Pareto Evolutionary Algorithm"

Definition at line 80 of file spea2.h.

Constructor & Destructor Documentation

pagmo::algorithm::spea2::spea2 ( int  gen = 100,
double  cr = 0.95,
double  eta_c = 10,
double  m = 0.01,
double  eta_m = 50,
int  archive_size = 0 
)

Constructor.

Constructs a SPEA2 algorithm

Parameters
[in]genNumber of generations to evolve.
[in]crCrossover probability
[in]eta_cDistribution index for crossover
[in]mMutation probability
[in]eta_mDistribution index for mutation
[in]archive_sizethe size of the non_dominated archive. If archive_size=0 then the archive size is set equal to the population size. The population returned after evolve has a size equal to archive_size
Exceptions
value_errorif gen is negative

Definition at line 59 of file spea2.cpp.

Member Function Documentation

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

Evolve implementation.

Run the SPEA2 algorithm for the number of generations specified in the constructors.

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

Implements pagmo::algorithm::base.

Definition at line 97 of file spea2.cpp.

std::string pagmo::algorithm::spea2::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 305 of file spea2.cpp.


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