eoDominanceMap< EoType > Class Template Reference

-*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- More...

#include <eoDominanceMap.h>

Inheritance diagram for eoDominanceMap< EoType >:

eoUF< A1, R > 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 >

-*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-

----------------------------------------------------------------------------- eoDominanceMap.h (c) Maarten Keijzer, Marc Schoenauer, 2001

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Contact: todos@geneura.ugr.es, http://geneura.ugr.es Marc.Schoenauer@polytechnique.fr mkeijzer@dhi.dk 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< Dummy >::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.


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

Generated on Thu Jan 1 23:19:45 2009 for EvolvingObjects by  doxygen 1.5.5