grouping classes in documentation

This commit is contained in:
Johann Dreo 2010-11-05 15:59:35 +01:00
commit f478817c6e
73 changed files with 326 additions and 164 deletions

View file

@ -33,6 +33,8 @@
/** eoInt: implementation of simple integer-valued chromosome. /** eoInt: implementation of simple integer-valued chromosome.
* based on eoVector class * based on eoVector class
*
* @ingroup Representations
*/ */
template <class FitT> class eoInt: public eoVector<FitT, int> template <class FitT> class eoInt: public eoVector<FitT, int>
{ {

View file

@ -40,6 +40,8 @@
* At step t: v(t+1)= c1 * v(t) + c2 * r2 * ( xbest(t)-x(t) ) + c3 * r3 * ( gbest(t) - x(t) ) * At step t: v(t+1)= c1 * v(t) + c2 * r2 * ( xbest(t)-x(t) ) + c3 * r3 * ( gbest(t) - x(t) )
* v(t) is an INT for any time step * v(t) is an INT for any time step
* (ci given and Ri chosen at random in [0;1]). * (ci given and Ri chosen at random in [0;1]).
*
* @ingroup Variators
*/ */
template < class POT > class eoIntegerVelocity:public eoVelocity < POT > template < class POT > class eoIntegerVelocity:public eoVelocity < POT >
{ {

View file

@ -29,6 +29,8 @@
#include <eoOp.h> #include <eoOp.h>
/** @addtogroup Utilities
/** /**
One of the invalidator operators. Use this one as a 'hat' on an operator One of the invalidator operators. Use this one as a 'hat' on an operator
that is defined to work on a generic datatype. This functor will then check that is defined to work on a generic datatype. This functor will then check

View file

@ -37,6 +37,8 @@
* Nt is the total number of generations/event * Nt is the total number of generations/event
* w(0) is the initial weight * w(0) is the initial weight
* w(Nt) is the last inertia weight * w(Nt) is the last inertia weight
*
* @ingroup Variators
*/ */
template <class WeightType, class StopCriteriaType> class eoLinearDecreasingWeightUp:public eoWeightUpdater<WeightType> template <class WeightType, class StopCriteriaType> class eoLinearDecreasingWeightUp:public eoWeightUpdater<WeightType>
{ {

View file

@ -38,6 +38,8 @@
* truncate negative values to 0 - * truncate negative values to 0 -
* *
* to be used within an eoSelectFromWorth object * to be used within an eoSelectFromWorth object
*
* @ingroup Selectors
*/ */
template <class EOT> template <class EOT>
class eoLinearFitScaling : public eoPerf2Worth<EOT> // false: do not cache fitness class eoLinearFitScaling : public eoPerf2Worth<EOT> // false: do not cache fitness

View file

@ -37,6 +37,8 @@
* One of the local best strategies for particle swarm optimization. Each particle has a fixed number of neighbours, ans * One of the local best strategies for particle swarm optimization. Each particle has a fixed number of neighbours, ans
* the neighborhood is social. * the neighborhood is social.
* The topology is never modified during the flight. * The topology is never modified during the flight.
*
* @ingroup Selectors
*/ */
template < class POT > class eoLinearTopology:public eoTopology < template < class POT > class eoLinearTopology:public eoTopology <
POT > POT >

View file

@ -44,6 +44,7 @@ eoMGGReplacement is an eoReplacement:
- select best N-1 of this merged population (detTournament only at the moment) - select best N-1 of this merged population (detTournament only at the moment)
- put them back into parent population - put them back into parent population
@ingroup Replacors
*/ */
template <class EOT> template <class EOT>

View file

@ -43,6 +43,9 @@
* two populations into one (the second argument). * two populations into one (the second argument).
* Note that the algorithms assume that the second argument denotes the * Note that the algorithms assume that the second argument denotes the
* next generation. * next generation.
*
* @ingroup Core
* @ingroup Replacors
*/ */
template<class Chrom> class eoMerge: public eoBF<const eoPop<Chrom>&, eoPop<Chrom>&, void> template<class Chrom> class eoMerge: public eoBF<const eoPop<Chrom>&, eoPop<Chrom>&, void>
@ -51,6 +54,8 @@ template<class Chrom> class eoMerge: public eoBF<const eoPop<Chrom>&, eoPop<Chro
/** /**
Straightforward elitism class, specify the number of individuals to copy Straightforward elitism class, specify the number of individuals to copy
into new geneneration or the rate w.r.t. pop size into new geneneration or the rate w.r.t. pop size
@ingroup Replacors
*/ */
template <class EOT> class eoElitism : public eoMerge<EOT> template <class EOT> class eoElitism : public eoMerge<EOT>
{ {
@ -103,6 +108,7 @@ private :
/** /**
No elite No elite
@ingroup Replacors
*/ */
template <class EOT> class eoNoElitism : public eoElitism<EOT> template <class EOT> class eoNoElitism : public eoElitism<EOT>
{ {
@ -112,6 +118,7 @@ template <class EOT> class eoNoElitism : public eoElitism<EOT>
/** /**
Very elitist class, copies entire population into next gen Very elitist class, copies entire population into next gen
@ingroup Replacors
*/ */
template <class EOT> class eoPlus : public eoMerge<EOT> template <class EOT> class eoPlus : public eoMerge<EOT>
{ {

View file

@ -45,6 +45,7 @@ Replacement strategies that combine en eoMerge and an eoReduce.
/** /**
eoMergeReduce: abstract replacement strategy that is just an application of eoMergeReduce: abstract replacement strategy that is just an application of
an embedded merge, followed by an embedded reduce an embedded merge, followed by an embedded reduce
@ingroup Replacors
*/ */
template <class EOT> template <class EOT>
class eoMergeReduce : public eoReplacement<EOT> class eoMergeReduce : public eoReplacement<EOT>
@ -68,6 +69,7 @@ class eoMergeReduce : public eoReplacement<EOT>
/** /**
ES type of replacement strategy: first add parents to population, then truncate ES type of replacement strategy: first add parents to population, then truncate
@ingroup Replacors
*/ */
template <class EOT> template <class EOT>
class eoPlusReplacement : public eoMergeReduce<EOT> class eoPlusReplacement : public eoMergeReduce<EOT>
@ -82,6 +84,7 @@ class eoPlusReplacement : public eoMergeReduce<EOT>
/** /**
ES type of replacement strategy: ignore parents, truncate offspring ES type of replacement strategy: ignore parents, truncate offspring
@ingroup Replacors
*/ */
template <class EOT> template <class EOT>
class eoCommaReplacement : public eoMergeReduce<EOT> class eoCommaReplacement : public eoMergeReduce<EOT>
@ -97,6 +100,7 @@ class eoCommaReplacement : public eoMergeReduce<EOT>
/** /**
EP type of replacement strategy: first add parents to population, EP type of replacement strategy: first add parents to population,
then truncate using EP tournament then truncate using EP tournament
@ingroup Replacors
*/ */
template <class EOT> template <class EOT>
class eoEPReplacement : public eoMergeReduce<EOT> class eoEPReplacement : public eoMergeReduce<EOT>

View file

@ -29,6 +29,8 @@
/** /**
* Abstract class for neighborboods. Used for particle swarm optimization * Abstract class for neighborboods. Used for particle swarm optimization
* topology strategies. Can be social or physical. * topology strategies. Can be social or physical.
*
* @ingroup Selectors
*/ */
template < class POT > class eoNeighborhood template < class POT > class eoNeighborhood
{ {

View file

@ -38,15 +38,15 @@
#include <eoPopulator.h> #include <eoPopulator.h>
#include <utils/eoHowMany.h> #include <utils/eoHowMany.h>
/***************************************************************************** /** eoOneToOneBreeder: transforms a population using
* eoOneToOneBreeder: transforms a population using
* - an operator that MODIFIES only one parent from the populator * - an operator that MODIFIES only one parent from the populator
* (though it can use any number aside) and thus generates ONE offspring) * (though it can use any number aside) and thus generates ONE offspring)
* - a local replacement between the parent and its offspring * - a local replacement between the parent and its offspring
* *
* Typically, Differential Evolution (Storn and Price 94) and Deb et al's * Typically, Differential Evolution (Storn and Price 94) and Deb et al's
* G3 can be built on this * G3 can be built on this
**************************************************************************** *
* @ingroup Combination
*/ */
template<class EOT> template<class EOT>
class eoOneToOneBreeder: public eoBreed<EOT> class eoOneToOneBreeder: public eoBreed<EOT>

View file

@ -29,6 +29,7 @@
#include <eoPrintable.h> #include <eoPrintable.h>
#include <eoFunctor.h> #include <eoFunctor.h>
#include <utils/eoRNG.h> #include <utils/eoRNG.h>
/** /**
@defgroup Operators Evolutionary Operators @defgroup Operators Evolutionary Operators

View file

@ -37,6 +37,8 @@
* the differnet instances of eoOpContainer: * the differnet instances of eoOpContainer:
* an ***absolute*** probability in the sequential version, and * an ***absolute*** probability in the sequential version, and
* a ***relative*** weight in the proportional version * a ***relative*** weight in the proportional version
*
* @ingroup Combination
*/ */
template <class EOT> template <class EOT>
class eoOpContainer : public eoGenOp<EOT> class eoOpContainer : public eoGenOp<EOT>
@ -83,6 +85,8 @@ class eoOpContainer : public eoGenOp<EOT>
* note the mark, rewind, unmark cycle * note the mark, rewind, unmark cycle
* here operators are repeatedly applied on the same individual(s) * here operators are repeatedly applied on the same individual(s)
* not all too elegant, but it sort of works... * not all too elegant, but it sort of works...
*
* @ingroup Combination
*/ */
template <class EOT> template <class EOT>
class eoSequentialOp : public eoOpContainer<EOT> class eoSequentialOp : public eoOpContainer<EOT>

View file

@ -20,21 +20,20 @@
Contact: todos@geneura.ugr.es, http://geneura.ugr.es Contact: todos@geneura.ugr.es, http://geneura.ugr.es
*/ */
//-----------------------------------------------------------------------------
#ifndef _EOOPSELMASON_H #ifndef _EOOPSELMASON_H
#define _EOOPSELMASON_H #define _EOOPSELMASON_H
//-----------------------------------------------------------------------------
#include <eoProportionalOpSel.h>
#include <eoOpFactory.h> // for eoFactory and eoOpFactory #include <eoOpFactory.h> // for eoFactory and eoOpFactory
#include <map> #include <map>
//-----------------------------------------------------------------------------
/** EO Mason, or builder, for operator selectors. A builder must allocate memory /** EO Mason, or builder, for operator selectors. A builder must allocate memory
to the objects it builds, and then deallocate it when it gets out of scope*/ to the objects it builds, and then deallocate it when it gets out of scope
@ingroup Utilities
*/
template<class eoClass> template<class eoClass>
class eoOpSelMason: public eoFactory<eoOpSelector<eoClass> > { class eoOpSelMason: public eoFactory<eoOpSelector<eoClass> > {

View file

@ -20,6 +20,8 @@
* p1 : [1|2,4,3|6,5] and p2 : [4|5,3,1|6,2] generate two children: * p1 : [1|2,4,3|6,5] and p2 : [4|5,3,1|6,2] generate two children:
* c1 = [2,4,3,6,5,1] 2,4,3 taken from p1 and 6,5,1 from p2 * c1 = [2,4,3,6,5,1] 2,4,3 taken from p1 and 6,5,1 from p2
* c2 = [5,3,1,6,2,4] 5,3,1 taken from p2 and 6,2,4 from p1 * c2 = [5,3,1,6,2,4] 5,3,1 taken from p2 and 6,2,4 from p1
*
* @ingroup Variators
*/ */
template<class Chrom> class eoOrderXover: public eoQuadOp<Chrom> template<class Chrom> class eoOrderXover: public eoQuadOp<Chrom>
{ {

View file

@ -38,6 +38,9 @@
/** @brief Base class to transform raw fitnesses into fitness for selection /** @brief Base class to transform raw fitnesses into fitness for selection
@see eoSelectFromWorth @see eoSelectFromWorth
@ingroup Selectors
@ingroup Utilities
*/ */
template <class EOT, class WorthT = double> template <class EOT, class WorthT = double>
class eoPerf2Worth : public eoUF<const eoPop<EOT>&, void>, public eoValueParam<std::vector<WorthT> > class eoPerf2Worth : public eoUF<const eoPop<EOT>&, void>, public eoValueParam<std::vector<WorthT> >
@ -106,6 +109,8 @@ public:
/** /**
Perf2Worth with fitness cache Perf2Worth with fitness cache
@ingroup Selectors
@ingroup Utilities
*/ */
template <class EOT, class WorthT = typename EOT::Fitness> template <class EOT, class WorthT = typename EOT::Fitness>
class eoPerf2WorthCached : public eoPerf2Worth<EOT, WorthT> class eoPerf2WorthCached : public eoPerf2Worth<EOT, WorthT>
@ -225,7 +230,10 @@ public:
/** A dummy perf2worth, just in case you need it */ /** A dummy perf2worth, just in case you need it
@ingroup Selectors
@ingroup Utilities
*/
template <class EOT> template <class EOT>
class eoNoPerf2Worth : public eoPerf2Worth<EOT, typename EOT::Fitness> class eoNoPerf2Worth : public eoPerf2Worth<EOT, typename EOT::Fitness>
{ {

View file

@ -1,7 +1,5 @@
// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
// "eoFreqContinue.h"
// (c) OPAC Team, LIFL, Feb. 2006 // (c) OPAC Team, LIFL, Feb. 2006
/* This library is free software; you can redistribute it and/or /* This library is free software; you can redistribute it and/or
@ -27,16 +25,25 @@
#include <eoContinue.h> #include <eoContinue.h>
#include <eoPop.h> #include <eoPop.h>
/** A continue that becomes true periodically.
*/
template <class EOT> class eoPeriodicContinue: public eoContinue <EOT> { template <class EOT> class eoPeriodicContinue: public eoContinue <EOT> {
public: public:
/** Constructor. The period is given in parameter. */ /** Constructor. The period is given in parameter. */
eoPeriodicContinue (unsigned __period, unsigned __init_counter = 0); eoPeriodicContinue (unsigned __period, unsigned __init_counter = 0) :
period (__period), counter (__init_counter)
{}
/** It returns 'true' only if the current number of generations modulo /** It returns 'true' only if the current number of generations modulo
the period doen't equal to zero. */ the period doen't equal to zero. */
bool operator () (const eoPop <EOT> & pop); bool operator () (const eoPop <EOT> & pop)
{
return ((++ counter) % period) != 0 ;
}
private: private:
@ -45,19 +52,5 @@ private:
unsigned counter; unsigned counter;
}; };
template <class EOT>
eoPeriodicContinue <EOT> :: eoPeriodicContinue (unsigned __period, unsigned __init_counter
) : period (__period),
counter (__init_counter) {
}
template <class EOT>
bool eoPeriodicContinue <EOT> :: operator () (const eoPop <EOT> & __pop) {
return ((++ counter) % period) != 0 ;
}
#endif #endif

View file

@ -7,7 +7,6 @@
//Implementation of these objects //Implementation of these objects
//-----------------------------------------------------------------------------
std::istream & operator >> ( std::istream& _is, eoPersistent& _o ) { std::istream & operator >> ( std::istream& _is, eoPersistent& _o ) {
_o.readFrom(_is); _o.readFrom(_is);

View file

@ -48,8 +48,9 @@
* and eoInit derived object. in the ctor. * and eoInit derived object. in the ctor.
* EOT must also have a copy ctor, since temporaries are created and then * EOT must also have a copy ctor, since temporaries are created and then
* passed to the eoInit object * passed to the eoInit object
*
* @ingroup Core
*/ */
template<class EOT> template<class EOT>
class eoPop: public std::vector<EOT>, public eoObject, public eoPersistent class eoPop: public std::vector<EOT>, public eoObject, public eoPersistent
{ {
@ -333,9 +334,6 @@ public:
for (unsigned i=0; i<size(); i++) for (unsigned i=0; i<size(); i++)
this->operator[](i).invalidate(); this->operator[](i).invalidate();
} }
protected:
}; };
#endif #endif

View file

@ -44,6 +44,8 @@
* *
* Basic parallelization (synchronous standard evolution engine): * Basic parallelization (synchronous standard evolution engine):
* call the slaves and wait for the results * call the slaves and wait for the results
*
* @ingroup Evaluation
*/ */
template<class EOT> template<class EOT>
class eoPopEvalFunc : public eoBF<eoPop<EOT> & , eoPop<EOT> &, void> class eoPopEvalFunc : public eoBF<eoPop<EOT> & , eoPop<EOT> &, void>
@ -55,6 +57,8 @@ class eoPopEvalFunc : public eoBF<eoPop<EOT> & , eoPop<EOT> &, void>
/** eoPopLoopEval: an instance of eoPopEvalFunc that simply applies /** eoPopLoopEval: an instance of eoPopEvalFunc that simply applies
* a private eoEvalFunc to all offspring * a private eoEvalFunc to all offspring
*
* @ingroup Evaluation
*/ */
template<class EOT> template<class EOT>
class eoPopLoopEval : public eoPopEvalFunc<EOT> { class eoPopLoopEval : public eoPopEvalFunc<EOT> {
@ -79,6 +83,8 @@ private:
/** eoPopLoopEval: an instance of eoPopEvalFunc that simply applies /** eoPopLoopEval: an instance of eoPopEvalFunc that simply applies
* a private eoEvalFunc to all offspring AND ALL PARENTS * a private eoEvalFunc to all offspring AND ALL PARENTS
* as the fitness is supposed here to vary * as the fitness is supposed here to vary
*
* @ingroup Evaluation
*/ */
template<class EOT> template<class EOT>
class eoTimeVaryingLoopEval : public eoPopEvalFunc<EOT> { class eoTimeVaryingLoopEval : public eoPopEvalFunc<EOT> {

Some files were not shown because too many files have changed in this diff Show more