diff --git a/branches/newMo/src/continuator/moMaxNeighborStat.h b/branches/newMo/src/continuator/moMaxNeighborStat.h new file mode 100644 index 000000000..efc58b370 --- /dev/null +++ b/branches/newMo/src/continuator/moMaxNeighborStat.h @@ -0,0 +1,70 @@ +/* + + Copyright (C) DOLPHIN Project-Team, INRIA Lille - Nord Europe, 2006-2010 + + Sébastien Verel, 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 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 +*/ + +#ifndef moMaxNeighborStat_h +#define moMaxNeighborStat_h + +#include +#include + +/** + * + * From moNeighborhoodStat, to compute the max fitness in the neighborhood + * +*/ +template< class Neighborhood > +class moMaxNeighborStat : public moStat +{ +public : + typedef typename Neighborhood::EOT EOT ; + typedef typename EOT::Fitness Fitness ; + + using moStat< EOT, Fitness >::value; + + moMaxNeighborStat(moNeigborhoodStat & _nhStat) + : moStat(Fitness(), "min"), nhStat(_nhStat) + {} + + virtual void operator()(EOT & _sol) + { + value() = nhStat.getMax(); + } + + virtual std::string className(void) const { return "moMaxNeighborStat"; } + +private: + moNeigborhoodStat & nhStat; +}; + +#endif diff --git a/branches/newMo/src/continuator/moMinNeighborStat.h b/branches/newMo/src/continuator/moMinNeighborStat.h new file mode 100644 index 000000000..15d5f6c2b --- /dev/null +++ b/branches/newMo/src/continuator/moMinNeighborStat.h @@ -0,0 +1,70 @@ +/* + + Copyright (C) DOLPHIN Project-Team, INRIA Lille - Nord Europe, 2006-2010 + + Sébastien Verel, 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 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 +*/ + +#ifndef moMinNeighborStat_h +#define moMinNeighborStat_h + +#include +#include + +/** + * + * From moNeighborhoodStat, to compute the min fitness in the neighborhood + * +*/ +template< class Neighborhood > +class moMinNeighborStat : public moStat +{ +public : + typedef typename Neighborhood::EOT EOT ; + typedef typename EOT::Fitness Fitness ; + + using moStat< EOT, Fitness >::value; + + moMinNeighborStat(moNeigborhoodStat & _nhStat) + : moStat(Fitness(), "min"), nhStat(_nhStat) + {} + + virtual void operator()(EOT & _sol) + { + value() = nhStat.getMin(); + } + + virtual std::string className(void) const { return "moMinNeighborStat"; } + +private: + moNeigborhoodStat & nhStat; +}; + +#endif diff --git a/branches/newMo/src/continuator/moNbInfNeighborStat.h b/branches/newMo/src/continuator/moNbInfNeighborStat.h new file mode 100644 index 000000000..6a5339134 --- /dev/null +++ b/branches/newMo/src/continuator/moNbInfNeighborStat.h @@ -0,0 +1,71 @@ +/* + + Copyright (C) DOLPHIN Project-Team, INRIA Lille - Nord Europe, 2006-2010 + + Sébastien Verel, 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 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 +*/ + +#ifndef moNbInfNeighborStat_h +#define moNbInfNeighborStat_h + +#include +#include + +/** + * + * From moNeighborhoodStat, to compute the number of solutions in the neighborhood + * with (strictly) lower fitness than the current solution + * +*/ +template< class Neighborhood > +class moNbInfNeighborStat : public moStat +{ +public : + typedef typename Neighborhood::EOT EOT ; + typedef typename EOT::Fitness Fitness ; + + using moStat< EOT, unsigned >::value; + + moNbInfNeighborStat(moNeigborhoodStat & _nhStat) + : moStat(0, "nb inf"), nhStat(_nhStat) + {} + + virtual void operator()(EOT & _sol) + { + value() = nhStat.getNbInf(); + } + + virtual std::string className(void) const { return "moNbInfNeighborStat"; } + +private: + moNeigborhoodStat & nhStat; +}; + +#endif diff --git a/branches/newMo/src/continuator/moNbSupNeighborStat.h b/branches/newMo/src/continuator/moNbSupNeighborStat.h new file mode 100644 index 000000000..e2293c180 --- /dev/null +++ b/branches/newMo/src/continuator/moNbSupNeighborStat.h @@ -0,0 +1,71 @@ +/* + + Copyright (C) DOLPHIN Project-Team, INRIA Lille - Nord Europe, 2006-2010 + + Sébastien Verel, 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 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 +*/ + +#ifndef moNbSupNeighborStat_h +#define moNbSupNeighborStat_h + +#include +#include + +/** + * + * From moNeighborhoodStat, to compute the number of solutions in the neighborhood + * with higher fitness than the current solution + * +*/ +template< class Neighborhood > +class moNbSupNeighborStat : public moStat +{ +public : + typedef typename Neighborhood::EOT EOT ; + typedef typename EOT::Fitness Fitness ; + + using moStat< EOT, unsigned >::value; + + moNbSupNeighborStat(moNeigborhoodStat & _nhStat) + : moStat(0, "nb sup"), nhStat(_nhStat) + {} + + virtual void operator()(EOT & _sol) + { + value() = nhStat.getNbSup(); + } + + virtual std::string className(void) const { return "moNbSupNeighborStat"; } + +private: + moNeigborhoodStat & nhStat; +}; + +#endif diff --git a/branches/newMo/src/continuator/moNeighborhoodStat.h b/branches/newMo/src/continuator/moNeighborhoodStat.h new file mode 100644 index 000000000..ddfceaa30 --- /dev/null +++ b/branches/newMo/src/continuator/moNeighborhoodStat.h @@ -0,0 +1,175 @@ +/* + + Copyright (C) DOLPHIN Project-Team, INRIA Lille - Nord Europe, 2006-2010 + + Sébastien Verel, 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 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 +*/ + +#ifndef moNeigborhoodStat_h +#define moNeigborhoodStat_h + +#include + +#include +#include +#include + +/** + * All possible statitic on the neighborhood fitness + * to combine with other specific statistic to print them +*/ +template< class Neighborhood > +class moNeigborhoodStat : public moStat +{ +public : + typedef typename Neighborhood::EOT EOT ; + typedef typename Neighborhood::Neighbor Neighbor ; + typedef typename EOT::Fitness Fitness ; + + using moStat< EOT, bool >::value; + + moNeigborhoodStat(Neighborhood& _neighborhood, moEval& _eval, + moNeighborComparator& _neighborComparator, moSolNeighborComparator& _solNeighborComparator) + : moStat(true, "neighborhood"), + neighborhood(_neighborhood), eval(_eval), + neighborComparator(_neighborComparator), solNeighborComparator(_solNeighborComparator) + {} + + virtual void operator()(EOT & _solution) + { + Neighbor current ; + Neighbor best ; + Neighbor lowest ; + + if(neighborhood.hasNeighbor(_solution)){ + //init the first neighbor + neighborhood.init(_solution, current); + + //eval the _solution moved with the neighbor and stock the result in the neighbor + eval(_solution, current); + + // init the statistics + value() = true; + + mean = current.fitness(); + sd = mean * mean; + + nb = 1; + nbInf = 0; + nbEqual = 0; + nbSup = 0; + + if (solNeighborComparator.equals(_solution, current)) + nbEqual++; + else + if (solNeighborComparator(_solution, current)) + nbSup++; + else + nbInf++; + + //initialize the best neighbor + best = current; + lowest = current; + + //test all others neighbors + while (neighborhood.cont(_solution)) { + //next neighbor + neighborhood.next(_solution, current); + //eval + eval(_solution, current); + + mean += current.fitness(); + sd += current.fitness() * current.fitness(); + nb++; + + if (solNeighborComparator.equals(_solution, current)) + nbEqual++; + else + if (solNeighborComparator(_solution, current)) + nbSup++; + else + nbInf++; + + //if we found a better neighbor, update the best + if (neighborComparator(best, current)) + best = current; + + if (neighborComparator(current, lowest)) + lowest = current; + } + + max = best.fitness(); + min = lowest.fitness(); + + mean /= nb; + if (nb > 1) + sd = sqrt( (sd - nb * mean * mean) / (nb - 1.0) ); + else + sd = 0.0; + } + else{ + //if _solution hasn't neighbor, + value() = false; + } + } + + Fitness getMin() { return min ; } + Fitness getMax() { return max ; } + double getMean() { return mean ; } + double getSD() { return sd ; } + + unsigned getSize() { return nb ; } + unsigned getNbSup() { return nbSup ; } + unsigned getNbEqual() { return nbEqual ; } + unsigned getNbInf() { return nbInf ; } + + virtual std::string className(void) const { return "moNeigborhoodStat"; } + +private: + // to explore the neighborhood + Neighborhood& neighborhood ; + moEval& eval; + + // comparator betwenn solution and neighbor or between neighbors + moNeighborComparator& neighborComparator; + moSolNeighborComparator& solNeighborComparator; + + // the stastics of the fitness + Fitness max, min; + double mean, sd ; + + // number of neighbors in the neighborhood; + unsigned nb; + + // number of neighbors with lower, equal and higher fitness + unsigned nbInf, nbEqual, nbSup ; +}; + +#endif diff --git a/branches/newMo/src/continuator/moNeutralDegreeNeighborStat.h b/branches/newMo/src/continuator/moNeutralDegreeNeighborStat.h new file mode 100644 index 000000000..fd361f0ab --- /dev/null +++ b/branches/newMo/src/continuator/moNeutralDegreeNeighborStat.h @@ -0,0 +1,72 @@ +/* + + Copyright (C) DOLPHIN Project-Team, INRIA Lille - Nord Europe, 2006-2010 + + Sébastien Verel, 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 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 +*/ + +#ifndef moNeutralDegreeNeighborStat_h +#define moNeutralDegreeNeighborStat_h + +#include +#include + +/** + * + * From moNeighborhoodStat, to compute the neutral degree of the solution + * which is the number of solutions in the neighborhood + * with equals fitness + * +*/ +template< class Neighborhood > +class moNeutralDegreeNeighborStat : public moStat +{ +public : + typedef typename Neighborhood::EOT EOT ; + typedef typename EOT::Fitness Fitness ; + + using moStat< EOT, unsigned >::value; + + moNeutralDegreeNeighborStat(moNeigborhoodStat & _nhStat) + : moStat(0, "neutral degree"), nhStat(_nhStat) + {} + + virtual void operator()(EOT & _sol) + { + value() = nhStat.getNbEqual(); + } + + virtual std::string className(void) const { return "moNeutralDegreeNeighborStat"; } + +private: + moNeigborhoodStat & nhStat; +}; + +#endif diff --git a/branches/newMo/src/continuator/moSecondMomentNeighborStat.h b/branches/newMo/src/continuator/moSecondMomentNeighborStat.h new file mode 100644 index 000000000..e8ed75c18 --- /dev/null +++ b/branches/newMo/src/continuator/moSecondMomentNeighborStat.h @@ -0,0 +1,71 @@ +/* + + Copyright (C) DOLPHIN Project-Team, INRIA Lille - Nord Europe, 2006-2010 + + Sébastien Verel, 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 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 +*/ + +#ifndef moSecondMomentNeighborStat_h +#define moSecondMomentNeighborStat_h + +#include +#include + +/** + * + * From moNeighborhoodStat, to compute the average and the standard deviation of fitness in the neighborhood + * +*/ +template< class Neighborhood > +class moSecondMomentNeighborStat : public moStat > +{ +public : + typedef typename Neighborhood::EOT EOT ; + typedef typename EOT::Fitness Fitness ; + + using moStat< EOT, std::pair >::value; + + moSecondMomentNeighborStat(moNeigborhoodStat & _nhStat) + : moStat >(std::make_pair(0.0,0.0), "average and stdev"), nhStat(_nhStat) + {} + + virtual void operator()(EOT & _sol) + { + value().first = nhStat.getMean(); + value().second = nhStat.getSD(); + } + + virtual std::string className(void) const { return "moSecondMomentNeighborStat"; } + +private: + moNeigborhoodStat & nhStat; +}; + +#endif diff --git a/branches/newMo/src/continuator/moSizeNeighborStat.h b/branches/newMo/src/continuator/moSizeNeighborStat.h new file mode 100644 index 000000000..decb2d2ca --- /dev/null +++ b/branches/newMo/src/continuator/moSizeNeighborStat.h @@ -0,0 +1,70 @@ +/* + + Copyright (C) DOLPHIN Project-Team, INRIA Lille - Nord Europe, 2006-2010 + + Sébastien Verel, 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 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 +*/ + +#ifndef moSizeNeighborStat_h +#define moSizeNeighborStat_h + +#include +#include + +/** + * + * From moNeighborhoodStat, to compute the number of solutions in the neighborhood + * +*/ +template< class Neighborhood > +class moSizeNeighborStat : public moStat +{ +public : + typedef typename Neighborhood::EOT EOT ; + typedef typename EOT::Fitness Fitness ; + + using moStat< EOT, unsigned >::value; + + moSizeNeighborStat(moNeigborhoodStat & _nhStat) + : moStat(0, "size"), nhStat(_nhStat) + {} + + virtual void operator()(EOT & _sol) + { + value() = nhStat.getSize(); + } + + virtual std::string className(void) const { return "moSizeNeighborStat"; } + +private: + moNeigborhoodStat & nhStat; +}; + +#endif diff --git a/branches/newMo/tutorial/oneMax/application/testRandomWalk.cpp b/branches/newMo/tutorial/oneMax/application/testRandomWalk.cpp index 4d81da319..12a8daea6 100644 --- a/branches/newMo/tutorial/oneMax/application/testRandomWalk.cpp +++ b/branches/newMo/tutorial/oneMax/application/testRandomWalk.cpp @@ -38,7 +38,17 @@ using namespace std; #include #include #include - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include @@ -129,10 +139,10 @@ void main_function(int argc, char **argv) * * ========================================================= */ - moFullEvalByModif fulleval(eval); + moFullEvalByModif nhEval(eval); //An eval by copy can be used instead of the eval by modif - //moFullEvalByCopy fulleval(eval); + //moFullEvalByCopy nhEval(eval); /* ========================================================= @@ -150,7 +160,7 @@ void main_function(int argc, char **argv) * * ========================================================= */ - moRandomWalkExplorer explorer(neighborhood, fulleval, nbStep); + moRandomWalkExplorer explorer(neighborhood, nhEval, nbStep); /* ========================================================= @@ -161,21 +171,42 @@ void main_function(int argc, char **argv) moTrueContinuator continuator;//always continue + moCheckpoint checkpoint(continuator); + moFitnessStat fStat; eoHammingDistance distance; Indi bestSolution(vecSize, true); moDistanceStat distStat(distance, bestSolution); // moSolutionStat solStat; + + moNeighborComparator comparator; + moSolNeighborComparator solComparator; + moOrderNeighborhood nh(vecSize); + moNeigborhoodStat< moOrderNeighborhood > neighborhoodStat(nh, nhEval, comparator, solComparator); + moMinNeighborStat< moOrderNeighborhood > minStat(neighborhoodStat); + moMaxNeighborStat< moOrderNeighborhood > maxStat(neighborhoodStat); + moSecondMomentNeighborStat< moOrderNeighborhood > secondMomentStat(neighborhoodStat); + moNbSupNeighborStat< moOrderNeighborhood > nbSupStat(neighborhoodStat); + moNbInfNeighborStat< moOrderNeighborhood > nbInfStat(neighborhoodStat); + moNeutralDegreeNeighborStat< moOrderNeighborhood > ndStat(neighborhoodStat); + moSizeNeighborStat< moOrderNeighborhood > sizeStat(neighborhoodStat); checkpoint.add(fStat); checkpoint.add(distStat); // checkpoint.add(solStat); + checkpoint.add(neighborhoodStat); + checkpoint.add(minStat); + checkpoint.add(maxStat); + checkpoint.add(secondMomentStat); + checkpoint.add(nbInfStat); + checkpoint.add(nbSupStat); + checkpoint.add(ndStat); + checkpoint.add(sizeStat); eoValueParam genCounter(-1,"Gen"); eoIncrementor increm(genCounter.value()); checkpoint.add(increm); - moCheckpoint checkpoint(continuator); eoFileMonitor outputfile("out.dat", " "); checkpoint.add(outputfile); @@ -183,6 +214,13 @@ void main_function(int argc, char **argv) outputfile.add(fStat); outputfile.add(distStat); // outputfile.add(solStat); + outputfile.add(minStat); + outputfile.add(maxStat); + outputfile.add(secondMomentStat); + outputfile.add(nbInfStat); + outputfile.add(nbSupStat); + outputfile.add(ndStat); + outputfile.add(sizeStat); // to save the solution at each iteration eoState outState;