#include <eoNDSorting.h>
Inheritance diagram for eoNDSorting< EOT >:

Public Member Functions | |
| eoNDSorting (bool nasty_flag_=false) | |
| virtual std::vector< double > | niche_penalty (const std::vector< unsigned > ¤t_front, const eoPop< EOT > &_pop)=0 |
| Pure virtual function that calculates the 'distance' for each element in the current front Implement to create your own nondominated sorting algorithm. | |
| void | calculate_worths (const eoPop< EOT > &_pop) |
| The actual virtual function the derived classes should implement. | |
Public Attributes | |
| bool | nasty_declone_flag_that_only_is_implemented_for_two_objectives |
Private Member Functions | |
| void | one_objective (const eoPop< EOT > &_pop) |
| void | two_objectives (const eoPop< EOT > &_pop) |
| Optimization for two objectives. | |
| void | m_objectives (const eoPop< EOT > &_pop) |
| void | rank_to_worth () |
Definition at line 42 of file eoNDSorting.h.
|
||||||||||||||||
|
Pure virtual function that calculates the 'distance' for each element in the current front Implement to create your own nondominated sorting algorithm. The size of the returned std::vector should be equal to the size of the current_front. Implemented in eoNDSorting_I< EOT >, and eoNDSorting_II< EOT >. Referenced by eoNDSorting< EOT >::two_objectives(). |
|
||||||||||
|
Optimization for two objectives. Makes the algorithm run in complexity O(n log n) where n is the population size This is the same complexity as for a single objective or truncation selection or sorting. It will perform a sort on the two objectives seperately, and from the information on the ranks of the individuals on these two objectives, the non-dominated sorting rank is determined. There are then three nlogn operations in place: one sort per objective, plus a binary search procedure to combine the information about the ranks. After that it is a simple exercise to calculate the distance penalty Definition at line 140 of file eoNDSorting.h. References eoNDSorting< EOT >::niche_penalty(), and eoValueParam< std::vector< double > >::value(). Referenced by eoNDSorting< EOT >::calculate_worths(). |
1.3.9.1