documentation revised
git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@1603 331e1502-861f-0410-8da2-ba01fb791d7f
This commit is contained in:
parent
26c5bfa7e6
commit
627012f921
17 changed files with 1110 additions and 46 deletions
File diff suppressed because it is too large
Load diff
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{}
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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) {}
|
||||
|
||||
|
|
|
|||
|
|
@ -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){}
|
||||
|
||||
|
|
|
|||
|
|
@ -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) {}
|
||||
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ public:
|
|||
|
||||
/**
|
||||
* Ctor.
|
||||
* @param _ref the reference point
|
||||
* @param _epsilon the epsilon value
|
||||
*/
|
||||
moeoEpsilonObjectiveVectorComparator(double _epsilon) : epsilon(_epsilon)
|
||||
{}
|
||||
|
|
|
|||
|
|
@ -144,8 +144,7 @@ private:
|
|||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param _i
|
||||
* @param _i index of the column
|
||||
*/
|
||||
double countRanking(unsigned int _i)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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){
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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){
|
||||
|
|
|
|||
|
|
@ -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 >
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue