and finally... still more grouping in documentation.

This commit is contained in:
Johann Dreo 2010-11-05 22:46:15 +01:00
commit 2104f5b7e9
76 changed files with 427 additions and 70 deletions

View file

@ -68,8 +68,10 @@
* *
* This is why the template is the complete EOT even though only the fitness * This is why the template is the complete EOT even though only the fitness
* is actually templatized here * is actually templatized here
*
*
* @ingroup Builders
*/ */
template <class EOT> template <class EOT>
eoAlgo<EOT> & do_make_algo_scalar(eoParser& _parser, eoState& _state, eoPopEvalFunc<EOT>& _popeval, eoContinue<EOT>& _continue, eoGenOp<EOT>& _op) eoAlgo<EOT> & do_make_algo_scalar(eoParser& _parser, eoState& _state, eoPopEvalFunc<EOT>& _popeval, eoContinue<EOT>& _continue, eoGenOp<EOT>& _op)
{ {

View file

@ -73,9 +73,9 @@
* *
* This is why the template is the complete EOT even though only the fitness * This is why the template is the complete EOT even though only the fitness
* is actually templatized here * is actually templatized here
*
* @ingroup Builders
*/ */
template <class EOT> template <class EOT>
eoAlgo<EOT> & do_make_algo_scalar(eoParser& _parser, eoState& _state, eoEvalFunc<EOT>& _eval, eoContinue<EOT>& _continue, eoGenOp<EOT>& _op, eoDistance<EOT> * _dist = NULL) eoAlgo<EOT> & do_make_algo_scalar(eoParser& _parser, eoState& _state, eoEvalFunc<EOT>& _eval, eoContinue<EOT>& _continue, eoGenOp<EOT>& _op, eoDistance<EOT> * _dist = NULL)
{ {

View file

@ -69,6 +69,8 @@ bool testDirRes(std::string _dirName, bool _erase);
* *
* CHANGE (March 2008): now receiving an eoValueParam instead of an eoEvalFuncCounter. This function is just interested * CHANGE (March 2008): now receiving an eoValueParam instead of an eoEvalFuncCounter. This function is just interested
* in the value of the parameter calculated on the evaluation function, not in the actual function itself!! * in the value of the parameter calculated on the evaluation function, not in the actual function itself!!
*
* @ingroup Builders
*/ */
template <class EOT> template <class EOT>
eoCheckPoint<EOT>& do_make_checkpoint(eoParser& _parser, eoState& _state, eoValueParam<unsigned long>& _eval, eoContinue<EOT>& _continue) eoCheckPoint<EOT>& do_make_checkpoint(eoParser& _parser, eoState& _state, eoValueParam<unsigned long>& _eval, eoContinue<EOT>& _continue)

View file

@ -41,6 +41,9 @@ bool testDirRes(std::string _dirName, bool _erase);
/////////////////// The checkpoint and other I/O ////////////// /////////////////// The checkpoint and other I/O //////////////
/**
* @ingroup Builders
*/
template <class EOT> template <class EOT>
eoCheckPoint<EOT>& do_make_checkpoint(eoParser& _parser, eoState& _state, eoEvalFuncCounter<EOT>& _eval, eoContinue<EOT>& _continue) eoCheckPoint<EOT>& do_make_checkpoint(eoParser& _parser, eoState& _state, eoEvalFuncCounter<EOT>& _eval, eoContinue<EOT>& _continue)
{ {

View file

@ -49,7 +49,11 @@
bool testDirRes(std::string _dirName, bool _erase); bool testDirRes(std::string _dirName, bool _erase);
/////////////////// The checkpoint and other I/O ////////////// /////////////////// The checkpoint and other I/O //////////////
/** Of course, Fitness needs to be an eoScalarFitnessAssembled!!! */ /** Of course, Fitness needs to be an eoScalarFitnessAssembled!!!
*
*
* @ingroup Builders
* */
template <class EOT> template <class EOT>
eoCheckPoint<EOT>& do_make_checkpoint_assembled(eoParser& _parser, eoState& _state, eoEvalFuncCounter<EOT>& _eval, eoContinue<EOT>& _continue) eoCheckPoint<EOT>& do_make_checkpoint_assembled(eoParser& _parser, eoState& _state, eoEvalFuncCounter<EOT>& _eval, eoContinue<EOT>& _continue)
{ {

View file

@ -49,6 +49,9 @@ It can then be instantiated, and compiled on its own for a given EOType
/////////////////// the stopping criterion //////////////// /////////////////// the stopping criterion ////////////////
/**
* @ingroup Builders
*/
template <class Indi> template <class Indi>
eoCombinedContinue<Indi> * make_combinedContinue(eoCombinedContinue<Indi> *_combined, eoContinue<Indi> *_cont) eoCombinedContinue<Indi> * make_combinedContinue(eoCombinedContinue<Indi> *_combined, eoContinue<Indi> *_cont)
{ {
@ -59,7 +62,10 @@ eoCombinedContinue<Indi> * make_combinedContinue(eoCombinedContinue<Indi> *_comb
return _combined; return _combined;
} }
/**
*
* @ingroup Builders
*/
template <class Indi> template <class Indi>
eoContinue<Indi> & do_make_continue(eoParser& _parser, eoState& _state, eoEvalFuncCounter<Indi> & _eval) eoContinue<Indi> & do_make_continue(eoParser& _parser, eoState& _state, eoEvalFuncCounter<Indi> & _eval)
{ {

View file

@ -39,6 +39,8 @@
/** a helper function that decodes a parameter read by the parser into an /** a helper function that decodes a parameter read by the parser into an
* eoReduce<EOT> & (allocates the pointer and stores it into an eoState) * eoReduce<EOT> & (allocates the pointer and stores it into an eoState)
*
* @ingroup Builders
*/ */
template <class EOT> template <class EOT>
eoReduce<EOT> & decode_reduce(eoParamParamType & _ppReduce, eoState & _state) eoReduce<EOT> & decode_reduce(eoParamParamType & _ppReduce, eoState & _state)
@ -129,8 +131,9 @@ eoReduce<EOT> & decode_reduce(eoParamParamType & _ppReduce, eoState & _state)
* eoHowMany _surviveOffspring number of offspring after offspring recuction * eoHowMany _surviveOffspring number of offspring after offspring recuction
* eoParamParamType & _reduceOffspringType how the offspring are reduced * eoParamParamType & _reduceOffspringType how the offspring are reduced
* eoParamParamType & _reduceFinalType how the final population is reduced to initial population size * eoParamParamType & _reduceFinalType how the final population is reduced to initial population size
*
* @ingroup Builders
*/ */
template <class EOT> template <class EOT>
eoReplacement<EOT> & make_general_replacement( eoReplacement<EOT> & make_general_replacement(
eoParser& _parser, eoState& _state, eoParser& _parser, eoState& _state,

View file

@ -34,17 +34,25 @@
#include <utils/eoParser.h> #include <utils/eoParser.h>
#include <utils/eoState.h> #include <utils/eoState.h>
/** @defgroup Builders Automatic builders
*
* Automatic builders are functions that automagically builds most commons instances for you.
*
* All the options you needs are set in the command-line parser.
* Those functions all start with the "do_make_" prefix.
*
* @ingroup Utilities
*/
///////////////////////////////// INIT POP ///////////////////////////////
/** /**
* Templatized version of parser-based construct of the population * Templatized version of parser-based construct of the population
* + other initializations that are NOT representation-dependent. * + other initializations that are NOT representation-dependent.
* *
* It must then be instantiated, and compiled on its own for a given EOType * It must then be instantiated, and compiled on its own for a given EOType
* (see e.g. ga.h and ga.pp in dir ga) * (see e.g. ga.h and ga.pp in dir ga)
*
* @ingroup Builders
*/ */
template <class EOT> template <class EOT>
eoPop<EOT>& do_make_pop(eoParser & _parser, eoState& _state, eoInit<EOT> & _init) eoPop<EOT>& do_make_pop(eoParser & _parser, eoState& _state, eoInit<EOT> & _init)
{ {

View file

@ -34,8 +34,9 @@
* A trivial function - only here to allow instanciation with a give EOType * A trivial function - only here to allow instanciation with a give EOType
* and separate compilation - see in ga dir, make_run_ga * and separate compilation - see in ga dir, make_run_ga
* *
*
* @ingroup Builders
*/ */
template <class EOT> template <class EOT>
void do_run(eoAlgo<EOT>& _algo, eoPop<EOT>& _pop) void do_run(eoAlgo<EOT>& _algo, eoPop<EOT>& _pop)
{ {

View file

@ -36,6 +36,10 @@
#include <vector> #include <vector>
#include <string> #include <string>
/** @addtogroup Evaluation
* @{
*/
//! Defines properties of eoScalarFitnessAssembled. //! Defines properties of eoScalarFitnessAssembled.
/*! Properties that are hold in this traits class: /*! Properties that are hold in this traits class:
- std::vector<std::string> to hold descriptions of the different fitness terms - std::vector<std::string> to hold descriptions of the different fitness terms
@ -270,7 +274,6 @@ std::istream& operator>>(std::istream& is, eoScalarFitnessAssembled<F, Cmp, Fitn
return is; return is;
} }
/** @} */
#endif #endif

View file

@ -40,7 +40,8 @@ Contact: http://eodev.sourceforge.net
/** Random Es-chromosome initializer (therefore derived from eoInit) /** Random Es-chromosome initializer (therefore derived from eoInit)
@ingroup EvolutionStrategies @ingroup Real
@ingroup Initializators
This class can initialize four types of real-valued genotypes thanks This class can initialize four types of real-valued genotypes thanks

View file

@ -30,7 +30,7 @@
#include <eoVector.h> #include <eoVector.h>
/** /**
\ingroup EvolutionStrategies \ingroup Real
The most complex evolutionary strategy representation. Co-evolving mutation The most complex evolutionary strategy representation. Co-evolving mutation
rates and correlated mutations. rates and correlated mutations.

View file

@ -36,9 +36,12 @@
// needs a selector - here random // needs a selector - here random
#include <eoRandomSelect.h> #include <eoRandomSelect.h>
/** Gloabl crossover operator for ES genotypes. /** Global crossover operator for ES genotypes.
* Uses some Atom crossovers to handle both the object variables * Uses some Atom crossovers to handle both the object variables
* and the mutation strategy parameters * and the mutation strategy parameters
*
* @ingroup Real
* @ingroup Variators
*/ */
template<class EOT> template<class EOT>
class eoEsGlobalXover: public eoGenOp<EOT> class eoEsGlobalXover: public eoGenOp<EOT>

View file

@ -45,7 +45,8 @@
/** ES-style mutation in the large /** ES-style mutation in the large
@ingroup EvolutionStrategies @ingroup Real
@ingroup Variators
Obviously, valid only for eoES*. It is currently valid for three types Obviously, valid only for eoES*. It is currently valid for three types
of ES chromosomes: of ES chromosomes:

View file

@ -31,7 +31,8 @@
/** Initialize Mutation operator /** Initialize Mutation operator
@ingroup EvolutionStrategies @ingroup Real
@ingroup Variators
Proxy class that is used for initializing the mutation operator. It provides an Proxy class that is used for initializing the mutation operator. It provides an
interface between eoEsMutate and the abstract parameterLoader. It also provides interface between eoEsMutate and the abstract parameterLoader. It also provides

View file

@ -30,7 +30,7 @@ Contact: http://eodev.sourceforge.net
/** Simple Evolution Strategy /** Simple Evolution Strategy
@ingroup EvolutionStrategies @ingroup Real
One of the more simple evolution strategies, sporting just a single stdeviation One of the more simple evolution strategies, sporting just a single stdeviation
for the entire chromosome. For more advanced versions see also eoEsStdev for the entire chromosome. For more advanced versions see also eoEsStdev

View file

@ -41,6 +41,9 @@
* and the mutation strategy parameters * and the mutation strategy parameters
* It is an eoBinOp and has to be wrapped into an eoGenOp before being used * It is an eoBinOp and has to be wrapped into an eoGenOp before being used
* like the global version * like the global version
*
* @ingroup Real
* @ingroup Variators
*/ */
template<class EOT> template<class EOT>
class eoEsStandardXover: public eoBinOp<EOT> class eoEsStandardXover: public eoBinOp<EOT>

View file

@ -28,10 +28,10 @@ Contact: http://eodev.sourceforge.net
/** Evolutionary Strategy with a standard deviation per parameter /** Evolutionary Strategy with a standard deviation per parameter
@ingroup EvolutionStrategies
Evolutionary strategie style representation, supporting co-evolving Evolutionary strategie style representation, supporting co-evolving
standard deviations. standard deviations.
@ingroup Real
*/ */
template <class Fit> template <class Fit>
class eoEsStdev : public eoVector<Fit, double> class eoEsStdev : public eoVector<Fit, double>

View file

@ -43,8 +43,10 @@
* As for the bounds, the values are here folded back into the bounds. * As for the bounds, the values are here folded back into the bounds.
* The other possiblity would be to iterate until we fall inside the bounds - * The other possiblity would be to iterate until we fall inside the bounds -
* but this sometimes takes a long time!!! * but this sometimes takes a long time!!!
*
* @ingroup Real
* @ingroup Variators
*/ */
template<class EOT> class eoNormalVecMutation: public eoMonOp<EOT> template<class EOT> class eoNormalVecMutation: public eoMonOp<EOT>
{ {
public: public:
@ -111,8 +113,10 @@ private:
* As for the bounds, the values are here folded back into the bounds. * As for the bounds, the values are here folded back into the bounds.
* The other possiblity would be to iterate until we fall inside the bounds - * The other possiblity would be to iterate until we fall inside the bounds -
* but this sometimes takes a long time!!! * but this sometimes takes a long time!!!
*
* @ingroup Real
* @ingroup Variators
*/ */
template<class EOT> class eoNormalMutation template<class EOT> class eoNormalMutation
: public eoMonOp<EOT> : public eoMonOp<EOT>
{ {
@ -172,8 +176,10 @@ private:
* and write the update() method! * and write the update() method!
* here the 1 fifth rule: count the proportion of successful mutations, and * here the 1 fifth rule: count the proportion of successful mutations, and
* increase sigma if more than threshold (1/5 !) * increase sigma if more than threshold (1/5 !)
*
* @ingroup Real
* @ingroup Variators
*/ */
template<class EOT> class eoOneFifthMutation : template<class EOT> class eoOneFifthMutation :
public eoNormalMutation<EOT>, public eoUpdatable public eoNormalMutation<EOT>, public eoUpdatable
{ {

View file

@ -33,6 +33,8 @@
/** eoReal: implementation of simple real-valued chromosome. /** eoReal: implementation of simple real-valued chromosome.
* based on eoVector class * based on eoVector class
*
* @ingroup Real
*/ */
template <class FitT> class eoReal: public eoVector<FitT, double> template <class FitT> class eoReal: public eoVector<FitT, double>
{ {

View file

@ -37,6 +37,9 @@
/** /**
Discrete crossover == exchange of values Discrete crossover == exchange of values
*
* @ingroup Real
* @ingroup Variators
*/ */
class eoDoubleExchange: public eoBinOp<double> class eoDoubleExchange: public eoBinOp<double>
{ {
@ -67,6 +70,9 @@ public:
/** /**
Intermediate crossover == linear combination Intermediate crossover == linear combination
*
* @ingroup Real
* @ingroup Variators
*/ */
class eoDoubleIntermediate: public eoBinOp<double> class eoDoubleIntermediate: public eoBinOp<double>
{ {

View file

@ -35,6 +35,9 @@
/** Simple initialization for any EOT that derives from std::vector<double> /** Simple initialization for any EOT that derives from std::vector<double>
* uniformly in some bounds * uniformly in some bounds
*
* @ingroup Real
* @ingroup Variators
*/ */
template <class EOT> template <class EOT>
class eoRealInitBounded : public eoInit<EOT> class eoRealInitBounded : public eoInit<EOT>

View file

@ -39,7 +39,9 @@
by uniform choice with range epsilon by uniform choice with range epsilon
with probability p_change per variable with probability p_change per variable
\class eoUniformMutation eoRealOp.h Tutorial/eoRealOp.h \class eoUniformMutation eoRealOp.h Tutorial/eoRealOp.h
\ingroup parameteric *
* @ingroup Real
* @ingroup Variators
*/ */
template<class EOT> class eoUniformMutation: public eoMonOp<EOT> template<class EOT> class eoUniformMutation: public eoMonOp<EOT>
@ -138,7 +140,9 @@ private:
/** eoDetUniformMutation --> changes exactly k values of the std::vector /** eoDetUniformMutation --> changes exactly k values of the std::vector
by uniform choice with range epsilon by uniform choice with range epsilon
\class eoDetUniformMutation eoRealOp.h Tutorial/eoRealOp.h \class eoDetUniformMutation eoRealOp.h Tutorial/eoRealOp.h
\ingroup parameteric *
* @ingroup Real
* @ingroup Variators
*/ */
template<class EOT> class eoDetUniformMutation: public eoMonOp<EOT> template<class EOT> class eoDetUniformMutation: public eoMonOp<EOT>
@ -241,7 +245,9 @@ private:
/** eoSegmentCrossover --> uniform choice in segment /** eoSegmentCrossover --> uniform choice in segment
== arithmetical with same value along all coordinates == arithmetical with same value along all coordinates
\class eoSegmentCrossover eoRealOp.h Tutorial/eoRealOp.h \class eoSegmentCrossover eoRealOp.h Tutorial/eoRealOp.h
\ingroup parameteric *
* @ingroup Real
* @ingroup Variators
*/ */
template<class EOT> class eoSegmentCrossover: public eoQuadOp<EOT> template<class EOT> class eoSegmentCrossover: public eoQuadOp<EOT>
@ -331,9 +337,10 @@ protected:
/** eoHypercubeCrossover --> uniform choice in hypercube /** eoHypercubeCrossover --> uniform choice in hypercube
== arithmetical with different values for each coordinate == arithmetical with different values for each coordinate
\class eoArithmeticCrossover eoRealOp.h Tutorial/eoRealOp.h \class eoArithmeticCrossover eoRealOp.h Tutorial/eoRealOp.h
\ingroup parameteric *
* @ingroup Real
* @ingroup Variators
*/ */
template<class EOT> class eoHypercubeCrossover: public eoQuadOp<EOT> template<class EOT> class eoHypercubeCrossover: public eoQuadOp<EOT>
{ {
public: public:
@ -451,7 +458,9 @@ protected:
/** eoRealUxOver --> Uniform crossover, also termed intermediate crossover /** eoRealUxOver --> Uniform crossover, also termed intermediate crossover
\class eoRealUxOver eoRealOp.h Tutorial/eoRealOp.h \class eoRealUxOver eoRealOp.h Tutorial/eoRealOp.h
\ingroup parameteric *
* @ingroup Real
* @ingroup Variators
*/ */
template<class EOT> class eoRealUXover: public eoQuadOp<EOT> template<class EOT> class eoRealUXover: public eoQuadOp<EOT>

View file

@ -32,6 +32,10 @@
/**
* @ingroup Real
* @ingroup Variators
*/
template<class EOT> class eoSBXCrossover: public eoQuadOp<EOT> template<class EOT> class eoSBXCrossover: public eoQuadOp<EOT>
{ {
public: public:

View file

@ -62,6 +62,14 @@
// without self-adaptation // without self-adaptation
#include <es/make_real.h> #include <es/make_real.h>
/** @addtogroup Builders
* @{
*/
/** @addtogroup Real
* @{
*/
//Representation dependent - rewrite everything anew for each representation //Representation dependent - rewrite everything anew for each representation
////////////////////////// //////////////////////////
// the genotypes // the genotypes
@ -143,4 +151,6 @@ void run_ea(eoAlgo<eoEsFull<eoMinimizingFitness> >& _ga, eoPop<eoEsFull<eoMinimi
// that one is not templatized, but is here for completeness // that one is not templatized, but is here for completeness
void make_help(eoParser & _parser); void make_help(eoParser & _parser);
/** @} */
/** @} */
#endif #endif

View file

@ -35,6 +35,10 @@ Contact: http://eodev.sourceforge.net
#include "utils/eoState.h" #include "utils/eoState.h"
/** @addtogroup Builders
* @{
*/
/** Initialize genotype /** Initialize genotype
This fuction does the initialization of what's needed for a particular genotype This fuction does the initialization of what's needed for a particular genotype
@ -110,6 +114,7 @@ eoEsChromInit<EOT> & do_make_genotype(eoParser& _parser, eoState& _state, EOT)
return *init; return *init;
} }
/** @} */
#endif // EO_make_genotype_h #endif // EO_make_genotype_h

View file

@ -45,6 +45,10 @@
#include <utils/eoState.h> #include <utils/eoState.h>
/** @addtogroup Builders
* @{
*/
/* /*
* This function builds the operators that will be applied to the eoReal * This function builds the operators that will be applied to the eoReal
* *
@ -291,4 +295,5 @@ eoGenOp<EOT> & do_make_op(eoParameterLoader& _parser, eoState& _state, eoInit<EO
// that's it! // that's it!
return *op; return *op;
} }
/** @} */
#endif #endif

View file

@ -44,6 +44,10 @@ Contact: http://eodev.sourceforge.net
#include <utils/eoState.h> #include <utils/eoState.h>
/** @addtogroup Builders
* @{
*/
/* /*
* This function builds the operators that will be applied to the eoReal * This function builds the operators that will be applied to the eoReal
* *
@ -187,6 +191,7 @@ eoGenOp<EOT> & do_make_op(eoParser& _parser, eoState& _state, eoRealInitBounded<
#endif // EO_make_op_h #endif // EO_make_op_h
/** @} */
// Local Variables: // Local Variables:
// coding: iso-8859-1 // coding: iso-8859-1

View file

@ -45,6 +45,10 @@
#include <utils/eoState.h> #include <utils/eoState.h>
/** @addtogroup Builders
* @{
*/
/* /*
* This function builds the operators that will be applied to the eoReal * This function builds the operators that will be applied to the eoReal
* *
@ -281,4 +285,5 @@ eoGenOp<EOT> & do_make_op(eoParser& _parser, eoState& _state, eoRealInitBounded<
// that's it! // that's it!
return op; return op;
} }
/** @} */
#endif #endif

View file

@ -60,6 +60,10 @@
//Representation dependent - rewrite everything anew for each representation //Representation dependent - rewrite everything anew for each representation
////////////////////////// //////////////////////////
/** @addtogroup Builders
* @{
*/
// the genotypes // the genotypes
eoRealInitBounded<eoReal<double> > & make_genotype(eoParser& _parser, eoState& _state, eoReal<double> _eo); eoRealInitBounded<eoReal<double> > & make_genotype(eoParser& _parser, eoState& _state, eoReal<double> _eo);
eoRealInitBounded<eoReal<eoMinimizingFitness> > & make_genotype(eoParser& _parser, eoState& _state, eoReal<eoMinimizingFitness> _eo); eoRealInitBounded<eoReal<eoMinimizingFitness> > & make_genotype(eoParser& _parser, eoState& _state, eoReal<eoMinimizingFitness> _eo);
@ -99,4 +103,5 @@ void run_ea(eoAlgo<eoReal<eoMinimizingFitness> >& _ga, eoPop<eoReal<eoMinimizing
// Because of that, the source is in src/utils dir // Because of that, the source is in src/utils dir
void make_help(eoParser & _parser); void make_help(eoParser & _parser);
/** @} */
#endif #endif

View file

@ -3,6 +3,8 @@
#include <vector> #include <vector>
/** @ingroup Utilities
*/
class lower_triangular_matrix { class lower_triangular_matrix {
unsigned n; unsigned n;
@ -21,6 +23,8 @@ class lower_triangular_matrix {
std::vector<double>::const_iterator operator[](unsigned i) const { return data.begin() + i*(i+1)/2; } std::vector<double>::const_iterator operator[](unsigned i) const { return data.begin() + i*(i+1)/2; }
}; };
/** @ingroup Utilities
*/
class square_matrix { class square_matrix {
unsigned n; unsigned n;
std::vector<double> data; std::vector<double> data;

View file

@ -39,6 +39,8 @@
/** eoBitFlip --> changes 1 bit /** eoBitFlip --> changes 1 bit
\class eoBitBitFlip eoBitOp.h ga/eoBitOp.h \class eoBitBitFlip eoBitOp.h ga/eoBitOp.h
\ingroup bitstring \ingroup bitstring
@ingroup Variators
*/ */
template<class Chrom> class eoOneBitFlip: public eoMonOp<Chrom> template<class Chrom> class eoOneBitFlip: public eoMonOp<Chrom>

View file

@ -34,7 +34,10 @@
/** EO Factory. An instance of the factory class to create operators that act /** EO Factory. An instance of the factory class to create operators that act
on bitstring chromosomes. Only those chromosomes can instantiate the operators on bitstring chromosomes. Only those chromosomes can instantiate the operators
that are created here that are created here
@see eoSelect*/ @see eoSelect
@ingroup Variators
*/
template< class EOT> template< class EOT>
class eoBitOpFactory: public eoFactory<EOT> class eoBitOpFactory: public eoFactory<EOT>
{ {

View file

@ -28,6 +28,9 @@
#include <eoOp.h> #include <eoOp.h>
/** a simple boolean mutation - to be used in generic eoOp's /** a simple boolean mutation - to be used in generic eoOp's
*
@ingroup bitstring
@ingroup Variators
*/ */
class eoBoolFlip : public eoMonOp<bool> { class eoBoolFlip : public eoMonOp<bool> {
public: public:

View file

@ -41,7 +41,6 @@
* here the same formula is applied, with some of the best individuals * here the same formula is applied, with some of the best individuals
* and for some of the worst individuals (with different learning rates) * and for some of the worst individuals (with different learning rates)
*/ */
template <class EOT> template <class EOT>
class eoPBILAdditive : public eoDistribUpdater<EOT> class eoPBILAdditive : public eoDistribUpdater<EOT>
{ {

View file

@ -52,6 +52,10 @@
//Representation dependent - rewrite everything anew for each representation //Representation dependent - rewrite everything anew for each representation
////////////////////////// //////////////////////////
/** @addtogroup Builders
* @{
*/
// the genotypes // the genotypes
eoInit<eoBit<double> > & make_genotype(eoParser& _parser, eoState& _state, eoBit<double> _eo); eoInit<eoBit<double> > & make_genotype(eoParser& _parser, eoState& _state, eoBit<double> _eo);
eoInit<eoBit<eoMinimizingFitness> > & make_genotype(eoParser& _parser, eoState& _state, eoBit<eoMinimizingFitness> _eo); eoInit<eoBit<eoMinimizingFitness> > & make_genotype(eoParser& _parser, eoState& _state, eoBit<eoMinimizingFitness> _eo);
@ -91,4 +95,5 @@ void run_ea(eoAlgo<eoBit<eoMinimizingFitness> >& _ga, eoPop<eoBit<eoMinimizingFi
// Because of that, the source is in src/utils dir // Because of that, the source is in src/utils dir
void make_help(eoParser & _parser); void make_help(eoParser & _parser);
/** @} */
#endif #endif

View file

@ -55,8 +55,10 @@
* WARNING: that last argument will generally be the result of calling * WARNING: that last argument will generally be the result of calling
* the default ctor of EOT, resulting in most cases in an EOT * the default ctor of EOT, resulting in most cases in an EOT
* that is ***not properly initialized*** * that is ***not properly initialized***
*
* @ingroup bitstring
* @ingroup Builders
*/ */
template <class EOT> template <class EOT>
eoInit<EOT> & do_make_genotype(eoParser& _parser, eoState& _state, EOT) eoInit<EOT> & do_make_genotype(eoParser& _parser, eoState& _state, EOT)
{ {

View file

@ -63,6 +63,9 @@
* EOT myEO; * EOT myEO;
* _init(myEO); * _init(myEO);
* and myEO is then an ACTUAL object * and myEO is then an ACTUAL object
*
* @ingroup bitstring
* @ingroup Builders
*/ */
template <class EOT> template <class EOT>

View file

@ -33,8 +33,9 @@
* to be inserted in EO. This struct or class can be of any * to be inserted in EO. This struct or class can be of any
* form, the only thing this class does is attach a fitness * form, the only thing this class does is attach a fitness
* value to it and makes it the appropriate type (derives it from EO). * value to it and makes it the appropriate type (derives it from EO).
*
* @ingroup Utilities
*/ */
template <class Fit, class External> template <class Fit, class External>
class eoExternalEO : public EO<Fit>, virtual public External class eoExternalEO : public EO<Fit>, virtual public External
{ {
@ -74,7 +75,9 @@ public :
}; };
/// To remove ambiguities between EO<F> and External, streaming operators are defined yet again /** To remove ambiguities between EO<F> and External, streaming operators are defined yet again
* @ingroup Utilities
*/
template <class F, class External> template <class F, class External>
std::ostream& operator<<(std::ostream& os, const eoExternalEO<F, External>& eo) std::ostream& operator<<(std::ostream& os, const eoExternalEO<F, External>& eo)
{ {
@ -82,7 +85,9 @@ std::ostream& operator<<(std::ostream& os, const eoExternalEO<F, External>& eo)
return os; return os;
} }
/// To remove ambiguities between EO<F> and External, streaming operators are defined yet again /** To remove ambiguities between EO<F> and External, streaming operators are defined yet again
* @ingroup Utilities
*/
template <class F, class External> template <class F, class External>
std::istream& operator>>(std::istream& is, eoExternalEO<F, External>& eo) std::istream& operator>>(std::istream& is, eoExternalEO<F, External>& eo)
{ {

View file

@ -40,6 +40,8 @@
External func(); External func();
Where External is the user defined struct or class Where External is the user defined struct or class
@ingroup Utilities
*/ */
template <class F, class External, class ExternalEO = eoExternalEO<F, External> > template <class F, class External, class ExternalEO = eoExternalEO<F, External> >
class eoExternalInit : public eoInit<ExternalEO> class eoExternalInit : public eoInit<ExternalEO>
@ -68,6 +70,8 @@ private :
Fit func(External&); Fit func(External&);
Where External is the user defined struct or class and Fit the fitness type Where External is the user defined struct or class and Fit the fitness type
@ingroup Utilities
*/ */
template <class F, class External, class ExternalEO = eoExternalEO<F, External> > template <class F, class External, class ExternalEO = eoExternalEO<F, External> >
class eoExternalEvalFunc : public eoEvalFunc<ExternalEO> class eoExternalEvalFunc : public eoEvalFunc<ExternalEO>
@ -96,6 +100,8 @@ class eoExternalEvalFunc : public eoEvalFunc<ExternalEO>
Where External is the user defined struct or class. Where External is the user defined struct or class.
The function should return true when it changed something, false otherwise The function should return true when it changed something, false otherwise
@ingroup Utilities
*/ */
template <class F, class External, class ExternalEO = eoExternalEO<F, External> > template <class F, class External, class ExternalEO = eoExternalEO<F, External> >
@ -123,6 +129,8 @@ class eoExternalMonOp : public eoMonOp<ExternalEO>
Where External is the user defined struct or class Where External is the user defined struct or class
The function should return true when it changed something, false otherwise The function should return true when it changed something, false otherwise
@ingroup Utilities
*/ */
template <class F, class External, class ExternalEO = eoExternalEO<F, External> > template <class F, class External, class ExternalEO = eoExternalEO<F, External> >
class eoExternalBinOp : public eoBinOp<ExternalEO> class eoExternalBinOp : public eoBinOp<ExternalEO>
@ -149,6 +157,8 @@ class eoExternalBinOp : public eoBinOp<ExternalEO>
Where External is the user defined struct or class Where External is the user defined struct or class
The function should return true when it changed something, false otherwise The function should return true when it changed something, false otherwise
@ingroup Utilities
*/ */
template <class F, class External, class ExternalEO = eoExternalEO<F, External> > template <class F, class External, class ExternalEO = eoExternalEO<F, External> >
class eoExternalQuadOp : public eoQuadOp<ExternalEO> class eoExternalQuadOp : public eoQuadOp<ExternalEO>

View file

@ -37,7 +37,11 @@
// eoString // eoString
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
/** Adaptor that turns an STL std::string into an EO */ /** Adaptor that turns an STL std::string into an EO
@ingroup Representations
@ingroup Utilities
*/
template <class fitnessT > template <class fitnessT >
class eoString: public EO<fitnessT>, public std::string class eoString: public EO<fitnessT>, public std::string
{ {

View file

@ -36,6 +36,10 @@
#include <utils/eoStat.h> #include <utils/eoStat.h>
#include <eoScalarFitnessAssembled.h> #include <eoScalarFitnessAssembled.h>
/** @addtogroup Stats
* @{
*/
/** /**
Average fitness values of a population, where the fitness is Average fitness values of a population, where the fitness is
of type eoScalarAssembledFitness. Specify in the constructor, of type eoScalarAssembledFitness. Specify in the constructor,
@ -109,4 +113,5 @@ private:
unsigned whichFitnessTerm; unsigned whichFitnessTerm;
}; };
/** @} */
#endif #endif

View file

@ -32,6 +32,21 @@
#include <utils/eoMonitor.h> #include <utils/eoMonitor.h>
#include <utils/eoStat.h> #include <utils/eoStat.h>
/** @defgroup Checkpoints Checkpointing
*
* Checkpoints are supposed to be called perodically (for instance at each generation) and
* will call every functors you put in them.
*
* Use them with eoStats, eoUpdater and eoMonitor to get statistics at each generation.
*
* @see eoStats
* @see eoMonitor
* @see eoUpdater
*
* @ingroup Utilities
*
* @{
*/
/** eoCheckPoint is a container class. /** eoCheckPoint is a container class.
It contains std::vectors of (pointers to) It contains std::vectors of (pointers to)
@ -161,4 +176,5 @@ std::string eoCheckPoint<EOT>::allClassNames() const
return s; return s;
} }
/** @} */
#endif #endif

View file

@ -27,9 +27,14 @@
#define _eoDistance_H #define _eoDistance_H
#include <eoFunctor.h> #include <eoFunctor.h>
/** @addtogroup Stats
* @{
* */
/** /**
This is a generic class for distance functors: This is a generic class for distance functors:
takes 2 things ane returns a double takes 2 things and returns a double
*/ */
template< class EOT > template< class EOT >
class eoDistance : public eoBF<const EOT &, const EOT &, double> class eoDistance : public eoBF<const EOT &, const EOT &, double>
@ -94,5 +99,6 @@ public:
}; };
/** @} */
#endif #endif

View file

@ -32,8 +32,12 @@
#include <utils/eoFileSnapshot.h> #include <utils/eoFileSnapshot.h>
/** /**
The FDC computation - stores the values into eoValueParam<EOT,double> The Fitness Distance Correlation computation.
Stores the values into eoValueParam<EOT,double>
so they can be snapshot by some eoGnuplotSnapshot ... so they can be snapshot by some eoGnuplotSnapshot ...
@ingroup Stats
*/ */
template <class EOT> template <class EOT>
class eoFDCStat : public eoStat<EOT, double> class eoFDCStat : public eoStat<EOT, double>
@ -106,6 +110,8 @@ private:
* As I failed to have FDC stat as an eoStat, this is the trick * As I failed to have FDC stat as an eoStat, this is the trick
* to put the 2 eoParam<std::vector<double> > into a monitor * to put the 2 eoParam<std::vector<double> > into a monitor
* This class does nothing else. * This class does nothing else.
@ingroup Stats
*/ */
template <class EOT> template <class EOT>
class eoFDCFileSnapshot : public eoFileSnapshot // is an eoMonitor class eoFDCFileSnapshot : public eoFileSnapshot // is an eoMonitor

View file

@ -34,7 +34,10 @@ Authors:
#include "eoStat.h" #include "eoStat.h"
//! Ratio of the number of individuals with a feasible dual fitness in the population (@see eoDualFitness) /** Ratio of the number of individuals with a feasible dual fitness in the population (@see eoDualFitness)
*
* @ingroup Stats
*/
template<class EOT> template<class EOT>
class eoFeasibleRatioStat : public eoStat< EOT, double > class eoFeasibleRatioStat : public eoStat< EOT, double >
{ {

View file

@ -34,12 +34,14 @@
#include "utils/eoMonitor.h" #include "utils/eoMonitor.h"
#include "eoObject.h" #include "eoObject.h"
/** Prints statistics to file /** Prints statistics to file
Modified the default behavior, so that it erases existing files. Can Modified the default behavior, so that it erases existing files. Can
be modified in the ctor. be modified in the ctor.
@version MS 25/11/00 @version MS 25/11/00
@ingroup Monitors
*/ */
class eoFileMonitor : public eoMonitor class eoFileMonitor : public eoMonitor
{ {

View file

@ -48,8 +48,9 @@ so that you can pass e.g. an evalcounter (minor)
I failed to templatize everything so that it can handle eoParam<std::vector<T> > I failed to templatize everything so that it can handle eoParam<std::vector<T> >
for any type T, simply calling their getValue method ... for any type T, simply calling their getValue method ...
*/
@ingroup Monitors
*/
class eoFileSnapshot : public eoMonitor class eoFileSnapshot : public eoMonitor
{ {
public : public :

View file

@ -1,9 +1,16 @@
#ifndef eoFuncPtrStat_h #ifndef eoFuncPtrStat_h
#define eoFuncPtrStat_h #define eoFuncPtrStat_h
#include <eoFunctorStore.h> #include <eoFunctorStore.h>
#include <utils/eoStat.h> #include <utils/eoStat.h>
/** Wrapper to turn any stand-alone function and into an eoStat.
*
* The function should take an eoPop as argument.
*
* @ingroup Stats
*/
template <class EOT, class T> template <class EOT, class T>
class eoFuncPtrStat : public eoStat<EOT, T> class eoFuncPtrStat : public eoStat<EOT, T>
{ {
@ -25,6 +32,9 @@ private:
func_t func; func_t func;
}; };
/**
* @ingroup Stats
*/
template <class EOT, class T> template <class EOT, class T>
eoFuncPtrStat<EOT, T>& makeFuncPtrStat( T (*func)(const eoPop<EOT>&), eoFunctorStore& store, std::string description = "func") { eoFuncPtrStat<EOT, T>& makeFuncPtrStat( T (*func)(const eoPop<EOT>&), eoFunctorStore& store, std::string description = "func") {
return store.storeFunctor( return store.storeFunctor(

View file

@ -34,6 +34,8 @@ calls to plots what is already written by some eoMonitor into a file
@author Marc Schoenauer @author Marc Schoenauer
@version 0.0 (2001) @version 0.0 (2001)
@ingroup Monitors
*/ */
class eoGnuplot class eoGnuplot
{ {

View file

@ -43,6 +43,8 @@ eoGnuplot1DMonitor plots stats through gnuplot
Assumes that the same file is appened every so and so, and replots it Assumes that the same file is appened every so and so, and replots it
everytime everytime
@ingroup Monitors
*/ */
class eoGnuplot1DMonitor : public eoFileMonitor, public eoGnuplot class eoGnuplot1DMonitor : public eoFileMonitor, public eoGnuplot
{ {

View file

@ -47,6 +47,8 @@ This class plots through gnuplot the eoStat given as argument
Assumes that the same file is re-written every so and so, and plots it Assumes that the same file is re-written every so and so, and plots it
from scratch everytime it's called from scratch everytime it's called
@ingroup Monitors
*/ */
class eoGnuplot1DSnapshot: public eoFileSnapshot, public eoGnuplot class eoGnuplot1DSnapshot: public eoFileSnapshot, public eoGnuplot
{ {

View file

@ -29,6 +29,11 @@ Contact: http://eodev.sourceforge.net
#ifndef eoHowMany_h #ifndef eoHowMany_h
#define eoHowMany_h #define eoHowMany_h
#include <sstream>
#include <utils/eoLogger.h>
/** A helper class, to determine a number of individuals from another one /** A helper class, to determine a number of individuals from another one
* Typically, is used in selection / replacement procedures, e.g. * Typically, is used in selection / replacement procedures, e.g.
* the number of offspring from the number of parents, or * the number of offspring from the number of parents, or
@ -65,12 +70,9 @@ Contact: http://eodev.sourceforge.net
* eoG3Repalcement) * eoG3Repalcement)
* *
* It is an eoPersistent because we need to be able to use eoParamValue<eoHowMany> * It is an eoPersistent because we need to be able to use eoParamValue<eoHowMany>
*
* @ingroup Core
*/ */
#include <sstream>
#include <utils/eoLogger.h>
class eoHowMany : public eoPersistent class eoHowMany : public eoPersistent
{ {
public: public:

View file

@ -31,14 +31,15 @@
#include <utils/eoRNG.h> #include <utils/eoRNG.h>
/** /**
\defgroup EvolutionStrategies \defgroup Real
*/ */
/** /**
\class eoIntBounds eoIntBounds.h es/eoIntBounds.h \class eoIntBounds eoIntBounds.h es/eoIntBounds.h
\ingroup EvolutionStrategies \ingroup Real
\ingroup Bounds
Defines bound classes for real numbers. Defines bound classes for real numbers.
@ -149,6 +150,9 @@ public:
}; };
/** A default class for unbounded variables /** A default class for unbounded variables
*
* @ingroup Real
* @ingroup Bounds
*/ */
class eoIntNoBounds : public eoIntBounds class eoIntNoBounds : public eoIntBounds
{ {
@ -221,11 +225,18 @@ public:
}; };
// one object for all - see eoIntBounds.cpp /** one object for all - see eoIntBounds.cpp
*
* @ingroup Real
* @ingroup Bounds
*/
extern eoIntNoBounds eoDummyIntNoBounds; extern eoIntNoBounds eoDummyIntNoBounds;
/** /**
* fully bounded eoIntBound == interval * fully bounded eoIntBound == interval
*
* @ingroup Real
* @ingroup Bounds
*/ */
class eoIntInterval : public eoIntBounds class eoIntInterval : public eoIntBounds
{ {
@ -349,6 +360,9 @@ private :
/** /**
* an eoIntBound bounded from below only * an eoIntBound bounded from below only
*
* @ingroup Real
* @ingroup Bounds
*/ */
class eoIntBelowBound : public eoIntBounds class eoIntBelowBound : public eoIntBounds
{ {
@ -453,6 +467,9 @@ private :
/** /**
An eoIntBound bounded from above only An eoIntBound bounded from above only
*
* @ingroup Real
* @ingroup Bounds
*/ */
class eoIntAboveBound : public eoIntBounds class eoIntAboveBound : public eoIntBounds
{ {
@ -560,6 +577,9 @@ private :
/** A class that encapsulate all possible eoIntBounds. /** A class that encapsulate all possible eoIntBounds.
* Mandatory in order to read through the parser * Mandatory in order to read through the parser
*
* @ingroup Real
* @ingroup Bounds
*/ */
class eoGeneralIntBounds : public eoIntBounds class eoGeneralIntBounds : public eoIntBounds
{ {

View file

@ -25,8 +25,12 @@ Caner Candan <caner.candan@thalesgroup.com>
*/ */
/** Here's an example explaning how to use eoLogger: /** @defgroup Logging Logging
Global logger for EO.
Here's an example explaning how to use eoLogger:
\code
#include <iostream> #include <iostream>
#include <utils/eoLogger.h> #include <utils/eoLogger.h>
#include <utils/eoParserLogger.h> #include <utils/eoParserLogger.h>
@ -77,7 +81,9 @@ Caner Candan <caner.candan@thalesgroup.com>
return 0; return 0;
} }
\endcode
@{
*/ */
#ifndef eoLogger_h #ifndef eoLogger_h
@ -249,4 +255,7 @@ namespace eo
extern eoLogger log; extern eoLogger log;
} }
/** @} */
#endif // !eoLogger_h #endif // !eoLogger_h

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; -*-
//-----------------------------------------------------------------------------
// eoMonitor.h
// (c) Marc Schoenauer, Maarten Keijzer and GeNeura Team, 2000 // (c) Marc Schoenauer, Maarten Keijzer and GeNeura Team, 2000
/* /*
This library is free software; you can redistribute it and/or This library is free software; you can redistribute it and/or
@ -21,10 +19,7 @@
Contact: todos@geneura.ugr.es, http://geneura.ugr.es Contact: todos@geneura.ugr.es, http://geneura.ugr.es
Marc.Schoenauer@polytechnique.fr Marc.Schoenauer@polytechnique.fr
mak@dhi.dk mak@dhi.dk
CVS Info: $Date: 2010-03-18 12:44:45 $ $Header: /home/nojhan/dev/eodev/eodev_cvs/eo/src/utils/eoMonitor.h,v 1.13 2010-03-18 12:44:45 paradiseo Exp $ $Author: paradiseo $
*/ */
//-----------------------------------------------------------------------------
#ifndef _eoMonitor_h #ifndef _eoMonitor_h
#define _eoMonitor_h #define _eoMonitor_h
@ -34,6 +29,20 @@ CVS Info: $Date: 2010-03-18 12:44:45 $ $Header: /home/nojhan/dev/eodev/eodev_cvs
#include <iostream> #include <iostream>
#include <eoFunctor.h> #include <eoFunctor.h>
/** @defgroup Monitors Monitoring
*
* Monitors take a set of value parameters (eoValueParam) objects and
* output them on a given stream, file, pipe, etc.
*
* They can be called from within an eoCheckPoint, to print different values
* of parameters or of eoStat at each generation.
*
* @see eoCheckPoint
* @see eoStat
* @ingroup Utilities
*/
class eoParam; class eoParam;
template <class EOT> class eoCheckPoint; template <class EOT> class eoCheckPoint;
@ -43,6 +52,8 @@ template <class EOT> class eoCheckPoint;
Derived classes will then implement the operator()(void) which Derived classes will then implement the operator()(void) which
will stream or pipe the current values of the parameters to wherever you will stream or pipe the current values of the parameters to wherever you
want it streamed or piped to. want it streamed or piped to.
@ingroup Monitors
*/ */
class eoMonitor : public eoF<eoMonitor&> class eoMonitor : public eoF<eoMonitor&>
{ {

View file

@ -25,8 +25,6 @@ Authors:
Johann Dréo <johann.dreo@thalesgroup.com> Johann Dréo <johann.dreo@thalesgroup.com>
*/ */
#ifndef _eoOStreamMonitor_h_ #ifndef _eoOStreamMonitor_h_
#define _eoOStreamMonitor_h_ #define _eoOStreamMonitor_h_
@ -39,6 +37,8 @@ Authors:
/** /**
Prints statistics to stdout Prints statistics to stdout
@ingroup Monitors
*/ */
class eoOStreamMonitor : public eoMonitor class eoOStreamMonitor : public eoMonitor
{ {

View file

@ -35,6 +35,15 @@
#include <vector> #include <vector>
#include <eoScalarFitness.h> #include <eoScalarFitness.h>
/** @defgroup Parameters Parameters management
*
* A parameter is basically an object that stores a value and that can read/print it from/on streams.
*
* It is mainly used for command-line options (see eoParser) and eoStat.
*
* @ingroup Utilities
* @{
*/
/** /**
eoParam: Base class for monitoring and parsing parameters eoParam: Base class for monitoring and parsing parameters
@ -126,8 +135,9 @@ private:
/** /**
eoValueParam<ValueType>: templatized derivation of eoParam. Can be used to contain eoValueParam<ValueType>: templatized derivation of eoParam. Can be used to contain
any scalar value type. It makes use of std::strstream to get and set values. This any scalar value type. It makes use of std::strstream to get and set values.
should be changed to std::stringstream when that class is available in g++.
@todo This should be changed to std::stringstream when that class is available in g++.
Note also that there is a template specialization for std::pair<double, double> and Note also that there is a template specialization for std::pair<double, double> and
for std::vector<double>. These stream their contents delimited with whitespace. for std::vector<double>. These stream their contents delimited with whitespace.
@ -458,4 +468,6 @@ public:
std::ostream & operator<<(std::ostream & _os, const eoParamParamType & _rate); std::ostream & operator<<(std::ostream & _os, const eoParamParamType & _rate);
std::istream & operator>>(std::istream & _is, eoParamParamType & _rate); std::istream & operator>>(std::istream & _is, eoParamParamType & _rate);
/** @} */
#endif #endif

View file

@ -36,6 +36,8 @@ Contact: http://eodev.sourceforge.net
eoParameterLoader is an abstract class that can be used as a base for your own eoParameterLoader is an abstract class that can be used as a base for your own
parameter loading and saving. The command line parser eoParser is derived from parameter loading and saving. The command line parser eoParser is derived from
this class. this class.
@ingroup Parameters
*/ */
class eoParameterLoader class eoParameterLoader
{ {
@ -96,6 +98,8 @@ private :
eoParser: command line parser and configuration file reader eoParser: command line parser and configuration file reader
This class is persistent, so it can be stored and reloaded to restore This class is persistent, so it can be stored and reloaded to restore
parameter settings. parameter settings.
@ingroup Parameters
*/ */
class eoParser : public eoParameterLoader, public eoObject, public eoPersistent class eoParser : public eoParameterLoader, public eoObject, public eoPersistent
{ {

View file

@ -29,6 +29,9 @@ Authors:
/** /**
* A parser that use the advanced logging system (@see eoLogger) * A parser that use the advanced logging system (@see eoLogger)
*
* @ingroup Parameters
* @ingroup Logging
*/ */
class eoParserLogger : public eoParser class eoParserLogger : public eoParser
{ {

View file

@ -46,6 +46,8 @@ This is the plain version - see eoPopString for the Sorted version
Note: this Stat should probably be used only within eoStdOutMonitor, and not Note: this Stat should probably be used only within eoStdOutMonitor, and not
inside an eoFileMonitor, as the eoState construct will work much better there. inside an eoFileMonitor, as the eoState construct will work much better there.
@ingroup Stats
*/ */
template <class EOT> template <class EOT>
class eoPopStat : public eoStat<EOT, std::string> class eoPopStat : public eoStat<EOT, std::string>
@ -91,6 +93,8 @@ This is the Sorted version - see eoPopString for the plain version
Note: this Stat should probably be used only within eoStdOutMonitor, and not Note: this Stat should probably be used only within eoStdOutMonitor, and not
inside an eoFileMonitor, as the eoState construct will work much better there. inside an eoFileMonitor, as the eoState construct will work much better there.
@ingroup Stats
*/ */
template <class EOT> template <class EOT>
class eoSortedPopStat : public eoSortedStat<EOT, std::string> class eoSortedPopStat : public eoSortedStat<EOT, std::string>

View file

@ -25,14 +25,18 @@ Old contact information: todos@geneura.ugr.es, http://geneura.ugr.es
#ifndef EO_RANDOM_NUMBER_GENERATOR #ifndef EO_RANDOM_NUMBER_GENERATOR
#define EO_RANDOM_NUMBER_GENERATOR #define EO_RANDOM_NUMBER_GENERATOR
// uint32_t is an unsigned integer type capable of holding 32 bits. /** @addtogroup Random
// * @{
// In the applicatione here exactly 32 are used. * */
// 64 bits might be better on an Alpha or other 64 bit systems with GCC at high
// optimization levels so feel free to try your options and see what's best for
// you.
# if (defined _MSC_VER) # if (defined _MSC_VER)
/** uint32_t is an unsigned integer type capable of holding 32 bits.
In the applicatione here exactly 32 are used.
64 bits might be better on an Alpha or other 64 bit systems with GCC at high
optimization levels so feel free to try your options and see what's best for
you.
*/
typedef unsigned long uint32_t; typedef unsigned long uint32_t;
#else #else
#if (! defined __sun) #if (! defined __sun)
@ -444,6 +448,7 @@ namespace eo
} }
using eo::rng; using eo::rng;
/** @} */

View file

@ -31,7 +31,7 @@
#include <utils/eoRNG.h> #include <utils/eoRNG.h>
/** /**
\defgroup EvolutionStrategies Continuous vector \defgroup Real Continuous vector
@ingroup Representations @ingroup Representations
@ -40,7 +40,7 @@
/** /**
\class eoRealBounds eoRealBounds.h es/eoRealBounds.h \class eoRealBounds eoRealBounds.h es/eoRealBounds.h
\ingroup EvolutionStrategies \ingroup Real
Defines bound classes for real numbers. Defines bound classes for real numbers.
@ -73,6 +73,8 @@ eoRealAboveBound the half-bounded interval (-infinity, max]
THis file also contains the declaration of *the* global object that THis file also contains the declaration of *the* global object that
is the unbounded bound is the unbounded bound
@ingroup Bounds
*/ */
class eoRealBounds : public eoPersistent class eoRealBounds : public eoPersistent
{ {
@ -131,6 +133,8 @@ public:
}; };
/** A default class for unbounded variables /** A default class for unbounded variables
@ingroup Bounds
*/ */
class eoRealNoBounds : public eoRealBounds class eoRealNoBounds : public eoRealBounds
{ {
@ -196,11 +200,15 @@ public:
}; };
// one object for all - see eoRealBounds.cpp /** one object for all - see eoRealBounds.cpp
@ingroup Bounds
*/
extern eoRealNoBounds eoDummyRealNoBounds; extern eoRealNoBounds eoDummyRealNoBounds;
/** /**
* fully bounded eoRealBound == interval * fully bounded eoRealBound == interval
@ingroup Bounds
*/ */
class eoRealInterval : public eoRealBounds class eoRealInterval : public eoRealBounds
{ {
@ -319,6 +327,8 @@ private :
/** /**
* an eoRealBound bounded from below only * an eoRealBound bounded from below only
@ingroup Bounds
*/ */
class eoRealBelowBound : public eoRealBounds class eoRealBelowBound : public eoRealBounds
{ {
@ -518,6 +528,8 @@ private :
/** A class that encapsulate all possible eoIntBounds. /** A class that encapsulate all possible eoIntBounds.
* Mandatory in order to read through the parser * Mandatory in order to read through the parser
@ingroup Bounds
*/ */
class eoGeneralRealBounds : public eoRealBounds class eoGeneralRealBounds : public eoRealBounds
{ {

View file

@ -32,7 +32,7 @@
#include <utils/eoRealBounds.h> #include <utils/eoRealBounds.h>
/** /**
\defgroup EvolutionStrategies \defgroup Real
*/ */
@ -54,6 +54,8 @@ eoRealBaseVectorBounds, base class that handles all useful functions
eoRealVectorBounds which derives from the preceding *and* eoPersistent eoRealVectorBounds which derives from the preceding *and* eoPersistent
and also has a mechanism for memory handling of the pointers and also has a mechanism for memory handling of the pointers
it has to allocate it has to allocate
@ingroup Bounds
*/ */
class eoRealBaseVectorBounds : public std::vector<eoRealBounds *> class eoRealBaseVectorBounds : public std::vector<eoRealBounds *>
{ {
@ -226,6 +228,8 @@ public:
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
/** Now a derived class, for parser reading /** Now a derived class, for parser reading
* It holds some of the bounds (and destroy them when dying) * It holds some of the bounds (and destroy them when dying)
@ingroup Bounds
*/ */
class eoRealVectorBounds : public eoRealBaseVectorBounds, public eoPersistent class eoRealVectorBounds : public eoRealBaseVectorBounds, public eoPersistent
{ {
@ -350,6 +354,8 @@ private:// WARNING: there is no reason for both std::vector below
/** the dummy unbounded eoRealVectorBounds: usefull if you don't need bounds! /** the dummy unbounded eoRealVectorBounds: usefull if you don't need bounds!
* everything is inlined. * everything is inlined.
* Warning: we do need this class, and not only a std::vector<eoRealNoBounds *> * Warning: we do need this class, and not only a std::vector<eoRealNoBounds *>
@ingroup Bounds
*/ */
class eoRealVectorNoBounds: public eoRealVectorBounds class eoRealVectorNoBounds: public eoRealVectorBounds
{ {
@ -422,6 +428,8 @@ public:
// one object for all - see eoRealBounds.cpp /** one object for all - see eoRealBounds.cpp
@ingroup Bounds
*/
extern eoRealVectorNoBounds eoDummyVectorNoBounds; extern eoRealVectorNoBounds eoDummyVectorNoBounds;
#endif #endif

View file

@ -33,6 +33,12 @@
#include <eoFunctor.h> #include <eoFunctor.h>
#include <stdexcept> #include <stdexcept>
/** @defgroup Random Random number generation
*
* @ingroup Utilities
* @{
*/
using eo::rng; using eo::rng;
/** /**
@ -146,4 +152,5 @@ template <class T = double> class eoNegExpGenerator : public eoRndGenerator<T>
eoRng& negexp; eoRng& negexp;
}; };
/** @} */
#endif #endif

View file

@ -32,6 +32,8 @@
/** /**
The fitnesses of a whole population, as a std::vector The fitnesses of a whole population, as a std::vector
@ingroup Stats
*/ */
template <class EOT, class FitT = typename EOT::Fitness> template <class EOT, class FitT = typename EOT::Fitness>
class eoScalarFitnessStat : public eoSortedStat<EOT, std::vector<double> > class eoScalarFitnessStat : public eoSortedStat<EOT, std::vector<double> >

View file

@ -41,6 +41,22 @@ Contact: http://eodev.sourceforge.net
#include <utils/eoMonitor.h> #include <utils/eoMonitor.h>
#include <utils/eoCheckPoint.h> #include <utils/eoCheckPoint.h>
/** @defgroup Stats Statistic computation
*
* Compute various statistics on a population.
*
* Objects of those classes are generally called by an eoCheckPoint
* to compute statistics about the population at a given generation.
* As they inherit from eoValueParam, they can be printed drectly,
* for instance by an eoMonitor.
*
* @see eoCheckPoint
* @see eoMonitor
*
* @ingroup Utilities
* @{
*/
/** /**
Base class for all statistics that need to be calculated Base class for all statistics that need to be calculated
over the (unsorted) population over the (unsorted) population
@ -485,4 +501,6 @@ public:
virtual std::string className(void) const { return "eoInterquartileRangeStat"; } virtual std::string className(void) const { return "eoInterquartileRangeStat"; }
}; };
/** @} */
#endif #endif

View file

@ -50,6 +50,7 @@ class eoPersistent;
derived classes are not saved or loaded. To govern the creation of functors, derived classes are not saved or loaded. To govern the creation of functors,
command-line parameters (which can be stored) are needed. command-line parameters (which can be stored) are needed.
@ingroup Utilities
*/ */
class eoState : public eoFunctorStore class eoState : public eoFunctorStore
{ {

View file

@ -37,6 +37,8 @@ Authors:
/** /**
Prints statistics to stdout Prints statistics to stdout
@ingroup Monitors
*/ */
class eoStdoutMonitor : public eoOStreamMonitor class eoStdoutMonitor : public eoOStreamMonitor
{ {

View file

@ -34,6 +34,8 @@
/** /**
An eoStat that simply gives the user time since first generation An eoStat that simply gives the user time since first generation
It has to be tempatized by EOT because it must be an eoStat It has to be tempatized by EOT because it must be an eoStat
@group Stats
*/ */
class eoTimeCounter : public eoUpdater, public eoValueParam<double> class eoTimeCounter : public eoUpdater, public eoValueParam<double>
{ {

View file

@ -36,6 +36,8 @@
/** /**
Holds a collection of monitors and only fires them when a time limit Holds a collection of monitors and only fires them when a time limit
has been reached has been reached
@ingroup Monitors
*/ */
class eoTimedMonitor : public eoMonitor class eoTimedMonitor : public eoMonitor
{ {

View file

@ -44,6 +44,11 @@
#include "eoRealBounds.h" #include "eoRealBounds.h"
#include <stdexcept> #include <stdexcept>
/** @addtogroup Initializators
* @{
*/
using eo::rng; using eo::rng;
/** /**
@ -58,6 +63,7 @@ using eo::rng;
either in [0, _max) if only 1 value (_max) is given either in [0, _max) if only 1 value (_max) is given
(or none, as _max defaults to 1.0) (or none, as _max defaults to 1.0)
or in [_min,_max) if 2 values are given (_min, _max) or in [_min,_max) if 2 values are given (_min, _max)
*/ */
template <class T = double> class eoUniformInit : public eoInit<T> template <class T = double> class eoUniformInit : public eoInit<T>
{ {
@ -152,4 +158,5 @@ template <class T = double> class eoNegExpInit : public eoInit<T>
eoRng& negexp; eoRng& negexp;
}; };
/** @} */
#endif #endif

View file

@ -32,6 +32,8 @@
/** /**
eoUpdatable is a generic class for adding updatation to an existing class eoUpdatable is a generic class for adding updatation to an existing class
Just says it has an update() method Just says it has an update() method
@ingroup Utilities
*/ */
class eoUpdatable class eoUpdatable
{ {
@ -47,6 +49,8 @@ public:
/** /**
A base class to actually update an eoUpdatable object A base class to actually update an eoUpdatable object
@ingroup Utilities
*/ */
class eoDynUpdater : public eoUpdater class eoDynUpdater : public eoUpdater
{public : {public :
@ -63,6 +67,8 @@ private:
/** /**
An eoUpdater to update an eoUpdatable object every given time interval An eoUpdater to update an eoUpdatable object every given time interval
@ingroup Utilities
*/ */
class eoTimedDynUpdate : public eoDynUpdater class eoTimedDynUpdate : public eoDynUpdater
{ {
@ -89,6 +95,8 @@ private :
/** /**
An eoUpdater to update an eoUpdatable object every given tic An eoUpdater to update an eoUpdatable object every given tic
@ingroup Utilities
*/ */
class eoCountedDynUpdate : public eoDynUpdater class eoCountedDynUpdate : public eoDynUpdater
{ {

View file

@ -37,6 +37,8 @@ template <class EOT> class eoCheckPoint;
/** /**
eoUpdater is a generic procudere for updating whatever you want. eoUpdater is a generic procudere for updating whatever you want.
Yet again an empty name Yet again an empty name
@ingroup Utilities
*/ */
class eoUpdater : public eoF<void> class eoUpdater : public eoF<void>
{ {
@ -50,6 +52,8 @@ public:
/** /**
an eoUpdater that simply increments a counter an eoUpdater that simply increments a counter
@ingroup Utilities
*/ */
template <class T> template <class T>
class eoIncrementor : public eoUpdater class eoIncrementor : public eoUpdater
@ -71,6 +75,8 @@ private:
/** an eoUpdater that is an eoValueParam (and thus OWNS its counter) /** an eoUpdater that is an eoValueParam (and thus OWNS its counter)
* Mandatory for generation counter in make_checkpoint * Mandatory for generation counter in make_checkpoint
@ingroup Utilities
*/ */
template <class T> template <class T>
class eoIncrementorParam : public eoUpdater, public eoValueParam<T> class eoIncrementorParam : public eoUpdater, public eoValueParam<T>
@ -105,6 +111,8 @@ private:
/** /**
an eoUpdater that saves a state every given time interval an eoUpdater that saves a state every given time interval
@ingroup Utilities
*/ */
class eoTimedStateSaver : public eoUpdater class eoTimedStateSaver : public eoUpdater
{ {
@ -128,6 +136,8 @@ private :
/** /**
an eoUpdater that saves a state every given generations an eoUpdater that saves a state every given generations
@ingroup Utilities
*/ */
class eoCountedStateSaver : public eoUpdater class eoCountedStateSaver : public eoUpdater
{ {

View file

@ -34,6 +34,10 @@
#include "eoRNG.h" #include "eoRNG.h"
#include <stdexcept> #include <stdexcept>
/** @addtogroup Random
* @{
*/
/** /**
The class uniform_generator can be used in the STL generate function The class uniform_generator can be used in the STL generate function
to easily generate random floats and doubles to easily generate random floats and doubles
@ -165,4 +169,5 @@ template <class T = double> class negexp_generator
eoRng& negexp; eoRng& negexp;
}; };
/** @} */
#endif #endif

View file

@ -43,7 +43,8 @@
#include "eoRNG.h" #include "eoRNG.h"
#include <eoPop.h> #include <eoPop.h>
/** /**
\defgroup selectors @addtogroup Selectors
@{
*/ */
template <class EOT> template <class EOT>
@ -334,5 +335,6 @@ EOT& inverse_stochastic_tournament(eoPop<EOT>& _pop, double _t_rate, eoRng& _gen
return *inverse_stochastic_tournament(_pop.begin(), _pop.end(), _t_rate, _gen); return *inverse_stochastic_tournament(_pop.begin(), _pop.end(), _t_rate, _gen);
} }
/** @} */
#endif #endif