From b4232bbce0f9836fce87baa87b659c1714188dc4 Mon Sep 17 00:00:00 2001 From: jhumeau Date: Thu, 19 Mar 2009 16:24:28 +0000 Subject: [PATCH] git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@1563 331e1502-861f-0410-8da2-ba01fb791d7f --- .../moeoFirstImprovingNeighborhoodExplorer.h | 2 +- .../branches/MOLS/test/moeoTestClass.h | 34 ++++++++ ...moeoFirstImprovingNeighborhoodExplorer.cpp | 80 ++++++------------- .../t-moeoSimpleSubNeighborhoodExplorer.cpp | 2 +- 4 files changed, 62 insertions(+), 56 deletions(-) diff --git a/contribution/branches/MOLS/src2/moeoFirstImprovingNeighborhoodExplorer.h b/contribution/branches/MOLS/src2/moeoFirstImprovingNeighborhoodExplorer.h index e287d598e..c23a81652 100644 --- a/contribution/branches/MOLS/src2/moeoFirstImprovingNeighborhoodExplorer.h +++ b/contribution/branches/MOLS/src2/moeoFirstImprovingNeighborhoodExplorer.h @@ -91,7 +91,7 @@ private: _dest.back().flag(0); } } - while (nextMove(move, _src) && (comparator( _src.objectiveVector(),objVec))); + while (nextMove(move, _src) && (!comparator( _src.objectiveVector(),objVec))); if(!nextMove(move, _src)) _src.flag(1); } diff --git a/contribution/branches/MOLS/test/moeoTestClass.h b/contribution/branches/MOLS/test/moeoTestClass.h index 6a3fd8e7c..227f1b28b 100644 --- a/contribution/branches/MOLS/test/moeoTestClass.h +++ b/contribution/branches/MOLS/test/moeoTestClass.h @@ -132,3 +132,37 @@ public : return objVec; } } ; + +class testMoveIncrEval4 : public moMoveIncrEval +{ +public : + + testMoveIncrEval4(unsigned int _counter=0):counter(_counter){}; + + ObjectiveVector operator () (const testMove & _move, const Solution & _solution) + { + ObjectiveVector objVec= _solution.objectiveVector(); + switch (counter){ + case 0: + objVec[0]++; + objVec[1]++; + break; + case 1: + objVec[0]++; + objVec[1]--; + break; + case 2: + objVec[0]--; + objVec[1]++; + break; + default: + objVec[0]--; + objVec[1]--; + break; + } + counter++; + return objVec; + } +private: + unsigned int counter; +} ; diff --git a/contribution/branches/MOLS/test/t-moeoFirstImprovingNeighborhoodExplorer.cpp b/contribution/branches/MOLS/test/t-moeoFirstImprovingNeighborhoodExplorer.cpp index 6dfec9c0c..a9d580d9c 100644 --- a/contribution/branches/MOLS/test/t-moeoFirstImprovingNeighborhoodExplorer.cpp +++ b/contribution/branches/MOLS/test/t-moeoFirstImprovingNeighborhoodExplorer.cpp @@ -53,80 +53,52 @@ int main() { - std::cout << "[moeoSubNeighborhoodExplorer]\n\n"; + std::cout << "[moeoFirstImprovingNeighborhoodExplorer] => "; // objective vectors - ObjectiveVector obj0, obj1; - obj0[0]=0; - obj0[1]=1; - obj1[0]=10; - obj1[1]=11; + ObjectiveVector obj0; + obj0[0]=10; + obj0[1]=10; eoPop < Solution > src; eoPop < Solution > dest; std::vector < unsigned int > select; - src.resize(5); - src[2].objectiveVector(obj0); - src[4].objectiveVector(obj1); + src.resize(1); + src[0].objectiveVector(obj0); src[0].flag(0); - src[1].flag(0); - src[2].flag(0); - src[3].flag(0); - src[4].flag(0); dest.resize(0); - select.resize(2); - select[0]=2; - select[1]=4; + select.resize(1); + select[0]=0; testMoveInit init; testMoveNext next; - testMoveIncrEval incr; + testMoveIncrEval4 incr; + testMoveIncrEval3 incr2; moeoFirstImprovingNeighborhoodExplorer < testMove > explorer(init, next, incr); explorer(src, select, dest); - assert(dest.size()==10); + + assert(dest.size()==3); assert(src[0].flag()==0); - assert(src[1].flag()==0); - assert(src[2].flag()==1); - assert(src[3].flag()==0); - assert(src[4].flag()==1); - for(int i=0 ; i< 10 ; i++) + for(int i=0 ; i< 3 ; i++) assert(dest[i].flag()==0); - assert(dest[0].objectiveVector()[0]==2); - assert(dest[1].objectiveVector()[1]==3); - assert(dest[2].objectiveVector()[0]==2); - assert(dest[3].objectiveVector()[1]==3); - assert(dest[4].objectiveVector()[0]==2); + assert(dest[0].objectiveVector()[0]==11); + assert(dest[0].objectiveVector()[1]==9); + assert(dest[1].objectiveVector()[0]==9); + assert(dest[1].objectiveVector()[1]==11); + assert(dest[2].objectiveVector()[0]==9); + assert(dest[2].objectiveVector()[1]==9); - assert(dest[5].objectiveVector()[0]==12); - assert(dest[6].objectiveVector()[1]==13); - assert(dest[7].objectiveVector()[0]==12); - assert(dest[8].objectiveVector()[1]==13); - assert(dest[9].objectiveVector()[0]==12); - - src[2].flag(0); - src[4].flag(0); + moeoFirstImprovingNeighborhoodExplorer < testMove > explorer2(init, next, incr2); dest.resize(0); - - moeoFirstImprovingNeighborhoodExplorer < testMove > explorer2(init, next, incr); - explorer2(src, select, dest); - assert(dest.size()==6); - assert(src[0].flag()==0); - assert(src[1].flag()==0); - assert(src[2].flag()==0); - assert(src[3].flag()==0); - assert(src[4].flag()==0); - for(int i=0 ; i< 6 ; i++) + assert(dest.size()==5); + assert(src[0].flag()==1); + for(int i=0 ; i< 5 ; i++){ assert(dest[i].flag()==0); - assert(dest[0].objectiveVector()[0]==2); - assert(dest[1].objectiveVector()[1]==3); - assert(dest[2].objectiveVector()[0]==2); - - assert(dest[3].objectiveVector()[0]==12); - assert(dest[4].objectiveVector()[1]==13); - assert(dest[5].objectiveVector()[0]==12); - + assert(dest[i].objectiveVector()[0]==9); + assert(dest[i].objectiveVector()[1]==11); + } std::cout << "OK" << std::endl; return EXIT_SUCCESS; diff --git a/contribution/branches/MOLS/test/t-moeoSimpleSubNeighborhoodExplorer.cpp b/contribution/branches/MOLS/test/t-moeoSimpleSubNeighborhoodExplorer.cpp index d82773c42..e817c78fa 100644 --- a/contribution/branches/MOLS/test/t-moeoSimpleSubNeighborhoodExplorer.cpp +++ b/contribution/branches/MOLS/test/t-moeoSimpleSubNeighborhoodExplorer.cpp @@ -54,7 +54,7 @@ int main() { - std::cout << "[moeoSubNeighborhoodExplorer]\n\n"; + std::cout << "[moeoSimpleSubNeighborhoodExplorer]\n\n"; // objective vectors ObjectiveVector obj0, obj1;