and finally... still more grouping in documentation.
This commit is contained in:
parent
f478817c6e
commit
2104f5b7e9
76 changed files with 427 additions and 70 deletions
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
#include <eoVector.h>
|
||||
|
||||
/**
|
||||
\ingroup EvolutionStrategies
|
||||
\ingroup Real
|
||||
|
||||
The most complex evolutionary strategy representation. Co-evolving mutation
|
||||
rates and correlated mutations.
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -32,6 +32,10 @@
|
|||
|
||||
|
||||
|
||||
/**
|
||||
* @ingroup Real
|
||||
* @ingroup Variators
|
||||
*/
|
||||
template<class EOT> class eoSBXCrossover: public eoQuadOp<EOT>
|
||||
{
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -63,6 +63,9 @@
|
|||
* EOT myEO;
|
||||
* _init(myEO);
|
||||
* and myEO is then an ACTUAL object
|
||||
*
|
||||
* @ingroup bitstring
|
||||
* @ingroup Builders
|
||||
*/
|
||||
|
||||
template <class EOT>
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 >
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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 :
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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&>
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -29,6 +29,9 @@ Authors:
|
|||
|
||||
/**
|
||||
* A parser that use the advanced logging system (@see eoLogger)
|
||||
*
|
||||
* @ingroup Parameters
|
||||
* @ingroup Logging
|
||||
*/
|
||||
class eoParserLogger : public eoParser
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
/** @} */
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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> >
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -37,6 +37,8 @@ Authors:
|
|||
|
||||
/**
|
||||
Prints statistics to stdout
|
||||
|
||||
@ingroup Monitors
|
||||
*/
|
||||
class eoStdoutMonitor : public eoOStreamMonitor
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Reference in a new issue