From 9db3a10110c94f61177bf545c590d5677019ab18 Mon Sep 17 00:00:00 2001 From: jhumeau Date: Wed, 25 Nov 2009 10:53:46 +0000 Subject: [PATCH] test for the new fitness assignment schemes added git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@1621 331e1502-861f-0410-8da2-ba01fb791d7f --- trunk/paradiseo-moeo/test/CMakeLists.txt | 9 +- .../paradiseo-moeo/test/t-moeoASFAMetric.cpp | 131 ++++++++++++++++++ .../test/t-moeoASFAOrMetric.cpp | 131 ++++++++++++++++++ .../t-moeoAggregationFitnessAssignment.cpp | 116 ++++++++++++++++ .../test/t-moeoChebyshevMetric.cpp | 131 ++++++++++++++++++ .../test/t-moeoChebyshevOrientedMetric.cpp | 131 ++++++++++++++++++ .../t-moeoConstraintFitnessAssignment.cpp | 125 +++++++++++++++++ .../test/t-moeoQuadTreeArchive.cpp | 96 +++++++++++-- 8 files changed, 856 insertions(+), 14 deletions(-) create mode 100755 trunk/paradiseo-moeo/test/t-moeoASFAMetric.cpp create mode 100755 trunk/paradiseo-moeo/test/t-moeoASFAOrMetric.cpp create mode 100755 trunk/paradiseo-moeo/test/t-moeoAggregationFitnessAssignment.cpp create mode 100755 trunk/paradiseo-moeo/test/t-moeoChebyshevMetric.cpp create mode 100755 trunk/paradiseo-moeo/test/t-moeoChebyshevOrientedMetric.cpp create mode 100755 trunk/paradiseo-moeo/test/t-moeoConstraintFitnessAssignment.cpp diff --git a/trunk/paradiseo-moeo/test/CMakeLists.txt b/trunk/paradiseo-moeo/test/CMakeLists.txt index d1c87b527..a9ce4a879 100644 --- a/trunk/paradiseo-moeo/test/CMakeLists.txt +++ b/trunk/paradiseo-moeo/test/CMakeLists.txt @@ -69,8 +69,15 @@ SET (TEST_LIST t-moeoFitDivBoundedArchive t-moeoDetArchiveSelect t-moeoASEEA - t-moeoEpsilonHyperboxArchive + #t-moeoEpsilonHyperboxArchive t-moeoQuadTreeArchive + t-moeoAggregationFitnessAssignment + t-moeoConstraintFitnessAssignment + t-moeoChebyshevMetric + t-moeoChebyshevOrientedMetric + t-moeoASFAMetric + t-moeoASFAOrMetric + ) FOREACH (test ${TEST_LIST}) diff --git a/trunk/paradiseo-moeo/test/t-moeoASFAMetric.cpp b/trunk/paradiseo-moeo/test/t-moeoASFAMetric.cpp new file mode 100755 index 000000000..a1a576a67 --- /dev/null +++ b/trunk/paradiseo-moeo/test/t-moeoASFAMetric.cpp @@ -0,0 +1,131 @@ +/* +* +* Copyright (C) DOLPHIN Project-Team, INRIA Lille-Nord Europe, 2006-2008 +* (C) OPAC Team, LIFL, 2002-2008 +* +* Arnaud Liefooghe +* Jeremie Humeau +* Francois Legillon +* +* This software is governed by the CeCILL license under French law and +* abiding by the rules of distribution of free software. You can use, +* modify and/ or redistribute the software under the terms of the CeCILL +* license as circulated by CEA, CNRS and INRIA at the following URL +* "http://www.cecill.info". +* +* As a counterpart to the access to the source code and rights to copy, +* modify and redistribute granted by the license, users are provided only +* with a limited warranty and the software's author, the holder of the +* economic rights, and the successive licensors have only limited liability. +* +* In this respect, the user's attention is drawn to the risks associated +* with loading, using, modifying and/or developing or reproducing the +* software by the user in light of its specific status of free software, +* that may mean that it is complicated to manipulate, and that also +* therefore means that it is reserved for developers and experienced +* professionals having in-depth computer knowledge. Users are therefore +* encouraged to load and test the software's suitability as regards their +* requirements in conditions enabling the security of their systems and/or +* data to be ensured and, more generally, to use and operate it in the +* same conditions as regards security. +* The fact that you are presently reading this means that you have had +* knowledge of the CeCILL license and that you accept its terms. +* +* ParadisEO WebSite : http://paradiseo.gforge.inria.fr +* Contact: paradiseo-help@lists.gforge.inria.fr +* +*/ +//----------------------------------------------------------------------------- +// t-moeoAggregationFitnessAssignment.cpp +//----------------------------------------------------------------------------- + +#include +#include +#include +#include +//----------------------------------------------------------------------------- + +class ObjectiveVectorTraits : public moeoObjectiveVectorTraits +{ +public: + static bool minimizing (int i) + { + return true; + } + static bool maximizing (int i) + { + return false; + } + static unsigned int nObjectives () + { + return 2; + } +}; + +typedef moeoRealObjectiveVector < ObjectiveVectorTraits > ObjectiveVector; + +typedef MOEO < ObjectiveVector, double, double > Solution; + +class DummyEval: public eoEvalFunc{ + void operator()(Solution &moeo){ + } +} eval; +//----------------------------------------------------------------------------- + +int main() +{ + int res=EXIT_SUCCESS; + + std::cout << "[moeoChebyshevMetric] => "; + + // objective vectors + ObjectiveVector obj0, obj1, obj2, obj3, obj4, obj5, obj6; + obj0[0] = 3; + obj0[1] = 3; + + obj1[0] = 2; + obj1[1] = 2; + + obj2[0] = 1; + obj2[1] = 1; + + obj4[0] = 0; + obj4[1] = 0; + + + std::vector poids; + poids.resize(2); + + poids[0]=2; + poids[1]=3; + ObjectiveVector obj_poids(poids); + + + // population + eoPop < Solution > pop; + pop.resize(3); + pop[0].objectiveVector(obj0); + pop[1].objectiveVector(obj1); + pop[2].objectiveVector(obj2); + Solution reference; + reference.objectiveVector(obj4); + unsigned int rho=2; + + moeoObjectiveVectorNormalizer normalizer(pop,10); + + moeoAchievementScalarizingFunctionMetricFitnessAssignment fitness(rho,obj4,obj_poids,normalizer); + moeoAchievementScalarizingFunctionMetricFitnessAssignment fitness1(rho,obj4,obj_poids,normalizer,eval); + moeoAchievementScalarizingFunctionMetricFitnessAssignment fitness2(rho,obj4,obj_poids); + moeoAchievementScalarizingFunctionMetricFitnessAssignment fitness3(rho,obj4,obj_poids,eval); + fitness(pop); + fitness(reference); + + assert(pop[0].fitness() +* Copyright (C) DOLPHIN Project-Team, INRIA Lille-Nord Europe, 2006-2008 +* (C) OPAC Team, LIFL, 2002-2008 +* +* Arnaud Liefooghe +* Jeremie Humeau +* Francois Legillon +* +* This software is governed by the CeCILL license under French law and +* abiding by the rules of distribution of free software. You can use, +* modify and/ or redistribute the software under the terms of the CeCILL +* license as circulated by CEA, CNRS and INRIA at the following URL +* "http://www.cecill.info". +* +* As a counterpart to the access to the source code and rights to copy, +* modify and redistribute granted by the license, users are provided only +* with a limited warranty and the software's author, the holder of the +* economic rights, and the successive licensors have only limited liability. +* +* In this respect, the user's attention is drawn to the risks associated +* with loading, using, modifying and/or developing or reproducing the +* software by the user in light of its specific status of free software, +* that may mean that it is complicated to manipulate, and that also +* therefore means that it is reserved for developers and experienced +* professionals having in-depth computer knowledge. Users are therefore +* encouraged to load and test the software's suitability as regards their +* requirements in conditions enabling the security of their systems and/or +* data to be ensured and, more generally, to use and operate it in the +* same conditions as regards security. +* The fact that you are presently reading this means that you have had +* knowledge of the CeCILL license and that you accept its terms. +* +* ParadisEO WebSite : http://paradiseo.gforge.inria.fr +* Contact: paradiseo-help@lists.gforge.inria.fr +* +*/ +//----------------------------------------------------------------------------- +// t-moeoAggregationFitnessAssignment.cpp +//----------------------------------------------------------------------------- + +#include +#include +#include +#include +//----------------------------------------------------------------------------- + +class ObjectiveVectorTraits : public moeoObjectiveVectorTraits +{ +public: + static bool minimizing (int i) + { + return true; + } + static bool maximizing (int i) + { + return false; + } + static unsigned int nObjectives () + { + return 2; + } +}; + +typedef moeoRealObjectiveVector < ObjectiveVectorTraits > ObjectiveVector; + +typedef MOEO < ObjectiveVector, double, double > Solution; + +class DummyEval: public eoEvalFunc{ + void operator()(Solution &moeo){ + } +} eval; +//----------------------------------------------------------------------------- + +int main() +{ + int res=EXIT_SUCCESS; + + std::cout << "[moeoChebyshevMetric] => "; + + // objective vectors + ObjectiveVector obj0, obj1, obj2, obj3, obj4, obj5, obj6; + obj0[0] = 3; + obj0[1] = 3; + + obj1[0] = 2; + obj1[1] = 2; + + obj2[0] = 1; + obj2[1] = 1; + + obj4[0] = 0; + obj4[1] = 0; + + + std::vector poids; + poids.resize(2); + + poids[0]=2; + poids[1]=3; + ObjectiveVector obj_poids(poids); + + + // population + eoPop < Solution > pop; + pop.resize(3); + pop[0].objectiveVector(obj0); + pop[1].objectiveVector(obj1); + pop[2].objectiveVector(obj2); + Solution reference; + reference.objectiveVector(obj4); + unsigned int rho=2; + + moeoObjectiveVectorNormalizer normalizer(pop,10); + + moeoAugmentedAchievementScalarizingFunctionMetricFitnessAssignment fitness(rho,obj4,obj_poids,normalizer,eval); + moeoAugmentedAchievementScalarizingFunctionMetricFitnessAssignment fitness1(rho,obj4,obj_poids); + moeoAugmentedAchievementScalarizingFunctionMetricFitnessAssignment fitness2(rho,obj4,obj_poids,normalizer); + moeoAugmentedAchievementScalarizingFunctionMetricFitnessAssignment fitness3(rho,obj4,obj_poids,eval); + fitness(pop); + fitness(reference); + + assert(pop[0].fitness() +* Copyright (C) DOLPHIN Project-Team, INRIA Lille-Nord Europe, 2006-2008 +* (C) OPAC Team, LIFL, 2002-2008 +* +* Arnaud Liefooghe +* Jeremie Humeau +* Francois Legillon +* +* This software is governed by the CeCILL license under French law and +* abiding by the rules of distribution of free software. You can use, +* modify and/ or redistribute the software under the terms of the CeCILL +* license as circulated by CEA, CNRS and INRIA at the following URL +* "http://www.cecill.info". +* +* As a counterpart to the access to the source code and rights to copy, +* modify and redistribute granted by the license, users are provided only +* with a limited warranty and the software's author, the holder of the +* economic rights, and the successive licensors have only limited liability. +* +* In this respect, the user's attention is drawn to the risks associated +* with loading, using, modifying and/or developing or reproducing the +* software by the user in light of its specific status of free software, +* that may mean that it is complicated to manipulate, and that also +* therefore means that it is reserved for developers and experienced +* professionals having in-depth computer knowledge. Users are therefore +* encouraged to load and test the software's suitability as regards their +* requirements in conditions enabling the security of their systems and/or +* data to be ensured and, more generally, to use and operate it in the +* same conditions as regards security. +* The fact that you are presently reading this means that you have had +* knowledge of the CeCILL license and that you accept its terms. +* +* ParadisEO WebSite : http://paradiseo.gforge.inria.fr +* Contact: paradiseo-help@lists.gforge.inria.fr +* +*/ +//----------------------------------------------------------------------------- +// t-moeoAggregationFitnessAssignment.cpp +//----------------------------------------------------------------------------- + +#include +#include +#include +#include +//----------------------------------------------------------------------------- + +class ObjectiveVectorTraits : public moeoObjectiveVectorTraits +{ +public: + static bool minimizing (int i) + { + return false; + } + static bool maximizing (int i) + { + return true; + } + static unsigned int nObjectives () + { + return 2; + } +}; + +typedef moeoRealObjectiveVector < ObjectiveVectorTraits > ObjectiveVector; + +typedef MOEO < ObjectiveVector, double, double > Solution; + +//----------------------------------------------------------------------------- + +int main() +{ + int res=EXIT_SUCCESS; + + std::cout << "[moeoAggregationFitnessAssignment] => "; + + // objective vectors + ObjectiveVector obj0, obj1, obj2, obj3; + obj0[0] = 2; + obj0[1] = 5; + obj1[0] = 3; + obj1[1] = 3; + obj2[0] = 4; + obj2[1] = 1; + obj3[0] = 5; + obj3[1] = 5; + + std::vector poids; + poids.resize(2); + + poids[0]=2; + poids[1]=3; + + // population + eoPop < Solution > pop; + pop.resize(4); + pop[0].objectiveVector(obj0); + pop[1].objectiveVector(obj1); + pop[2].objectiveVector(obj2); + pop[3].objectiveVector(obj3); + + moeoAggregationFitnessAssignment < Solution > fitness(poids); + + fitness(pop); + + assert(pop[0].fitness() == 19.0); + assert(pop[1].fitness() == 15.0); + assert(pop[2].fitness() == 11.0); + assert(pop[3].fitness() == 25.0); + + std::cout << "Ok" << std::endl; + + return EXIT_SUCCESS; +} + +//----------------------------------------------------------------------------- diff --git a/trunk/paradiseo-moeo/test/t-moeoChebyshevMetric.cpp b/trunk/paradiseo-moeo/test/t-moeoChebyshevMetric.cpp new file mode 100755 index 000000000..a14a845ea --- /dev/null +++ b/trunk/paradiseo-moeo/test/t-moeoChebyshevMetric.cpp @@ -0,0 +1,131 @@ +/* +* +* Copyright (C) DOLPHIN Project-Team, INRIA Lille-Nord Europe, 2006-2008 +* (C) OPAC Team, LIFL, 2002-2008 +* +* Arnaud Liefooghe +* Jeremie Humeau +* Francois Legillon +* +* This software is governed by the CeCILL license under French law and +* abiding by the rules of distribution of free software. You can use, +* modify and/ or redistribute the software under the terms of the CeCILL +* license as circulated by CEA, CNRS and INRIA at the following URL +* "http://www.cecill.info". +* +* As a counterpart to the access to the source code and rights to copy, +* modify and redistribute granted by the license, users are provided only +* with a limited warranty and the software's author, the holder of the +* economic rights, and the successive licensors have only limited liability. +* +* In this respect, the user's attention is drawn to the risks associated +* with loading, using, modifying and/or developing or reproducing the +* software by the user in light of its specific status of free software, +* that may mean that it is complicated to manipulate, and that also +* therefore means that it is reserved for developers and experienced +* professionals having in-depth computer knowledge. Users are therefore +* encouraged to load and test the software's suitability as regards their +* requirements in conditions enabling the security of their systems and/or +* data to be ensured and, more generally, to use and operate it in the +* same conditions as regards security. +* The fact that you are presently reading this means that you have had +* knowledge of the CeCILL license and that you accept its terms. +* +* ParadisEO WebSite : http://paradiseo.gforge.inria.fr +* Contact: paradiseo-help@lists.gforge.inria.fr +* +*/ +//----------------------------------------------------------------------------- +// t-moeoAggregationFitnessAssignment.cpp +//----------------------------------------------------------------------------- + +#include +#include +#include +#include +//----------------------------------------------------------------------------- + +class ObjectiveVectorTraits : public moeoObjectiveVectorTraits +{ +public: + static bool minimizing (int i) + { + return false; + } + static bool maximizing (int i) + { + return true; + } + static unsigned int nObjectives () + { + return 2; + } +}; + +typedef moeoRealObjectiveVector < ObjectiveVectorTraits > ObjectiveVector; + +typedef MOEO < ObjectiveVector, double, double > Solution; + +class DummyEval: public eoEvalFunc{ + void operator()(Solution &moeo){ + } +} eval; +//----------------------------------------------------------------------------- + +int main() +{ + int res=EXIT_SUCCESS; + + std::cout << "[moeoChebyshevMetric] => "; + + // objective vectors + ObjectiveVector obj0, obj1, obj2, obj3, obj4, obj5, obj6; + obj0[0] = 3; + obj0[1] = 3; + + obj1[0] = 2; + obj1[1] = 2; + + obj2[0] = 1; + obj2[1] = 1; + + obj4[0] = 0; + obj4[1] = 0; + + + std::vector poids; + poids.resize(2); + + poids[0]=2; + poids[1]=3; + ObjectiveVector obj_poids(poids); + + + // population + eoPop < Solution > pop; + pop.resize(3); + pop[0].objectiveVector(obj0); + pop[1].objectiveVector(obj1); + pop[2].objectiveVector(obj2); + Solution reference; + reference.objectiveVector(obj4); + unsigned int rho=2; + + moeoObjectiveVectorNormalizer normalizer(pop,10); + + moeoWeightedChebychevMetricFitnessAssignment fitness(rho,obj4,obj_poids,normalizer); + moeoWeightedChebychevMetricFitnessAssignment fitness2(rho,obj4,obj_poids); + moeoWeightedChebychevMetricFitnessAssignment fitness3(rho,obj4,obj_poids,eval); + moeoWeightedChebychevMetricFitnessAssignment fitness4(rho,obj4,obj_poids,normalizer,eval); + fitness(pop); + fitness(reference); + + assert(pop[0].fitness() +* Copyright (C) DOLPHIN Project-Team, INRIA Lille-Nord Europe, 2006-2008 +* (C) OPAC Team, LIFL, 2002-2008 +* +* Arnaud Liefooghe +* Jeremie Humeau +* Francois Legillon +* +* This software is governed by the CeCILL license under French law and +* abiding by the rules of distribution of free software. You can use, +* modify and/ or redistribute the software under the terms of the CeCILL +* license as circulated by CEA, CNRS and INRIA at the following URL +* "http://www.cecill.info". +* +* As a counterpart to the access to the source code and rights to copy, +* modify and redistribute granted by the license, users are provided only +* with a limited warranty and the software's author, the holder of the +* economic rights, and the successive licensors have only limited liability. +* +* In this respect, the user's attention is drawn to the risks associated +* with loading, using, modifying and/or developing or reproducing the +* software by the user in light of its specific status of free software, +* that may mean that it is complicated to manipulate, and that also +* therefore means that it is reserved for developers and experienced +* professionals having in-depth computer knowledge. Users are therefore +* encouraged to load and test the software's suitability as regards their +* requirements in conditions enabling the security of their systems and/or +* data to be ensured and, more generally, to use and operate it in the +* same conditions as regards security. +* The fact that you are presently reading this means that you have had +* knowledge of the CeCILL license and that you accept its terms. +* +* ParadisEO WebSite : http://paradiseo.gforge.inria.fr +* Contact: paradiseo-help@lists.gforge.inria.fr +* +*/ +//----------------------------------------------------------------------------- +// t-moeoAggregationFitnessAssignment.cpp +//----------------------------------------------------------------------------- + +#include +#include +#include +#include +//----------------------------------------------------------------------------- + +class ObjectiveVectorTraits : public moeoObjectiveVectorTraits +{ +public: + static bool minimizing (int i) + { + return true; + } + static bool maximizing (int i) + { + return false; + } + static unsigned int nObjectives () + { + return 2; + } +}; + +typedef moeoRealObjectiveVector < ObjectiveVectorTraits > ObjectiveVector; + +typedef MOEO < ObjectiveVector, double, double > Solution; + +class DummyEval: public eoEvalFunc{ + void operator()(Solution &moeo){ + } +} eval; +//----------------------------------------------------------------------------- + +int main() +{ + int res=EXIT_SUCCESS; + + std::cout << "[moeoChebyshevMetric] => "; + + // objective vectors + ObjectiveVector obj0, obj1, obj2, obj3, obj4, obj5, obj6; + obj0[0] = 3; + obj0[1] = 3; + + obj1[0] = 2; + obj1[1] = 2; + + obj2[0] = 1; + obj2[1] = 1; + + obj4[0] = 0; + obj4[1] = 0; + + + std::vector poids; + poids.resize(2); + + poids[0]=2; + poids[1]=3; + ObjectiveVector obj_poids(poids); + + + // population + eoPop < Solution > pop; + pop.resize(3); + pop[0].objectiveVector(obj0); + pop[1].objectiveVector(obj1); + pop[2].objectiveVector(obj2); + Solution reference; + reference.objectiveVector(obj4); + unsigned int rho=2; + + moeoObjectiveVectorNormalizer normalizer(pop,10); + + moeoAugmentedWeightedChebychevMetricFitnessAssignment fitness(rho,obj4,obj_poids,normalizer,eval); + moeoAugmentedWeightedChebychevMetricFitnessAssignment fitness1(rho,obj4,obj_poids,normalizer); + moeoAugmentedWeightedChebychevMetricFitnessAssignment fitness2(rho,obj4,obj_poids,eval); + moeoAugmentedWeightedChebychevMetricFitnessAssignment fitness3(rho,obj4,obj_poids); + fitness(pop); + fitness(reference); + + assert(pop[0].fitness() +* Copyright (C) DOLPHIN Project-Team, INRIA Lille-Nord Europe, 2006-2008 +* (C) OPAC Team, LIFL, 2002-2008 +* +* Arnaud Liefooghe +* Jeremie Humeau +* Francois Legillon +* +* This software is governed by the CeCILL license under French law and +* abiding by the rules of distribution of free software. You can use, +* modify and/ or redistribute the software under the terms of the CeCILL +* license as circulated by CEA, CNRS and INRIA at the following URL +* "http://www.cecill.info". +* +* As a counterpart to the access to the source code and rights to copy, +* modify and redistribute granted by the license, users are provided only +* with a limited warranty and the software's author, the holder of the +* economic rights, and the successive licensors have only limited liability. +* +* In this respect, the user's attention is drawn to the risks associated +* with loading, using, modifying and/or developing or reproducing the +* software by the user in light of its specific status of free software, +* that may mean that it is complicated to manipulate, and that also +* therefore means that it is reserved for developers and experienced +* professionals having in-depth computer knowledge. Users are therefore +* encouraged to load and test the software's suitability as regards their +* requirements in conditions enabling the security of their systems and/or +* data to be ensured and, more generally, to use and operate it in the +* same conditions as regards security. +* The fact that you are presently reading this means that you have had +* knowledge of the CeCILL license and that you accept its terms. +* +* ParadisEO WebSite : http://paradiseo.gforge.inria.fr +* Contact: paradiseo-help@lists.gforge.inria.fr +* +*/ +//----------------------------------------------------------------------------- +// t-moeoAggregationFitnessAssignment.cpp +//----------------------------------------------------------------------------- + +#include +#include +#include +#include +//----------------------------------------------------------------------------- + +class ObjectiveVectorTraits : public moeoObjectiveVectorTraits +{ +public: + static bool minimizing (int i) + { + return true; + } + static bool maximizing (int i) + { + return false; + } + static unsigned int nObjectives () + { + return 2; + } +}; + +typedef moeoRealObjectiveVector < ObjectiveVectorTraits > ObjectiveVector; + +typedef MOEO < ObjectiveVector, double, double > Solution; + +class DummyEval: public eoEvalFunc{ + void operator()(Solution &moeo){ + } +} defaultEval; +//----------------------------------------------------------------------------- + +int main() +{ + int res=EXIT_SUCCESS; + + std::cout << "[moeoAggregationFitnessAssignment] => "; + + // objective vectors + ObjectiveVector obj0, obj1, obj2, obj3, obj4, obj5, obj6; + obj0[0] = 0; + obj0[1] = 2; + + obj1[0] = 2; + obj1[1] = 0; + + obj2[0] = 4; + obj2[1] = 2; + + obj4[0] = 3; + obj4[1] = 0; + + + std::vector poids; + poids.resize(2); + + poids[0]=2; + poids[1]=1; + + // population + eoPop < Solution > pop; + pop.resize(3); + pop[0].objectiveVector(obj0); + pop[1].objectiveVector(obj1); + pop[2].objectiveVector(obj2); + + moeoObjectiveVectorNormalizer normalizer; + + moeoConstraintFitnessAssignment < Solution > fitness(poids,obj4,1,normalizer); + moeoConstraintFitnessAssignment < Solution > fitness2(poids,obj4,1,normalizer,defaultEval); + + fitness(pop); + + assert(pop[0].fitness()==-2); + assert(pop[1].fitness()==0); + assert(pop[2].fitness()==-4); + + std::cout << "Ok" << std::endl; + + return EXIT_SUCCESS; +} + +//----------------------------------------------------------------------------- diff --git a/trunk/paradiseo-moeo/test/t-moeoQuadTreeArchive.cpp b/trunk/paradiseo-moeo/test/t-moeoQuadTreeArchive.cpp index ef5fa9942..5e9a522ce 100644 --- a/trunk/paradiseo-moeo/test/t-moeoQuadTreeArchive.cpp +++ b/trunk/paradiseo-moeo/test/t-moeoQuadTreeArchive.cpp @@ -78,20 +78,49 @@ int main() bool empty= tree.isEmpty(); std::cout <<"empty? " << empty << std::endl; ObjectiveVector obj1; - obj1[0]=2.0; - obj1[1]=2.0; - obj1[2]=2.0; + obj1[0]=54.0; + obj1[1]=65.0; + obj1[2]=67.0; ObjectiveVector obj2; - obj2[0]=2.0; - obj2[1]=1.0; - obj2[2]=1.0; + obj2[0]=23.0; + obj2[1]=25.0; + obj2[2]=52.0; ObjectiveVector obj3; - obj3[0]=1.0; - obj3[1]=1.0; - obj3[2]=1.0; - QuadTreeNode hop(obj1); - QuadTreeNode hop2(obj2); - QuadTreeNode hop3(obj3); + obj3[0]=87.0; + obj3[1]=5.0; + obj3[2]=33.0; + ObjectiveVector obj4; + obj4[0]=52.0; + obj4[1]=50.0; + obj4[2]=72.0; + ObjectiveVector obj5; + obj5[0]=80.0; + obj5[1]=41.0; + obj5[2]=8.0; + ObjectiveVector obj6; + obj6[0]=26.0; + obj6[1]=0.0; + obj6[2]=5.0; + ObjectiveVector obj7; + obj7[0]=56.0; + obj7[1]=22.0; + obj7[2]=0.0; + ObjectiveVector obj8; + obj8[0]=87.0; + obj8[1]=42.0; + obj8[2]=62.0; + ObjectiveVector obj9; + obj9[0]=90.0; + obj9[1]=69.0; + obj9[2]=83.0; + ObjectiveVector obj10; + obj10[0]=68.0; + obj10[1]=89.0; + obj10[2]=22.0; +// QuadTreeNode hop(obj1); +// QuadTreeNode hop2(obj2); +// QuadTreeNode hop3(obj3); +// QuadTreeNode hop4(obj4); // empty = hop.getSubTree().empty(); // std::cout <<"empty? " << empty << std::endl; // std::vector< QuadTreeNode > nodes; @@ -103,7 +132,48 @@ int main() // std::cout << "size: " << nodes.size() << std::endl; tree.insert(obj1); tree.insert(obj2); - tree.insert(obj2); + tree.insert(obj3); + tree.insert(obj4); + tree.insert(obj5); + std::cout << "\n\n\n"; + + tree.insert(obj6); +// tree.insert(obj7); +// tree.insert(obj8); +// tree.insert(obj9); +// tree.insert(obj10); + +// moeoUnboundedArchive archive(false); +// eoPop pop; +// pop.resize(1000); +// int tmp; +// +// for(int i= 0; i<1000 ; i++){ +// ObjectiveVector obj; +// obj[0]=floor(rng.uniform()*100); +// obj[1]=floor(rng.uniform()*100); +// obj[2]=floor(rng.uniform()*100); +// std::cout << obj << std::endl; +// pop[i].objectiveVector(obj); +// tree.insert(obj); +// archive(pop[i]); +// tree.printTree(); +// std::cout << std::endl; +// std::cout << std::endl; +// +// std::cout << "achive: " << archive << std::endl; +// std::cin >> tmp; +// } + + + +// QuadTreeNode * a = tree.getRoot(); +// QuadTreeNode * b = a->getSubTree()[1]; +// QuadTreeNode * c = b->getSubTree()[2]; +// +// tree.reinsert(a,c); + +// std::cout << "achive: " << archive << std::endl; tree.printTree();