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
* is actually templatized here
*
*
* @ingroup Builders
*/
template <class EOT>
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
* is actually templatized here
*
* @ingroup Builders
*/
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)
{

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
* in the value of the parameter calculated on the evaluation function, not in the actual function itself!!
*
* @ingroup Builders
*/
template <class EOT>
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 //////////////
/**
* @ingroup Builders
*/
template <class EOT>
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);
/////////////////// 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>
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 ////////////////
/**
* @ingroup Builders
*/
template <class Indi>
eoCombinedContinue<Indi> * make_combinedContinue(eoCombinedContinue<Indi> *_combined, eoContinue<Indi> *_cont)
{
@ -59,7 +62,10 @@ eoCombinedContinue<Indi> * make_combinedContinue(eoCombinedContinue<Indi> *_comb
return _combined;
}
/**
*
* @ingroup Builders
*/
template <class Indi>
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
* eoReduce<EOT> & (allocates the pointer and stores it into an eoState)
*
* @ingroup Builders
*/
template <class EOT>
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
* eoParamParamType & _reduceOffspringType how the offspring are reduced
* eoParamParamType & _reduceFinalType how the final population is reduced to initial population size
*
* @ingroup Builders
*/
template <class EOT>
eoReplacement<EOT> & make_general_replacement(
eoParser& _parser, eoState& _state,

View file

@ -34,17 +34,25 @@
#include <utils/eoParser.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
* + other initializations that are NOT representation-dependent.
*
* 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)
*
* @ingroup Builders
*/
template <class EOT>
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
* and separate compilation - see in ga dir, make_run_ga
*
*
* @ingroup Builders
*/
template <class EOT>
void do_run(eoAlgo<EOT>& _algo, eoPop<EOT>& _pop)
{

View file

@ -36,6 +36,10 @@
#include <vector>
#include <string>
/** @addtogroup Evaluation
* @{
*/
//! Defines properties of eoScalarFitnessAssembled.
/*! Properties that are hold in this traits class:
- 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;
}
/** @} */
#endif

View file

@ -40,7 +40,8 @@ Contact: http://eodev.sourceforge.net
/** 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

View file

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

View file

@ -36,9 +36,12 @@
// needs a selector - here random
#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
* and the mutation strategy parameters
*
* @ingroup Real
* @ingroup Variators
*/
template<class EOT>
class eoEsGlobalXover: public eoGenOp<EOT>

View file

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

View file

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

View file

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

View file

@ -41,6 +41,9 @@
* and the mutation strategy parameters
* It is an eoBinOp and has to be wrapped into an eoGenOp before being used
* like the global version
*
* @ingroup Real
* @ingroup Variators
*/
template<class 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
@ingroup EvolutionStrategies
Evolutionary strategie style representation, supporting co-evolving
standard deviations.
@ingroup Real
*/
template <class Fit>
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.
* The other possiblity would be to iterate until we fall inside the bounds -
* but this sometimes takes a long time!!!
*
* @ingroup Real
* @ingroup Variators
*/
template<class EOT> class eoNormalVecMutation: public eoMonOp<EOT>
{
public:
@ -111,8 +113,10 @@ private:
* 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 -
* but this sometimes takes a long time!!!
*
* @ingroup Real
* @ingroup Variators
*/
template<class EOT> class eoNormalMutation
: public eoMonOp<EOT>
{
@ -172,8 +176,10 @@ private:
* and write the update() method!
* here the 1 fifth rule: count the proportion of successful mutations, and
* increase sigma if more than threshold (1/5 !)
*
* @ingroup Real
* @ingroup Variators
*/
template<class EOT> class eoOneFifthMutation :
public eoNormalMutation<EOT>, public eoUpdatable
{

View file

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

View file

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

View file

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

View file

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

View file

@ -62,6 +62,14 @@
// without self-adaptation
#include <es/make_real.h>
/** @addtogroup Builders
* @{
*/
/** @addtogroup Real
* @{
*/
//Representation dependent - rewrite everything anew for each representation
//////////////////////////
// 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
void make_help(eoParser & _parser);
/** @} */
/** @} */
#endif

View file

@ -35,6 +35,10 @@ Contact: http://eodev.sourceforge.net
#include "utils/eoState.h"
/** @addtogroup Builders
* @{
*/
/** Initialize 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;
}
/** @} */
#endif // EO_make_genotype_h

View file

@ -45,6 +45,10 @@
#include <utils/eoState.h>
/** @addtogroup Builders
* @{
*/
/*
* 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!
return *op;
}
/** @} */
#endif

View file

@ -44,6 +44,10 @@ Contact: http://eodev.sourceforge.net
#include <utils/eoState.h>
/** @addtogroup Builders
* @{
*/
/*
* 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
/** @} */
// Local Variables:
// coding: iso-8859-1

View file

@ -45,6 +45,10 @@
#include <utils/eoState.h>
/** @addtogroup Builders
* @{
*/
/*
* 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!
return op;
}
/** @} */
#endif

View file

@ -60,6 +60,10 @@
//Representation dependent - rewrite everything anew for each representation
//////////////////////////
/** @addtogroup Builders
* @{
*/
// the genotypes
eoRealInitBounded<eoReal<double> > & make_genotype(eoParser& _parser, eoState& _state, eoReal<double> _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
void make_help(eoParser & _parser);
/** @} */
#endif

View file

@ -3,6 +3,8 @@
#include <vector>
/** @ingroup Utilities
*/
class lower_triangular_matrix {
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; }
};
/** @ingroup Utilities
*/
class square_matrix {
unsigned n;
std::vector<double> data;

View file

@ -39,6 +39,8 @@
/** eoBitFlip --> changes 1 bit
\class eoBitBitFlip eoBitOp.h ga/eoBitOp.h
\ingroup bitstring
@ingroup Variators
*/
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
on bitstring chromosomes. Only those chromosomes can instantiate the operators
that are created here
@see eoSelect*/
@see eoSelect
@ingroup Variators
*/
template< class EOT>
class eoBitOpFactory: public eoFactory<EOT>
{

View file

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

View file

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

View file

@ -52,6 +52,10 @@
//Representation dependent - rewrite everything anew for each representation
//////////////////////////
/** @addtogroup Builders
* @{
*/
// the genotypes
eoInit<eoBit<double> > & make_genotype(eoParser& _parser, eoState& _state, eoBit<double> _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
void make_help(eoParser & _parser);
/** @} */
#endif

View file

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

View file

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

View file

@ -33,8 +33,9 @@
* to be inserted in EO. This struct or class can be of any
* form, the only thing this class does is attach a fitness
* value to it and makes it the appropriate type (derives it from EO).
*
* @ingroup Utilities
*/
template <class Fit, class 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>
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;
}
/// 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>
std::istream& operator>>(std::istream& is, eoExternalEO<F, External>& eo)
{

View file

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

View file

@ -37,7 +37,11 @@
// 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 >
class eoString: public EO<fitnessT>, public std::string
{

View file

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

View file

@ -32,6 +32,21 @@
#include <utils/eoMonitor.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.
It contains std::vectors of (pointers to)
@ -161,4 +176,5 @@ std::string eoCheckPoint<EOT>::allClassNames() const
return s;
}
/** @} */
#endif

View file

@ -27,9 +27,14 @@
#define _eoDistance_H
#include <eoFunctor.h>
/** @addtogroup Stats
* @{
* */
/**
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 >
class eoDistance : public eoBF<const EOT &, const EOT &, double>
@ -94,5 +99,6 @@ public:
};
/** @} */
#endif

View file

@ -32,8 +32,12 @@
#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 ...
@ingroup Stats
*/
template <class EOT>
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
* to put the 2 eoParam<std::vector<double> > into a monitor
* This class does nothing else.
@ingroup Stats
*/
template <class EOT>
class eoFDCFileSnapshot : public eoFileSnapshot // is an eoMonitor

View file

@ -34,7 +34,10 @@ Authors:
#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>
class eoFeasibleRatioStat : public eoStat< EOT, double >
{

View file

@ -34,12 +34,14 @@
#include "utils/eoMonitor.h"
#include "eoObject.h"
/** Prints statistics to file
Modified the default behavior, so that it erases existing files. Can
be modified in the ctor.
@version MS 25/11/00
@ingroup Monitors
*/
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> >
for any type T, simply calling their getValue method ...
*/
@ingroup Monitors
*/
class eoFileSnapshot : public eoMonitor
{
public :

View file

@ -1,9 +1,16 @@
#ifndef eoFuncPtrStat_h
#define eoFuncPtrStat_h
#include <eoFunctorStore.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>
class eoFuncPtrStat : public eoStat<EOT, T>
{
@ -25,6 +32,9 @@ private:
func_t func;
};
/**
* @ingroup Stats
*/
template <class EOT, class T>
eoFuncPtrStat<EOT, T>& makeFuncPtrStat( T (*func)(const eoPop<EOT>&), eoFunctorStore& store, std::string description = "func") {
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
@version 0.0 (2001)
@ingroup Monitors
*/
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
everytime
@ingroup Monitors
*/
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
from scratch everytime it's called
@ingroup Monitors
*/
class eoGnuplot1DSnapshot: public eoFileSnapshot, public eoGnuplot
{

View file

@ -29,6 +29,11 @@ Contact: http://eodev.sourceforge.net
#ifndef eoHowMany_h
#define eoHowMany_h
#include <sstream>
#include <utils/eoLogger.h>
/** A helper class, to determine a number of individuals from another one
* Typically, is used in selection / replacement procedures, e.g.
* the number of offspring from the number of parents, or
@ -65,12 +70,9 @@ Contact: http://eodev.sourceforge.net
* eoG3Repalcement)
*
* 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
{
public:

View file

@ -31,14 +31,15 @@
#include <utils/eoRNG.h>
/**
\defgroup EvolutionStrategies
\defgroup Real
*/
/**
\class eoIntBounds eoIntBounds.h es/eoIntBounds.h
\ingroup EvolutionStrategies
\ingroup Real
\ingroup Bounds
Defines bound classes for real numbers.
@ -149,6 +150,9 @@ public:
};
/** A default class for unbounded variables
*
* @ingroup Real
* @ingroup Bounds
*/
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;
/**
* fully bounded eoIntBound == interval
*
* @ingroup Real
* @ingroup Bounds
*/
class eoIntInterval : public eoIntBounds
{
@ -349,6 +360,9 @@ private :
/**
* an eoIntBound bounded from below only
*
* @ingroup Real
* @ingroup Bounds
*/
class eoIntBelowBound : public eoIntBounds
{
@ -453,6 +467,9 @@ private :
/**
An eoIntBound bounded from above only
*
* @ingroup Real
* @ingroup Bounds
*/
class eoIntAboveBound : public eoIntBounds
{
@ -560,6 +577,9 @@ private :
/** A class that encapsulate all possible eoIntBounds.
* Mandatory in order to read through the parser
*
* @ingroup Real
* @ingroup Bounds
*/
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 <utils/eoLogger.h>
#include <utils/eoParserLogger.h>
@ -77,7 +81,9 @@ Caner Candan <caner.candan@thalesgroup.com>
return 0;
}
\endcode
@{
*/
#ifndef eoLogger_h
@ -249,4 +255,7 @@ namespace eo
extern eoLogger log;
}
/** @} */
#endif // !eoLogger_h

View file

@ -1,7 +1,5 @@
// -*- 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
/*
This library is free software; you can redistribute it and/or
@ -21,10 +19,7 @@
Contact: todos@geneura.ugr.es, http://geneura.ugr.es
Marc.Schoenauer@polytechnique.fr
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
#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 <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;
template <class EOT> class eoCheckPoint;
@ -43,6 +52,8 @@ template <class EOT> class eoCheckPoint;
Derived classes will then implement the operator()(void) which
will stream or pipe the current values of the parameters to wherever you
want it streamed or piped to.
@ingroup Monitors
*/
class eoMonitor : public eoF<eoMonitor&>
{

View file

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

View file

@ -35,6 +35,15 @@
#include <vector>
#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
@ -126,8 +135,9 @@ private:
/**
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
should be changed to std::stringstream when that class is available in g++.
any scalar value type. It makes use of std::strstream to get and set values.
@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
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::istream & operator>>(std::istream & _is, eoParamParamType & _rate);
/** @} */
#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
parameter loading and saving. The command line parser eoParser is derived from
this class.
@ingroup Parameters
*/
class eoParameterLoader
{
@ -96,6 +98,8 @@ private :
eoParser: command line parser and configuration file reader
This class is persistent, so it can be stored and reloaded to restore
parameter settings.
@ingroup Parameters
*/
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)
*
* @ingroup Parameters
* @ingroup Logging
*/
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
inside an eoFileMonitor, as the eoState construct will work much better there.
@ingroup Stats
*/
template <class EOT>
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
inside an eoFileMonitor, as the eoState construct will work much better there.
@ingroup Stats
*/
template <class EOT>
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
#define EO_RANDOM_NUMBER_GENERATOR
// 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.
/** @addtogroup Random
* @{
* */
# 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;
#else
#if (! defined __sun)
@ -444,6 +448,7 @@ namespace eo
}
using eo::rng;
/** @} */

View file

@ -31,7 +31,7 @@
#include <utils/eoRNG.h>
/**
\defgroup EvolutionStrategies Continuous vector
\defgroup Real Continuous vector
@ingroup Representations
@ -40,7 +40,7 @@
/**
\class eoRealBounds eoRealBounds.h es/eoRealBounds.h
\ingroup EvolutionStrategies
\ingroup Real
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
is the unbounded bound
@ingroup Bounds
*/
class eoRealBounds : public eoPersistent
{
@ -131,6 +133,8 @@ public:
};
/** A default class for unbounded variables
@ingroup Bounds
*/
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;
/**
* fully bounded eoRealBound == interval
@ingroup Bounds
*/
class eoRealInterval : public eoRealBounds
{
@ -319,6 +327,8 @@ private :
/**
* an eoRealBound bounded from below only
@ingroup Bounds
*/
class eoRealBelowBound : public eoRealBounds
{
@ -518,6 +528,8 @@ private :
/** A class that encapsulate all possible eoIntBounds.
* Mandatory in order to read through the parser
@ingroup Bounds
*/
class eoGeneralRealBounds : public eoRealBounds
{

View file

@ -32,7 +32,7 @@
#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
and also has a mechanism for memory handling of the pointers
it has to allocate
@ingroup Bounds
*/
class eoRealBaseVectorBounds : public std::vector<eoRealBounds *>
{
@ -226,6 +228,8 @@ public:
////////////////////////////////////////////////////////////////////
/** Now a derived class, for parser reading
* It holds some of the bounds (and destroy them when dying)
@ingroup Bounds
*/
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!
* everything is inlined.
* Warning: we do need this class, and not only a std::vector<eoRealNoBounds *>
@ingroup Bounds
*/
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;
#endif

View file

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

View file

@ -32,6 +32,8 @@
/**
The fitnesses of a whole population, as a std::vector
@ingroup Stats
*/
template <class EOT, class FitT = typename EOT::Fitness>
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/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
over the (unsorted) population
@ -485,4 +501,6 @@ public:
virtual std::string className(void) const { return "eoInterquartileRangeStat"; }
};
/** @} */
#endif

View file

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

View file

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

View file

@ -34,6 +34,8 @@
/**
An eoStat that simply gives the user time since first generation
It has to be tempatized by EOT because it must be an eoStat
@group Stats
*/
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
has been reached
@ingroup Monitors
*/
class eoTimedMonitor : public eoMonitor
{

View file

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

View file

@ -32,6 +32,8 @@
/**
eoUpdatable is a generic class for adding updatation to an existing class
Just says it has an update() method
@ingroup Utilities
*/
class eoUpdatable
{
@ -47,6 +49,8 @@ public:
/**
A base class to actually update an eoUpdatable object
@ingroup Utilities
*/
class eoDynUpdater : public eoUpdater
{public :
@ -63,6 +67,8 @@ private:
/**
An eoUpdater to update an eoUpdatable object every given time interval
@ingroup Utilities
*/
class eoTimedDynUpdate : public eoDynUpdater
{
@ -89,6 +95,8 @@ private :
/**
An eoUpdater to update an eoUpdatable object every given tic
@ingroup Utilities
*/
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.
Yet again an empty name
@ingroup Utilities
*/
class eoUpdater : public eoF<void>
{
@ -50,6 +52,8 @@ public:
/**
an eoUpdater that simply increments a counter
@ingroup Utilities
*/
template <class T>
class eoIncrementor : public eoUpdater
@ -71,6 +75,8 @@ private:
/** an eoUpdater that is an eoValueParam (and thus OWNS its counter)
* Mandatory for generation counter in make_checkpoint
@ingroup Utilities
*/
template <class T>
class eoIncrementorParam : public eoUpdater, public eoValueParam<T>
@ -105,6 +111,8 @@ private:
/**
an eoUpdater that saves a state every given time interval
@ingroup Utilities
*/
class eoTimedStateSaver : public eoUpdater
{
@ -128,6 +136,8 @@ private :
/**
an eoUpdater that saves a state every given generations
@ingroup Utilities
*/
class eoCountedStateSaver : public eoUpdater
{

View file

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

View file

@ -43,7 +43,8 @@
#include "eoRNG.h"
#include <eoPop.h>
/**
\defgroup selectors
@addtogroup Selectors
@{
*/
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);
}
/** @} */
#endif