Public Member Functions | Protected Member Functions | Protected Attributes

NSGA_II Class Reference

#include <NSGA_II.h>

Inheritance diagram for NSGA_II:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 NSGA_II (unsigned n_f__=3)
virtual ~NSGA_II ()
void setNadirIdeal (vector< double > &nadir_, vector< double > &ideal_)
 Input fixed boundary point and fixed ideal point, to be used instead of nadir and ideal point of currFront respectively.
void select (vector< Individual * > &P, vector< Individual * > &O, unsigned mu, unsigned kappa, unsigned lambda, vector< int > &direction, vector< double > &bestF)
 Select mu Individuals from O and optionally P to form new population P, using multiobjective selection scheme as proposed for NSGA-II by Deb, 2000.

Protected Member Functions

void fastNondominatedSort (vector< Individual * > &Q, vector< vector< int > > &front, vector< int > &direction, vector< double > &bestF)
 Divide Individuals from O and optionally P in fronts based on domination.
MOComparison compare (Individual *A, Individual *B, vector< int > &direction, vector< double > &bestWorstF, bool determineValues, bool worst)
 Determine domination relationship between A and B, or determine best or worst values.
virtual void frontSort (vector< int > &currFront, vector< Individual * > &Q, vector< int > &direction)
 Sort Individuals within same front: nD crowding distance sorting (see NSGA-II by Deb, 2000)
void determineNadirIdeal (vector< int > &currFront, int frontSize, vector< Individual * > &Q, vector< int > &direction)
 Determine Nadir and Ideal point for Individuals in currFront.
void quickSort (vector< int > &currFront, int top, int bottom, vector< Individual * > *Q, int objective, map< int, double > *distance)
 Sort Individuals in front based on objective or number of dominating Individuals or crowding distance, in descending order.
int partition (vector< int > &currFront, int top, int bottom, vector< Individual * > *Q, int objective, map< int, double > *distance)

Protected Attributes

unsigned n_f_
 Number of fitness functions used for selection.
unsigned selectDimension
vector< unsigned > selectFunction
 Ids of the fitness functions used for selection.
vector< double > nadir
vector< double > ideal
bool fixedNadirIdeal
 Use dominating points selection, see Beume, 2007 - SMS-EMOA.
bool dpSelection

Detailed Description

Definition at line 10 of file NSGA_II.h.


Constructor & Destructor Documentation

NSGA_II::NSGA_II ( unsigned  n_f__ = 3 )

Definition at line 8 of file NSGA_II.cpp.

virtual NSGA_II::~NSGA_II (  ) [inline, virtual]

Definition at line 14 of file NSGA_II.h.


Member Function Documentation

MOComparison NSGA_II::compare ( Individual A,
Individual B,
vector< int > &  direction,
vector< double > &  bestWorstF,
bool  determineValues,
bool  worst 
) [protected]

Determine domination relationship between A and B, or determine best or worst values.

Definition at line 235 of file NSGA_II.cpp.

void NSGA_II::determineNadirIdeal ( vector< int > &  currFront,
int  frontSize,
vector< Individual * > &  Q,
vector< int > &  direction 
) [protected]

Determine Nadir and Ideal point for Individuals in currFront.

Definition at line 419 of file NSGA_II.cpp.

void NSGA_II::fastNondominatedSort ( vector< Individual * > &  Q,
vector< vector< int > > &  front,
vector< int > &  direction,
vector< double > &  bestF 
) [protected]

Divide Individuals from O and optionally P in fronts based on domination.

Definition at line 164 of file NSGA_II.cpp.

void NSGA_II::frontSort ( vector< int > &  currFront,
vector< Individual * > &  Q,
vector< int > &  direction 
) [protected, virtual]

Sort Individuals within same front: nD crowding distance sorting (see NSGA-II by Deb, 2000)

Reimplemented in SMSEMOA_2D_MIES, and SMSEMOA_3D.

Definition at line 309 of file NSGA_II.cpp.

int NSGA_II::partition ( vector< int > &  currFront,
int  top,
int  bottom,
vector< Individual * > *  Q,
int  objective,
map< int, double > *  distance 
) [protected]

Definition at line 377 of file NSGA_II.cpp.

void NSGA_II::quickSort ( vector< int > &  currFront,
int  top,
int  bottom,
vector< Individual * > *  Q,
int  objective,
map< int, double > *  distance 
) [protected]

Sort Individuals in front based on objective or number of dominating Individuals or crowding distance, in descending order.

Definition at line 357 of file NSGA_II.cpp.

void NSGA_II::select ( vector< Individual * > &  P,
vector< Individual * > &  O,
unsigned  mu,
unsigned  kappa,
unsigned  lambda,
vector< int > &  direction,
vector< double > &  bestF 
)

Select mu Individuals from O and optionally P to form new population P, using multiobjective selection scheme as proposed for NSGA-II by Deb, 2000.

Definition at line 31 of file NSGA_II.cpp.

void NSGA_II::setNadirIdeal ( vector< double > &  nadir_,
vector< double > &  ideal_ 
) [inline]

Input fixed boundary point and fixed ideal point, to be used instead of nadir and ideal point of currFront respectively.

Definition at line 17 of file NSGA_II.h.


Member Data Documentation

bool NSGA_II::dpSelection [protected]

Definition at line 37 of file NSGA_II.h.

bool NSGA_II::fixedNadirIdeal [protected]

Use dominating points selection, see Beume, 2007 - SMS-EMOA.

Definition at line 37 of file NSGA_II.h.

vector<double> NSGA_II::ideal [protected]

Definition at line 34 of file NSGA_II.h.

unsigned NSGA_II::n_f_ [protected]

Number of fitness functions used for selection.

Definition at line 29 of file NSGA_II.h.

vector<double> NSGA_II::nadir [protected]

Definition at line 34 of file NSGA_II.h.

unsigned NSGA_II::selectDimension [protected]

Definition at line 29 of file NSGA_II.h.

vector<unsigned> NSGA_II::selectFunction [protected]

Ids of the fitness functions used for selection.

Definition at line 32 of file NSGA_II.h.


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