# 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 >:

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:

- eoDominanceMap.h