From 2abab21960ea162d163d71bac3b45590b8e61d8e Mon Sep 17 00:00:00 2001 From: gustavoromero Date: Fri, 1 Dec 2000 19:09:34 +0000 Subject: [PATCH] adding a new terminator and a monitor --- eo/app/gprop/gprop.cc | 26 +++++++++++++++----------- eo/app/gprop/gprop.h | 7 ------- eo/src/eoGenContinue.h | 2 +- 3 files changed, 16 insertions(+), 19 deletions(-) diff --git a/eo/app/gprop/gprop.cc b/eo/app/gprop/gprop.cc index d5fda9d6..12a53014 100644 --- a/eo/app/gprop/gprop.cc +++ b/eo/app/gprop/gprop.cc @@ -9,13 +9,15 @@ #include // string #include // eoParser #include // eoPop +#include // eoEvalFunc +#include // eoStochTournament #include // eoGenContinue -#include // eoStochTournament -#include // eoSGA -#include // eoGenContinue +#include // eoFitContinue +#include // eoCombinedContinue #include // eoCheckPoint -#include // eoSecondMomentStats +#include // eoBestFitnessStat #include // eoStdoutMonitor +#include // eoSGA #include "gprop.h" // Chrom eoChromInit eoChromMutation eoChromXover eoChromEvaluator //----------------------------------------------------------------------------- @@ -126,21 +128,23 @@ void ga() // create population eoInitChrom init; eoPop pop(pop_size.value(), init); - + // evaluate population eoEvalFuncPtr evaluator(eoChromEvaluator); apply(evaluator, pop); - + // selector - // eoProportional select(pop); eoStochTournament select; // genetic operators - eoChromMutation mutation(generations); + eoChromMutation mutation; eoChromXover xover; - + // stop condition - eoGenContinue continuator(generations.value()); + eoGenContinue continuator1(generations.value()); + phenotype p; p.val_ok = val_set.size() - 1; p.mse_error = 0; + eoFitContinue continuator2(p); + eoCombinedContinue continuator(continuator1, continuator2); // checkpoint eoCheckPoint checkpoint(continuator); @@ -150,7 +154,7 @@ void ga() checkpoint.add(monitor); // statistics - eoSecondMomentStats stats; + eoBestFitnessStat stats; checkpoint.add(stats); monitor.add(stats); diff --git a/eo/app/gprop/gprop.h b/eo/app/gprop/gprop.h index 7a913496..ef1ab73a 100644 --- a/eo/app/gprop/gprop.h +++ b/eo/app/gprop/gprop.h @@ -12,7 +12,6 @@ #include // string #include // EO #include // eoMonOp eoQuadraticOp -#include // eoEvalFunc #include // eoInit #include // normal_generator #include "mlp.h" // mlp::net mlp::set @@ -110,18 +109,12 @@ mlp::set trn_set, val_set, tst_set; class eoChromMutation: public eoMonOp { public: - eoChromMutation(eoValueParam& _generation): - generation(_generation) {} - void operator()(Chrom& chrom) { mse::net tmp(chrom); tmp.train(trn_set, 10, 0, 0.001); chrom.invalidate(); } - -private: - eoValueParam& generation; }; //----------------------------------------------------------------------------- diff --git a/eo/src/eoGenContinue.h b/eo/src/eoGenContinue.h index 6458f62f..c1219450 100644 --- a/eo/src/eoGenContinue.h +++ b/eo/src/eoGenContinue.h @@ -54,7 +54,7 @@ public: // cout << " [" << thisGeneration << "] "; if (thisGeneration >= repTotalGenerations) { - cout << "STOP in eoGenContinue: Reached maximum number of generations\n"; + cout << "STOP in eoGenContinue: Reached maximum number of generations [" << thisGeneration << "/" << repTotalGenerations << "]\n"; return false; } return true;