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

Nondominated Sorting genetic algorithm II (NSGA-II) More...

#include <nsga2.h>

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

Public Member Functions

 nsga2 (int gen=100, double cr=0.95, double eta_c=10, double m=0.01, double eta_m=50)
 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

Nondominated Sorting genetic algorithm II (NSGA-II)

NSGA-II is a nondominated-sorting based multiobjective evolutionary algorithm. It genererates offspring with crossover and mutation and select the next generation according to nondominated-sorting and crowding distance comparison.

The algorithm can be applied to continuous box-bounded optimization. The version for mixed integer and constrained optimization is also planned.

See also
Deb, K. and Pratap, A. and Agarwal, S. and Meyarivan, T., "A fast and elitist multiobjective genetic algorithm: NSGA-II"
Author
Dario Izzo (dario.nosp@m..izz.nosp@m.o@goo.nosp@m.glem.nosp@m.ail.c.nosp@m.om)

Definition at line 49 of file nsga2.h.

Constructor & Destructor Documentation

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

Constructor.

Constructs a NSGA II 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
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 nsga2.cpp.

Member Function Documentation

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

Evolve implementation.

Run the NSGA-II 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 245 of file nsga2.cpp.

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


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