00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef _eoEvalContinue_h
00027 #define _eoEvalContinue_h
00028
00029 #include <eoContinue.h>
00030 #include <eoEvalFuncCounter.h>
00031
00035 template< class EOT>
00036 class eoEvalContinue: public eoContinue<EOT>
00037 {
00038 public:
00040 eoEvalContinue( eoEvalFuncCounter<EOT> & _eval, unsigned long _totalEval)
00041 : eval(_eval), repTotalEvaluations( _totalEval ) {
00042 std::cout << "Ctor de eoEvalFuncCounter avec total = " << repTotalEvaluations << std::endl;
00043 };
00044
00047 virtual bool operator() ( const eoPop<EOT>& _vEO ) {
00048 if (eval.value() >= repTotalEvaluations)
00049 {
00050 std::cout << "STOP in eoEvalContinue: Reached maximum number of evaluations [" << repTotalEvaluations << "]\n";
00051 return false;
00052 }
00053 return true;
00054 }
00055
00057 virtual unsigned long totalEvaluations( )
00058 {
00059 return repTotalEvaluations;
00060 };
00061
00062 virtual std::string className(void) const { return "eoEvalContinue"; }
00063 private:
00064 eoEvalFuncCounter<EOT> & eval;
00065 unsigned long repTotalEvaluations;
00066 };
00067
00068 #endif