Full Eval modifié

git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@1656 331e1502-861f-0410-8da2-ba01fb791d7f
This commit is contained in:
jhumeau 2010-01-20 10:02:57 +00:00
commit 0c7e11a8b5
3 changed files with 24 additions and 21 deletions

View file

@ -2,7 +2,7 @@
#define moFullEvalByCopy_H
#include <eoEvalFunc.h>
#include <moEval.h>
#include <eval/moEval.h>
/**
@ -12,8 +12,8 @@ template<class Neighbor>
class moFullEvalByCopy : public moEval<Neighbor>
{
public:
using moEval<Neighbor>::EOT EOT;
using moEval<Neighbor>::Fitness Fitness;
typedef typename moEval<Neighbor>::EOT EOT;
typedef typename moEval<Neighbor>::Fitness Fitness;
/**
* Ctor
@ -31,7 +31,7 @@ public:
// tmp solution
EOT tmp(_sol);
// move tmp solution wrt _neighbor
_neighbor.(tmp);
_neighbor.move(tmp);
// eval copy
tmp.invalidate();
eval(tmp);

View file

@ -27,24 +27,27 @@ public:
*/
void operator()(EOT & _sol, BackableNeighbor & _neighbor)
{
// tmp fitness value of the current solution
Fitness tmpFit;
// tmp fitness value of the current solution
Fitness tmpFit;
// save current fitness value
tmpFit = _sol.fitness();
// save current fitness value
tmpFit = _sol.fitness();
// move the current solution wrt _neighbor
_neighbor.move(_sol);
// eval the modified solution
_sol.invalidate();
eval(_sol);
// set the fitness value to the neighbor
_neighbor.fitness(_sol.fitness());
// move the current solution back
_neighbor.moveBack(_sol);
// set the fitness back
_sol.fitness(tmpFit);
// move the current solution wrt _neighbor
_neighbor.move(_sol);
// eval the modified solution
_sol.invalidate();
eval(_sol);
// set the fitness value to the neighbor
_neighbor.fitness(_sol.fitness());
// move the current solution back
_neighbor.moveBack(_sol);
// set the fitness back
_sol.fitness(tmpFit);
}