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

Non-dominated Sorting Particle Swarm Optimizer (NSPSO) More...

#include <nspso.h>

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

Public Types

enum  diversity_mechanism_type { CROWDING_DISTANCE =0, NICHE_COUNT =1, MAXMIN =2 }
 Mechanism used to asses diversity. More...
 

Public Member Functions

 nspso (int gen=100, double minW=0.4, double maxW=1.0, double C1=2.0, double C2=2.0, double CHI=1.0, double v_coeff=0.5, int leader_selection_range=10, diversity_mechanism_type=CROWDING_DISTANCE)
 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

Non-dominated Sorting Particle Swarm Optimizer (NSPSO)

Non-dominated Sorting Particle Swarm Optimizer (NSPSO) is a modified version of PSO for multi-objective optimization. It extends the basic ideas of PSO by making a better use of personal bests and offspring for non-dominated comparison. In order to increase the diversity of the pareto front it is possible to choose between 3 different niching methods: crowding distance, niche count and maxmin.

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
"Xiaodong Li - A Non-dominated Sorting Particle Swarm Optimizer for Multiobjective Optimization"
"Xiaodong Li - Better Spread and Convergence: Particle Swarm Multiobjective Optimization Using the Maximin Fitness Function"
"Carlos M. Fonseca, Peter J. Fleming - Genetic Algorithms for Multiobjective Optimization: Formulation, Discussion and Generalization"

Definition at line 51 of file nspso.h.

Member Enumeration Documentation

Mechanism used to asses diversity.

Enumerator
CROWDING_DISTANCE 

The crowding distance is used.

NICHE_COUNT 

The ....

MAXMIN 

The ....

Definition at line 55 of file nspso.h.

Constructor & Destructor Documentation

pagmo::algorithm::nspso::nspso ( int  gen = 100,
double  minW = 0.4,
double  maxW = 1.0,
double  C1 = 2.0,
double  C2 = 2.0,
double  CHI = 1.0,
double  v_coeff = 0.5,
int  leader_selection_range = 10,
diversity_mechanism_type  diversity_mechanism = CROWDING_DISTANCE 
)

Constructor.

Constructs a NSPSO algorithm (multi objective PSO)

Parameters
[in]genNumber of generations to evolve.
[in]minWminimum particles' inertia weight (the inertia weight is decreased troughout the run between maxW and minW)
[in]maxWmaximum particles' inertia weight (the inertia weight is decreased troughout the run between maxW and minW)
[in]C1magnitude of the force, applied to the particle's velocity, in the direction of its previous best position
[in]C2magnitude of the force, applied to the particle's velocity, in the direction of its global best (leader)
[in]CHIvelocity scaling factor
[in]v_coeffvelocity coefficient (determining the maximum allowed particle velocity)
[in]leader_selection_rangethe leader of each particle is selected among the best leader_selection_range% individuals
[in]diversity_mechanismthe diversity mechanism to use to mantein diversity on the pareto front
Exceptions
value_errorif gen is negative

Definition at line 62 of file nspso.cpp.

Member Function Documentation

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

Evolve implementation.

Run the NSPSO 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 109 of file nspso.cpp.

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


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