documentation revised

git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@1603 331e1502-861f-0410-8da2-ba01fb791d7f
This commit is contained in:
jhumeau 2009-07-02 12:41:20 +00:00
commit 627012f921
17 changed files with 1110 additions and 46 deletions

File diff suppressed because it is too large Load diff

View file

@ -108,7 +108,7 @@ public:
/**
* Ctor taking a select, a transform.and a popEval
* @param _continuator the stopping criteria
* @param _eval the evaluation functions
* @param _popEval the evaluation functions
* @param _select the selection scheme
* @param _transform the tranformation scheme
* @param _replace the replacement strategy

View file

@ -94,8 +94,7 @@ public:
* @param _continuator stopping criteria
* @param _popEval population evaluation function
* @param _op variation operators
* @param _metric metric
* @param _kappa scaling factor kappa
* @param _archive archive
*/
moeoSEEA (eoContinue < MOEOT > & _continuator, eoPopEvalFunc < MOEOT > & _popEval, eoGenOp < MOEOT > & _op, moeoArchive < MOEOT > & _archive) :
defaultGenContinuator(0), continuator(_continuator), eval(defaultEval), defaultPopEval(eval), popEval(_popEval), select(randomSelect, _archive, 1.0), selectMany(select,0.0), selectTransform(defaultSelect, defaultTransform), defaultSGAGenOp(defaultQuadOp, 1.0, defaultMonOp, 1.0), genBreed(select, _op), breed(genBreed), archive(_archive)
@ -107,8 +106,7 @@ public:
* @param _continuator stopping criteria
* @param _eval evaluation function
* @param _transform variation operator
* @param _metric metric
* @param _kappa scaling factor kappa
* @param _archive archive
*/
moeoSEEA (eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoTransform < MOEOT > & _transform, moeoArchive < MOEOT > & _archive) :
defaultGenContinuator(0), continuator(_continuator), eval(_eval), defaultPopEval(_eval), popEval(defaultPopEval), select(randomSelect, _archive, 1.0), selectMany(select, 1.0), selectTransform(selectMany, _transform), defaultSGAGenOp(defaultQuadOp, 0.0, defaultMonOp, 0.0), genBreed(select, defaultSGAGenOp), breed(selectTransform), archive(_archive)
@ -120,8 +118,7 @@ public:
* @param _continuator stopping criteria
* @param _popEval population evaluation function
* @param _transform variation operator
* @param _metric metric
* @param _kappa scaling factor kappa
* @param _archive archive
*/
moeoSEEA (eoContinue < MOEOT > & _continuator, eoPopEvalFunc < MOEOT > & _popEval, eoTransform < MOEOT > & _transform, moeoArchive < MOEOT > & _archive) :
defaultGenContinuator(0), continuator(_continuator), eval(defaultEval), defaultPopEval(eval), popEval(_popEval), select(randomSelect, _archive, 1.0), selectMany(select, 1.0), selectTransform(selectMany, _transform), defaultSGAGenOp(defaultQuadOp, 0.0, defaultMonOp, 0.0), genBreed(select, defaultSGAGenOp), breed(selectTransform), archive(_archive)

View file

@ -67,6 +67,7 @@ public:
/**
* Default ctor.
* The moeoObjectiveVectorComparator used to compare solutions is based on Pareto dominance
* @param _replace boolean which determine if a solution with the same objectiveVector than another one, can replace it or not
*/
moeoArchive(bool _replace=true) : eoPop < MOEOT >(), comparator(paretoComparator), replace(_replace)
{}
@ -75,6 +76,7 @@ public:
/**
* Ctor
* @param _comparator the moeoObjectiveVectorComparator used to compare solutions
* @param _replace boolean which determine if a solution with the same objectiveVector than another one, can replace it or not
*/
moeoArchive(moeoObjectiveVectorComparator < ObjectiveVector > & _comparator, bool _replace=true) : eoPop < MOEOT >(), comparator(_comparator), replace(_replace)
{}

View file

@ -60,31 +60,17 @@ public:
* Ctor where you can choose your own moeoObjectiveVectorComparator and archive size.
* @param _comparator the functor used to compare objective vectors
* @param _maxSize the size of archive (must be smaller or egal to the population size)
* @param _replace boolean which determine if a solution with the same objectiveVector than another one, can replace it or not
*/
moeoBoundedArchive(moeoObjectiveVectorComparator < ObjectiveVector > & _comparator, unsigned int _maxSize=100, bool _replace=true) : moeoArchive < MOEOT >(_comparator, _replace), maxSize(_maxSize){}
/**
* Ctor with moeoParetoObjectiveVectorComparator where you can choose your own archive size.
* @param _maxSize the size of archive (must be smaller or egal to the population size)
* @param _replace boolean which determine if a solution with the same objectiveVector than another one, can replace it or not
*/
moeoBoundedArchive(unsigned int _maxSize=100, bool _replace=true) : moeoArchive < MOEOT >(_replace), maxSize(_maxSize){}
/**
* Updates the archive with a given individual _moeo
* @param _moeo the given individual
* @return true if _moeo is non-dominated (and not if it is added to the archive)
*/
//virtual bool operator()(const MOEOT & _moeo) = 0;
/**
* Updates the archive with a given population _pop
* @param _pop the given population
* @return true if a _pop[i] is non-dominated (and not if it is added to the archive)
*/
//virtual bool operator()(const eoPop < MOEOT > & _pop) = 0;
protected:
/** archive max size */

