From 970289bbe272428a216c8edd86e141856815cde4 Mon Sep 17 00:00:00 2001 From: canape Date: Tue, 23 Oct 2007 12:00:38 +0000 Subject: [PATCH] modification of the PSO 's parallel selection git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@736 331e1502-861f-0410-8da2-ba01fb791d7f --- trunk/paradiseo-peo/src/peoPSOSelect.h | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/trunk/paradiseo-peo/src/peoPSOSelect.h b/trunk/paradiseo-peo/src/peoPSOSelect.h index 1163f0415..160d3d786 100644 --- a/trunk/paradiseo-peo/src/peoPSOSelect.h +++ b/trunk/paradiseo-peo/src/peoPSOSelect.h @@ -39,24 +39,21 @@ #include #include -template class peoPSOSelect: public eoSelectOne +template class peoPSOSelect: public eoSelectOne { public: - typedef typename PO < EOT >::Fitness Fitness; + peoPSOSelect(eoTopology < POT > & _topology):topology(_topology){} + + typedef typename PO < POT >::Fitness Fitness; - virtual const EOT& operator()(const eoPop& _pop) + virtual const POT& operator()(const eoPop& _pop) { - unsigned ind=0; - double best=_pop[0].best(); - for(unsigned i=1;i<_pop.size();i++) - if(_pop[i].best() > best) - { - ind=i; - best=_pop[i].best(); - } - return _pop[ind]; + return topology.globalBest(_pop); } + + private: + eoTopology < POT > & topology; }; #endif