In eoVector, changed printOn and readFrom to virtual
This commit is contained in:
parent
195ad72838
commit
d634d95838
10 changed files with 54 additions and 52 deletions
|
|
@ -162,4 +162,4 @@ class eoDominanceMap : public eoUF<const eoPop<EoType>&, void>, public std::vect
|
||||||
vector<typename EoType::Fitness> fitness;
|
vector<typename EoType::Fitness> fitness;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -35,48 +35,48 @@ class eoGenContinue: public eoContinue<EOT>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
/// Ctor for setting a
|
/// Ctor for setting a
|
||||||
eoGenContinue( unsigned long _totalGens)
|
eoGenContinue( unsigned long _totalGens)
|
||||||
: repTotalGenerations( _totalGens ),
|
: repTotalGenerations( _totalGens ),
|
||||||
thisGenerationPlaceHolder(0),
|
thisGenerationPlaceHolder(0),
|
||||||
thisGeneration(thisGenerationPlaceHolder){};
|
thisGeneration(thisGenerationPlaceHolder){};
|
||||||
|
|
||||||
/// Ctor for enabling the save/load the no. of generations counted
|
/// Ctor for enabling the save/load the no. of generations counted
|
||||||
eoGenContinue( unsigned long _totalGens, unsigned long& _currentGen)
|
eoGenContinue( unsigned long _totalGens, unsigned long& _currentGen)
|
||||||
: repTotalGenerations( _totalGens ),
|
: repTotalGenerations( _totalGens ),
|
||||||
thisGenerationPlaceHolder(0),
|
thisGenerationPlaceHolder(0),
|
||||||
thisGeneration(_currentGen){};
|
thisGeneration(_currentGen){};
|
||||||
|
|
||||||
/** Returns false when a certain number of generations is
|
/** Returns false when a certain number of generations is
|
||||||
* reached */
|
* reached */
|
||||||
virtual bool operator() ( const eoPop<EOT>& _vEO ) {
|
virtual bool operator() ( const eoPop<EOT>& _vEO ) {
|
||||||
thisGeneration++;
|
thisGeneration++;
|
||||||
// cout << " [" << thisGeneration << "] ";
|
// cout << " [" << thisGeneration << "] ";
|
||||||
if (thisGeneration >= repTotalGenerations)
|
if (thisGeneration >= repTotalGenerations)
|
||||||
{
|
{
|
||||||
cout << "STOP in eoGenContinue: Reached maximum number of generations [" << thisGeneration << "/" << repTotalGenerations << "]\n";
|
cout << "STOP in eoGenContinue: Reached maximum number of generations [" << thisGeneration << "/" << repTotalGenerations << "]\n";
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Sets the number of generations to reach
|
/** Sets the number of generations to reach
|
||||||
and sets the current generation to 0 (the begin)*/
|
and sets the current generation to 0 (the begin)*/
|
||||||
virtual void totalGenerations( unsigned long _tg ) {
|
virtual void totalGenerations( unsigned long _tg ) {
|
||||||
repTotalGenerations = _tg;
|
repTotalGenerations = _tg;
|
||||||
thisGeneration = 0;
|
thisGeneration = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Returns the number of generations to reach*/
|
/** Returns the number of generations to reach*/
|
||||||
virtual unsigned long totalGenerations( )
|
virtual unsigned long totalGenerations( )
|
||||||
{
|
{
|
||||||
return repTotalGenerations;
|
return repTotalGenerations;
|
||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
unsigned long repTotalGenerations;
|
unsigned long repTotalGenerations;
|
||||||
unsigned long thisGenerationPlaceHolder;
|
unsigned long thisGenerationPlaceHolder;
|
||||||
unsigned long& thisGeneration;
|
unsigned long& thisGeneration;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -296,4 +296,4 @@ class eoNDSorting_II : public eoNDSorting<EOT>
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -244,23 +244,21 @@ class eoPop: public vector<EOT>, public eoObject, public eoPersistent
|
||||||
copy( begin(), end(), ostream_iterator<EOT>( _os, "\n") );
|
copy( begin(), end(), ostream_iterator<EOT>( _os, "\n") );
|
||||||
};
|
};
|
||||||
|
|
||||||
/** @name Methods from eoObject */
|
/** @name Methods from eoObject */
|
||||||
//@{
|
//@{
|
||||||
/**
|
/**
|
||||||
* Read object. The EOT class must have a ctor from a stream;
|
* Read object. The EOT class must have a ctor from a stream;
|
||||||
in this case, a strstream is used.
|
in this case, a strstream is used.
|
||||||
* @param _is A istream.
|
* @param _is A istream.
|
||||||
|
*/
|
||||||
*/
|
|
||||||
virtual void readFrom(istream& _is)
|
virtual void readFrom(istream& _is)
|
||||||
{
|
{
|
||||||
size_t sz;
|
size_t sz;
|
||||||
_is >> sz;
|
_is >> sz;
|
||||||
|
|
||||||
resize(sz);
|
resize(sz);
|
||||||
|
|
||||||
for (size_t i = 0; i < sz; ++i)
|
for (size_t i = 0; i < sz; ++i) {
|
||||||
{
|
|
||||||
operator[](i).readFrom( _is );
|
operator[](i).readFrom( _is );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
Marc.Schoenauer@polytechnique.fr
|
Marc.Schoenauer@polytechnique.fr
|
||||||
mak@dhi.dk
|
mak@dhi.dk
|
||||||
|
|
||||||
CVS Info: $Date: 2001-03-21 12:10:13 $ $Header: /home/nojhan/dev/eodev/eodev_cvs/eo/src/eoVector.h,v 1.9 2001-03-21 12:10:13 jmerelo Exp $ $Author: jmerelo $
|
CVS Info: $Date: 2001-04-03 10:08:06 $ $Header: /home/nojhan/dev/eodev/eodev_cvs/eo/src/eoVector.h,v 1.10 2001-04-03 10:08:06 jmerelo Exp $ $Author: jmerelo $
|
||||||
|
|
||||||
*/
|
*/
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
@ -74,7 +74,7 @@ class eoVector : public EO<FitT>, public std::vector<GeneType>
|
||||||
}
|
}
|
||||||
|
|
||||||
/// printing...
|
/// printing...
|
||||||
void printOn(ostream& os) const
|
virtual void printOn(ostream& os) const
|
||||||
{
|
{
|
||||||
EO<FitT>::printOn(os);
|
EO<FitT>::printOn(os);
|
||||||
os << ' ';
|
os << ' ';
|
||||||
|
|
@ -85,7 +85,7 @@ class eoVector : public EO<FitT>, public std::vector<GeneType>
|
||||||
}
|
}
|
||||||
|
|
||||||
/// reading...
|
/// reading...
|
||||||
void readFrom(istream& is)
|
virtual void readFrom(istream& is)
|
||||||
{
|
{
|
||||||
EO<FitT>::readFrom(is);
|
EO<FitT>::readFrom(is);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,8 @@
|
||||||
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
|
||||||
mkeijzer@dhi.dk
|
mkeijzer@dhi.dk
|
||||||
|
CVS Info: $Date: 2001-04-03 10:08:07 $ $Header: /home/nojhan/dev/eodev/eodev_cvs/eo/src/utils/eoFileMonitor.h,v 1.9 2001-04-03 10:08:07 jmerelo Exp $ $Author: jmerelo $
|
||||||
|
|
||||||
*/
|
*/
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
/** Modified the default behavior, so that it erases existing files.
|
/** Modified the default behavior, so that it erases existing files.
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
// -*- 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; -*-
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// eoParam.h
|
// 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,6 +21,8 @@
|
||||||
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: 2001-04-03 10:08:07 $ $Header: /home/nojhan/dev/eodev/eodev_cvs/eo/src/utils/eoMonitor.h,v 1.9 2001-04-03 10:08:07 jmerelo Exp $ $Author: jmerelo $
|
||||||
|
|
||||||
*/
|
*/
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
// -*- 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; -*-
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// eoFileMonitor.h
|
// eoStdoutMonitor.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
|
||||||
|
|
|
||||||
|
|
@ -40,9 +40,9 @@ void main_function(int argc, char **argv)
|
||||||
// all parameters are hard-coded!
|
// all parameters are hard-coded!
|
||||||
const unsigned int SEED = 42; // seed for random number generator
|
const unsigned int SEED = 42; // seed for random number generator
|
||||||
const unsigned int T_SIZE = 3; // size for tournament selection
|
const unsigned int T_SIZE = 3; // size for tournament selection
|
||||||
const unsigned int VEC_SIZE = 8; // Number of bits in genotypes
|
const unsigned int VEC_SIZE = 16; // Number of bits in genotypes
|
||||||
const unsigned int POP_SIZE = 20; // Size of population
|
const unsigned int POP_SIZE = 100; // Size of population
|
||||||
const unsigned int MAX_GEN = 100; // Maximum number of generation before STOP
|
const unsigned int MAX_GEN = 400; // Maximum number of generation before STOP
|
||||||
const float CROSS_RATE = 0.8; // Crossover rate
|
const float CROSS_RATE = 0.8; // Crossover rate
|
||||||
const double P_MUT_PER_BIT = 0.01; // probability of bit-flip mutation
|
const double P_MUT_PER_BIT = 0.01; // probability of bit-flip mutation
|
||||||
const float MUT_RATE = 1.0; // mutation rate
|
const float MUT_RATE = 1.0; // mutation rate
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
.cpp: ; c++ -DPACKAGE=\"eo\" -DVERSION=\"0.9.1\" -I. -I../../src -Wall -g -o $@ $*.cpp ../../src/libeo.a ../../src/utils/libeoutils.a
|
.cpp: ; c++ -DPACKAGE=\"eo\" -DVERSION=\"0.9.1\" -I. -I../../src -Wall -g -pg -o $@ $*.cpp ../../src/libeo.a ../../src/utils/libeoutils.a
|
||||||
|
|
||||||
.cpp.o: ; c++ -DPACKAGE=\"eo\" -DVERSION=\"0.9.1\" -I. -I../../src -Wall -g -c $*.cpp
|
.cpp.o: ; c++ -DPACKAGE=\"eo\" -DVERSION=\"0.9.1\" -I. -I../../src -Wall -g -c -pg $*.cpp
|
||||||
|
|
||||||
firstGA = FirstRealGA FirstBitGA
|
firstGA = FirstRealGA FirstBitGA
|
||||||
|
|
||||||
|
|
|
||||||
Reference in a new issue