View file

@ -81,6 +81,7 @@ public:
* @param _fitness the assignment fitness method
* @param _diversity the diversity assignment method
* @param _maxSize the size of archive (must be smaller or egal to the population size)
* @param _replace boolean which determine if a solution with the same objectiveVector than another one, can replace it or not
*/
moeoFitDivBoundedArchive(moeoComparator < MOEOT > & _indiComparator, moeoObjectiveVectorComparator < ObjectiveVector > & _comparator, moeoFitnessAssignment < MOEOT > & _fitness, moeoDiversityAssignment < MOEOT > & _diversity, unsigned int _maxSize=100, bool _replace=true) : moeoBoundedArchive < MOEOT >(_comparator, _maxSize, _replace), indiComparator(_indiComparator), fitness(_fitness), diversity(_diversity)
{}
@ -91,13 +92,11 @@ public:
* @param _fitness the assignment fitness method
* @param _diversity the diversity assignment method
* @param _maxSize the size of archive (must be smaller or egal to the population size)
* @param _replace boolean which determine if a solution with the same objectiveVector than another one, can replace it or not
*/
moeoFitDivBoundedArchive(moeoComparator < MOEOT > & _indiComparator, moeoFitnessAssignment < MOEOT > & _fitness, moeoDiversityAssignment < MOEOT > & _diversity, unsigned int _maxSize=100, bool _replace=true) : moeoBoundedArchive < MOEOT >(_maxSize, _replace), indiComparator(_indiComparator), fitness(_fitness), diversity(_diversity)
{}
/**
* Updates the archive with a given individual _moeo
* @param _moeo the given individual

View file

@ -63,6 +63,7 @@ public:
/**
* Default ctor.
* The moeoObjectiveVectorComparator used to compare solutions is based on Pareto dominance
* @param _replace boolean which determine if a solution with the same objectiveVector than another one, can replace it or not
*/
moeoFixedSizeArchive(bool _replace=true) : moeoArchive < MOEOT >(_replace) {}
@ -70,6 +71,7 @@ public:
/**
* Ctor
* @param _comparator the moeoObjectiveVectorComparator used to compare solutions
* @param _replace boolean which determine if a solution with the same objectiveVector than another one, can replace it or not
*/
moeoFixedSizeArchive(moeoObjectiveVectorComparator < ObjectiveVector > & _comparator, bool _replace=true) : moeoArchive < MOEOT >( _comparator, _replace) {}

View file

@ -73,12 +73,14 @@ public:
* Ctor where you can choose your own moeoComparator and archive size.
* @param _comparator the functor used to compare objective vectors
* @param _maxSize the size of archive (must be smaller or egal to the population size)
* @param _replace boolean which determine if a solution with the same objectiveVector than another one, can replace it or not
*/
moeoImprOnlyBoundedArchive(moeoObjectiveVectorComparator < ObjectiveVector > & _comparator, unsigned int _maxSize=100, bool _replace=true) : moeoBoundedArchive < MOEOT >(_comparator, _maxSize, _replace){}
/**
* Ctor with moeoParetoObjectiveVectorComparator where you can choose your own archive size.
* @param _maxSize the size of archive (must be smaller or egal to the population size)
* @param _replace boolean which determine if a solution with the same objectiveVector than another one, can replace it or not
*/
moeoImprOnlyBoundedArchive(unsigned int _maxSize=100, bool _replace=true) : moeoBoundedArchive < MOEOT >(_maxSize, _replace){}

View file

@ -61,6 +61,7 @@ public:
/**
* Default ctor.
* The moeoObjectiveVectorComparator used to compare solutions is based on Pareto dominance
* @param _replace boolean which determine if a solution with the same objectiveVector than another one, can replace it or not
*/
moeoUnboundedArchive(bool _replace=true) : moeoArchive < MOEOT >(_replace) {}
@ -68,6 +69,7 @@ public:
/**
* Ctor
* @param _comparator the moeoObjectiveVectorComparator used to compare solutions
* @param _replace boolean which determine if a solution with the same objectiveVector than another one, can replace it or not
*/
moeoUnboundedArchive(moeoObjectiveVectorComparator < ObjectiveVector > & _comparator, bool _replace=true) : moeoArchive < MOEOT >(_comparator, _replace) {}

