MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > Class Template Reference

Base class allowing to represent a solution (an individual) for multi-objective optimization. More...

#include <MOEO.h>

Inheritance diagram for MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >:

EO< MOEOObjectiveVector > eoObject eoPersistent eoPrintable moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType > moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double > moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity > moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity > List of all members.

Public Types

typedef MOEOObjectiveVector ObjectiveVector
 the objective vector type of a solution
typedef MOEOFitness Fitness
 the fitness type of a solution
typedef MOEODiversity Diversity
 the diversity type of a solution

Public Member Functions

 MOEO ()
 Ctor.
virtual ~MOEO ()
 Virtual dtor.
ObjectiveVector objectiveVector () const
 Returns the objective vector of the current solution.
void objectiveVector (const ObjectiveVector &_objectiveVectorValue)
 Sets the objective vector of the current solution.
void invalidateObjectiveVector ()
 Sets the objective vector as invalid.
bool invalidObjectiveVector () const
 Returns true if the objective vector is invalid, false otherwise.
Fitness fitness () const
 Returns the fitness value of the current solution.
void fitness (const Fitness &_fitnessValue)
 Sets the fitness value of the current solution.
void invalidateFitness ()
 Sets the fitness value as invalid.
bool invalidFitness () const
 Returns true if the fitness value is invalid, false otherwise.
Diversity diversity () const
 Returns the diversity value of the current solution.
void diversity (const Diversity &_diversityValue)
 Sets the diversity value of the current solution.
void invalidateDiversity ()
 Sets the diversity value as invalid.
bool invalidDiversity () const
 Returns true if the diversity value is invalid, false otherwise.
void invalidate ()
 Sets the objective vector, the fitness value and the diversity value as invalid.
bool invalid () const
 Returns true if the fitness value is invalid, false otherwise.
bool operator< (const MOEO &_other) const
 Returns true if the objective vector of the current solution is smaller than the objective vector of _other on the first objective, then on the second, and so on (can be usefull for sorting/printing).
virtual std::string className () const
 Return the class id (the class name as a std::string).
virtual void printOn (std::ostream &_os) const
 Writing object.
virtual void readFrom (std::istream &_is)
 Reading object.

Private Attributes

ObjectiveVector objectiveVectorValue
 the objective vector of this solution
bool invalidObjectiveVectorValue
 true if the objective vector is invalid
Fitness fitnessValue
 the fitness value of this solution
bool invalidFitnessValue
 true if the fitness value is invalid
Diversity diversityValue
 the diversity value of this solution
bool invalidDiversityValue
 true if the diversity value is invalid

Detailed Description

template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
class MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >

Base class allowing to represent a solution (an individual) for multi-objective optimization.

The template argument MOEOObjectiveVector allows to represent the solution in the objective space (it can be a moeoObjectiveVector object). The template argument MOEOFitness is an object reflecting the quality of the solution in term of convergence (the fitness of a solution is always to be maximized). The template argument MOEODiversity is an object reflecting the quality of the solution in term of diversity (the diversity of a solution is always to be maximized). All template arguments must have a void and a copy constructor. Besides, note that, contrary to the mono-objective case (and to EO) where the fitness value of a solution is confused with its objective value, the fitness value differs of the objectives values in the multi-objective case.

Definition at line 31 of file MOEO.h.


Member Function Documentation

template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
void MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::objectiveVector ( const ObjectiveVector _objectiveVectorValue  )  [inline]

Sets the objective vector of the current solution.

Parameters:
_objectiveVectorValue the new objective vector

Definition at line 82 of file MOEO.h.

References MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::invalidObjectiveVectorValue, and MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::objectiveVectorValue.

template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
void MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::fitness ( const Fitness _fitnessValue  )  [inline]

Sets the fitness value of the current solution.

Parameters:
_fitnessValue the new fitness value

Definition at line 124 of file MOEO.h.

References MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::fitnessValue, and MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::invalidFitnessValue.

template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
void MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::diversity ( const Diversity _diversityValue  )  [inline]

Sets the diversity value of the current solution.

Parameters:
_diversityValue the new diversity value

Definition at line 166 of file MOEO.h.

References MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::diversityValue, and MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::invalidDiversityValue.

template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
bool MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::operator< ( const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > &  _other  )  const [inline]

Returns true if the objective vector of the current solution is smaller than the objective vector of _other on the first objective, then on the second, and so on (can be usefull for sorting/printing).

You should implement another function in the sub-class of MOEO to have another sorting mecanism.

Parameters:
_other the other MOEO object to compare with

Definition at line 217 of file MOEO.h.

References MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::objectiveVector().

template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
virtual void MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::printOn ( std::ostream &  _os  )  const [inline, virtual]

Writing object.

Parameters:
_os output stream

Reimplemented from EO< MOEOObjectiveVector >.

Reimplemented in moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >, moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >, moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >, and moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double >.

Definition at line 236 of file MOEO.h.

References MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::invalidObjectiveVector(), and MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::objectiveVectorValue.

template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
virtual void MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::readFrom ( std::istream &  _is  )  [inline, virtual]

Reading object.

Parameters:
_is input stream

Reimplemented from EO< MOEOObjectiveVector >.

Reimplemented in moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >, moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >, moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >, and moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double >.

Definition at line 253 of file MOEO.h.

References MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::invalidateObjectiveVector(), MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::invalidObjectiveVectorValue, and MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::objectiveVectorValue.


The documentation for this class was generated from the following file:
Generated on Tue Apr 17 16:53:21 2007 for ParadisEO-MOEO by  doxygen 1.5.1