DMLS intégré et testé

git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@1817 331e1502-861f-0410-8da2-ba01fb791d7f
This commit is contained in:
jhumeau 2010-05-20 07:49:06 +00:00
commit 6720152ff7
24 changed files with 1977 additions and 29 deletions

View file

@ -2,7 +2,7 @@
<t-moeoExhaustiveNeighborhoodExplorer.cpp>
Copyright (C) DOLPHIN Project-Team, INRIA Lille - Nord Europe, 2006-2010
Sébastien Verel, Arnaud Liefooghe, Jérémie Humeau
Arnaud Liefooghe, Jérémie Humeau
This software is governed by the CeCILL license under French law and
abiding by the rules of distribution of free software. You can ue,
@ -36,17 +36,23 @@ int main(){
std::cout << "[t-moeoExhaustiveNeighborhoodExplorer] => START" << std::endl;
//init all components
Solution s;
evalSolution eval(8);
ObjectiveVector o;
SolNeighbor n;
SolNeighborhood nh(8);
moeoExhaustiveNeighborhoodExplorer<SolNeighborhood> explorer(nh, eval);
moeoExhaustiveNeighborhoodExplorer<SolNeighbor> explorer(nh, eval);
//create source and destination population
eoPop<Solution> src;
eoPop<Solution> dest;
//create a vector for selection
std::vector<unsigned int> v;
v.push_back(0);
//create a solution
s.push_back(true);
s.push_back(true);
s.push_back(true);
@ -56,21 +62,49 @@ int main(){
s.push_back(true);
s.push_back(true);
//set its objective vector
o[0]=8;
o[1]=0;
s.objectiveVector(o);
// aplly a move on th solution
n.index(3);
eval(s,n);
n.move(s);
s.objectiveVector(n.fitness());
//print initial sol
std::cout << "solution:" << std::endl;
std::cout << s << std::endl;
//copy the solution in the source population
src.push_back(s);
//test the explorer
explorer(src, v, dest);
//verify the destination population
assert(dest.size()==8);
assert(dest[0].objectiveVector()[0]==6);
assert(dest[1].objectiveVector()[0]==6);
assert(dest[2].objectiveVector()[0]==6);
assert(dest[3].objectiveVector()[0]==8);
assert(dest[4].objectiveVector()[0]==6);
assert(dest[5].objectiveVector()[0]==6);
assert(dest[6].objectiveVector()[0]==6);
assert(dest[7].objectiveVector()[0]==6);
assert(dest[0].objectiveVector()[1]==2);
assert(dest[1].objectiveVector()[1]==2);
assert(dest[2].objectiveVector()[1]==2);
assert(dest[3].objectiveVector()[1]==0);
assert(dest[4].objectiveVector()[1]==2);
assert(dest[5].objectiveVector()[1]==2);
assert(dest[6].objectiveVector()[1]==2);
assert(dest[7].objectiveVector()[1]==2);
std::cout << "destination:" << std::endl;
for(unsigned int i=0; i<dest.size(); i++)
std::cout << dest[i] << std::endl;