eoDominanceMap< EoType > Class Template Reference

eoDominanceMap, utility class to calculate and maintain a map (std::vector<std::vector<bool> >) of pareto dominance statistics. More...

#include <eoDominanceMap.h>

Inheritance diagram for eoDominanceMap< EoType >:

eoUF< const eoPop< EoType > &, void > eoFunctorBase List of all members.

Public Member Functions

void clear ()
 Clears the map.
void operator() (const eoPop< EoType > &_pop)
 Update or create the dominance map.
void remove (unsigned i)
 Removes the domination info for a given individual, thus nothing dominates it and it dominates nothing.
void setup (const eoPop< EoType > &_pop)
 Create domination matrix from scratch.
std::vector< double > sum_dominators () const
 For all elements, returns the no.
std::vector< double > sum_dominants () const
 For all elements, returns the number of elements that the element dominates Thus: higher is better It returns a std::vector<double> cuz that makes subsequent manipulation that much easier.

Private Attributes

std::vector< typename EoType::Fitness > fitness

Detailed Description

template<class EoType>
class eoDominanceMap< EoType >

eoDominanceMap, utility class to calculate and maintain a map (std::vector<std::vector<bool> >) of pareto dominance statistics.

It is set up such that

if map[i][j] == true then i dominates j

The dominance map can be used to perform pareto ranking (eoParetoRanking) or non dominated sorting. For the latter, the remove() member function might come in handy.

Todo:
make it an eoStat?

Definition at line 47 of file eoDominanceMap.h.


Member Function Documentation

template<class EoType>
void eoDominanceMap< EoType >::setup const eoPop< EoType > &  _pop  )  [inline]
 

Create domination matrix from scratch.

Complexity O(N^2)

Definition at line 81 of file eoDominanceMap.h.

Referenced by eoDominanceMap< EOT >::operator()().

template<class EoType>
std::vector<double> eoDominanceMap< EoType >::sum_dominators  )  const [inline]
 

For all elements, returns the no.

of elements that dominate the element Thus: lower is better (and 0 is the front). It returns a std::vector<double> cuz that makes subsequent manipulation that much easier

Definition at line 118 of file eoDominanceMap.h.

Referenced by eoParetoRanking< EOT >::calculate_worths().


The documentation for this class was generated from the following file:
Generated on Thu Oct 19 05:06:46 2006 for EO by  doxygen 1.3.9.1