View file

@ -50,7 +50,7 @@ public:
/**
* Ctor.
* @param _ref the reference point
* @param _epsilon the epsilon value
*/
moeoEpsilonObjectiveVectorComparator(double _epsilon) : epsilon(_epsilon)
{}

View file

@ -144,8 +144,7 @@ private:
/**
*
* @param _i
* @param _i index of the column
*/
double countRanking(unsigned int _i)
{

View file

@ -81,7 +81,8 @@ class moeoHyperVolumeDifferenceMetric : public moeoVectorVsVectorBinaryMetric <
/**
* calculates and returns the HyperVolume value of a pareto front
* @param _set the vector contains all objective Vector of pareto front
* @param _set1 the vector contains all objective Vector of the first pareto front
* @param _set2 the vector contains all objective Vector of the second pareto front
*/
double operator()(const std::vector < ObjectiveVector > & _set1, const std::vector < ObjectiveVector > & _set2)
{
@ -132,7 +133,8 @@ class moeoHyperVolumeDifferenceMetric : public moeoVectorVsVectorBinaryMetric <
/**
* method caclulate bounds for the normalization
* @param _set the vector of objective vectors
* @param _set1 the vector contains all objective Vector of the first pareto front
* @param _set2 the vector contains all objective Vector of the second pareto front
*/
void setup(const std::vector < ObjectiveVector > & _set1, const std::vector < ObjectiveVector > & _set2){
if(_set1.size() < 1 || _set2.size() < 1)

View file

@ -80,8 +80,8 @@ class moeoHyperVolumeMetric : public moeoVectorUnaryMetric < ObjectiveVector , d
/**
* Constructor with a reference point
* @param _normalize allow to normalize data (default true)
* @param _ref_point the reference point
* @param _bounds bounds value
*/
moeoHyperVolumeMetric(ObjectiveVector& _ref_point=NULL, std::vector < eoRealInterval >& _bounds=NULL): normalize(false), rho(0.0), ref_point(_ref_point), bounds(_bounds){}
@ -245,6 +245,7 @@ class moeoHyperVolumeMetric : public moeoVectorUnaryMetric < ObjectiveVector , d
}
/**
* find a minimum value
* @param _front the front
* @param _no_points the number of points of the front to consider (index 0 to _no_points are considered)
* @param _objective the objective to consider

View file

@ -64,6 +64,7 @@ private:
* a vector z1 is said to eps+-dominate another vector z2, if we can add each objective value in z2 by eps and the resulting objective vector is still weakly dominates by z1.
* @param _o1 the first objective vector (correspond to A, must not have dominated elements)
* @param _o2 the second objective vector (correspond to B, must not have dominated elements)
* @param _obj the objective in consideration
* @return the additive epsilon indicator between the two objective vector _o1 and _o2
*/
double epsilon(const ObjectiveVector & _o1, const ObjectiveVector & _o2, const unsigned int _obj){

View file

@ -142,7 +142,8 @@ private :
/**
* abstract method allow to use differents epsilon indicators
* @param _o1 the first objective vector
* @parama _o2 the second objective vector
* @param _o2 the second objective vector
* @param _obj the objective in consideration
* @return an epsilon indicator between two objective vectors
*/
virtual double epsilon(const ObjectiveVector & _o1, const ObjectiveVector & _o2, const unsigned int _obj)=0;

View file

@ -62,9 +62,9 @@ private:
* Precondition : for a given _obj, _o1 and _o2 must both have a strictly positive or a strictly negative value else an exception is thrown
* compute the epsilon indicator. Ieps(A,B) equals the minimum factor eps such that any objective vector in B is eps-dominated by at least one objective vector in A.
* a vector z1 is said to eps-dominate another vector z2, if we can multiply each objective value in z2 by a factor of z2 and the resulting objective vector is still weakly dominates by z1.
*
* @param _o1 the first objective vector (correspond to A, must not have dominated elements)
* @param _o2 the second objective vector (correspond to B, must not have dominated elements)
* @param _obj the objective in consideration
* @return the epsilon indicator between the two objective vector _o1 and _o2
*/
double epsilon(const ObjectiveVector & _o1, const ObjectiveVector & _o2, const unsigned int _obj){

View file

@ -43,7 +43,7 @@
/**
* Selection strategy that selects ONE individual by using roulette wheel process.
* @WARNING This selection only uses fitness values (and not diversity values).
* WARNING This selection only uses fitness values (and not diversity values).
*/
template < class MOEOT >
class moeoRouletteSelect:public moeoSelectOne < MOEOT >