diff --git a/trunk/paradiseo-moeo/doc/html/FlowShopBenchmarkParser_8cpp-source.html b/trunk/paradiseo-moeo/doc/html/FlowShopBenchmarkParser_8cpp-source.html new file mode 100644 index 000000000..bae6d394f --- /dev/null +++ b/trunk/paradiseo-moeo/doc/html/FlowShopBenchmarkParser_8cpp-source.html @@ -0,0 +1,129 @@ + +
+00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- +00002 +00003 //----------------------------------------------------------------------------- +00004 // FlowShopBenchmarkParser.cpp +00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +00006 /* +00007 This library... +00008 +00009 Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr +00010 */ +00011 //----------------------------------------------------------------------------- +00012 +00013 #include <stdexcept> +00014 #include <FlowShopBenchmarkParser.h> +00015 +00016 FlowShopBenchmarkParser::FlowShopBenchmarkParser(const std::string _benchmarkFileName) +00017 { +00018 init(_benchmarkFileName); +00019 } +00020 +00021 +00022 const unsigned int FlowShopBenchmarkParser::getM() +00023 { +00024 return M; +00025 } +00026 +00027 +00028 const unsigned int FlowShopBenchmarkParser::getN() +00029 { +00030 return N; +00031 } +00032 +00033 +00034 const std::vector< std::vector<unsigned int> > FlowShopBenchmarkParser::getP() +00035 { +00036 return p; +00037 } +00038 +00039 +00040 const std::vector<unsigned int> FlowShopBenchmarkParser::getD() +00041 { +00042 return d; +00043 } +00044 +00045 +00046 void FlowShopBenchmarkParser::printOn(std::ostream & _os) const +00047 { +00048 _os << "M=" << M << " N=" << N << std::endl; +00049 _os << "*** processing times" << std::endl; +00050 for (unsigned int i=0; i<M; i++) { +00051 for (unsigned int j=0; j<N; j++) { +00052 _os << p[i][j] << " "; +00053 } +00054 _os << std::endl; +00055 } +00056 _os << "*** due-dates" << std::endl; +00057 for (unsigned int j=0; j<N; j++) { +00058 _os << d[j] << " "; +00059 } +00060 _os << std::endl << std::endl; +00061 } +00062 +00063 +00064 void FlowShopBenchmarkParser::init(const std::string _benchmarkFileName) +00065 { +00066 std::string buffer; +00067 std::string::size_type start, end; +00068 std::ifstream inputFile(_benchmarkFileName.data(), std::ios::in); +00069 // opening of the benchmark file +00070 if (! inputFile) +00071 throw std::runtime_error("*** ERROR : Unable to open the benchmark file"); +00072 // number of jobs (N) +00073 getline(inputFile, buffer, '\n'); +00074 N = atoi(buffer.data()); +00075 // number of machines M +00076 getline(inputFile, buffer, '\n'); +00077 M = atoi(buffer.data()); +00078 // initial and current seeds (not used) +00079 getline(inputFile, buffer, '\n'); +00080 // processing times and due-dates +00081 p = std::vector< std::vector<unsigned int> > (M,N); +00082 d = std::vector<unsigned int> (N); +00083 // for each job... +00084 for (unsigned int j=0 ; j<N ; j++) { +00085 // index of the job (<=> j) +00086 getline(inputFile, buffer, '\n'); +00087 // due-date of the job j +00088 getline(inputFile, buffer, '\n'); +00089 d[j] = atoi(buffer.data()); +00090 // processing times of the job j on each machine +00091 getline(inputFile, buffer, '\n'); +00092 start = buffer.find_first_not_of(" "); +00093 for (unsigned int i=0 ; i<M ; i++) { +00094 end = buffer.find_first_of(" ", start); +00095 p[i][j] = atoi(buffer.substr(start, end-start).data()); +00096 start = buffer.find_first_not_of(" ", end); +00097 } +00098 } +00099 // closing of the input file +00100 inputFile.close(); +00101 } +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/FlowShopBenchmarkParser_8h-source.html b/trunk/paradiseo-moeo/doc/html/FlowShopBenchmarkParser_8h-source.html
new file mode 100644
index 000000000..0919ff0eb
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/FlowShopBenchmarkParser_8h-source.html
@@ -0,0 +1,82 @@
+
+
+00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- +00002 +00003 //----------------------------------------------------------------------------- +00004 // FlowShopBenchmarkParser.h +00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +00006 /* +00007 This library... +00008 +00009 Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr +00010 */ +00011 //----------------------------------------------------------------------------- +00012 +00013 #ifndef FLOWSHOPBENCHMARKPARSER_H_ +00014 #define FLOWSHOPBENCHMARKPARSER_H_ +00015 +00016 #include <fstream> +00017 #include <string> +00018 #include <vector> +00019 +00023 class FlowShopBenchmarkParser +00024 { +00025 public: +00026 +00031 FlowShopBenchmarkParser(const std::string _benchmarkFileName); +00032 +00033 +00037 const unsigned int getM(); +00038 +00039 +00043 const unsigned int getN(); +00044 +00045 +00049 const std::vector < std::vector < unsigned int > > getP(); +00050 +00051 +00055 const std::vector < unsigned int > getD(); +00056 +00057 +00061 void printOn(std::ostream & _os) const; +00062 +00063 +00064 private: +00065 +00067 unsigned int M; +00069 unsigned int N; +00071 std::vector < std::vector < unsigned int > > p; +00073 std::vector < unsigned int > d; +00074 +00075 +00080 void init(const std::string _benchmarkFileName); +00081 +00082 }; +00083 +00084 #endif /*FLOWSHOPBENCHMARKPARSER_H_*/ +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/FlowShopEA_8cpp-source.html b/trunk/paradiseo-moeo/doc/html/FlowShopEA_8cpp-source.html
new file mode 100644
index 000000000..168f09873
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/FlowShopEA_8cpp-source.html
@@ -0,0 +1,135 @@
+
+
+00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- +00002 +00003 //----------------------------------------------------------------------------- +00004 // FlowShopEA.cpp +00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +00006 /* +00007 This library... +00008 +00009 Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr +00010 */ +00011 //----------------------------------------------------------------------------- +00012 +00013 +00014 // moeo general include +00015 #include <moeo> +00016 // for the creation of an evaluator +00017 #include <make_eval_FlowShop.h> +00018 // for the creation of an initializer +00019 #include <make_genotype_FlowShop.h> +00020 // for the creation of the variation operators +00021 #include <make_op_FlowShop.h> +00022 // how to initialize the population +00023 #include <do/make_pop.h> +00024 // the stopping criterion +00025 #include <do/make_continue_moeo.h> +00026 // outputs (stats, population dumps, ...) +00027 #include <do/make_checkpoint_moeo.h> +00028 // evolution engine (selection and replacement) +00029 #include <do/make_ea_moeo.h> +00030 // simple call to the algo +00031 #include <do/make_run.h> +00032 // checks for help demand, and writes the status file and make_help; in libutils +00033 void make_help(eoParser & _parser); +00034 // definition of the representation +00035 #include <FlowShop.h> +00036 +00037 +00038 using namespace std; +00039 +00040 +00041 int main(int argc, char* argv[]) +00042 { +00043 try +00044 { +00045 +00046 eoParser parser(argc, argv); // for user-parameter reading +00047 eoState state; // to keep all things allocated +00048 +00049 +00050 /*** the representation-dependent things ***/ +00051 +00052 // The fitness evaluation +00053 eoEvalFuncCounter<FlowShop>& eval = do_make_eval(parser, state); +00054 // the genotype (through a genotype initializer) +00055 eoInit<FlowShop>& init = do_make_genotype(parser, state); +00056 // the variation operators +00057 eoGenOp<FlowShop>& op = do_make_op(parser, state); +00058 +00059 +00060 /*** the representation-independent things ***/ +00061 +00062 // initialization of the population +00063 eoPop<FlowShop>& pop = do_make_pop(parser, state, init); +00064 // definition of the archive +00065 moeoArchive<FlowShop> arch; +00066 // stopping criteria +00067 eoContinue<FlowShop>& term = do_make_continue_moeo(parser, state, eval); +00068 // output +00069 eoCheckPoint<FlowShop>& checkpoint = do_make_checkpoint_moeo(parser, state, eval, term, pop, arch); +00070 // algorithm +00071 eoAlgo<FlowShop>& algo = do_make_ea_moeo(parser, state, eval, checkpoint, op, arch); +00072 +00073 +00074 /*** Go ! ***/ +00075 +00076 // help ? +00077 make_help(parser); +00078 +00079 // first evalution +00080 apply<FlowShop>(eval, pop); +00081 +00082 // printing of the initial population +00083 cout << "Initial Population\n"; +00084 pop.sortedPrintOn(cout); +00085 cout << endl; +00086 +00087 // run the algo +00088 do_run(algo, pop); +00089 +00090 // printing of the final population +00091 cout << "Final Population\n"; +00092 pop.sortedPrintOn(cout); +00093 cout << endl; +00094 +00095 // printing of the final archive +00096 cout << "Final Archive\n"; +00097 arch.sortedPrintOn(cout); +00098 cout << endl; +00099 +00100 +00101 } +00102 catch (exception& e) +00103 { +00104 cout << e.what() << endl; +00105 } +00106 return EXIT_SUCCESS; +00107 } +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/FlowShopEval_8cpp-source.html b/trunk/paradiseo-moeo/doc/html/FlowShopEval_8cpp-source.html
new file mode 100644
index 000000000..57ea467ec
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/FlowShopEval_8cpp-source.html
@@ -0,0 +1,92 @@
+
+
+00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- +00002 +00003 //----------------------------------------------------------------------------- +00004 // FlowShopEval.cpp +00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +00006 /* +00007 This library... +00008 +00009 Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr +00010 */ +00011 //----------------------------------------------------------------------------- +00012 +00013 #include <FlowShopEval.h> +00014 +00015 +00016 FlowShopEval::FlowShopEval(unsigned int _M, unsigned int _N, const std::vector< std::vector<unsigned int> > & _p, const std::vector<unsigned int> & _d) : +00017 M(_M), N (_N), p(_p), d(_d) +00018 {} +00019 +00020 +00021 void FlowShopEval::operator()(FlowShop & _flowshop) +00022 { +00023 FlowShopObjectiveVector objVector; +00024 objVector[0] = makespan(_flowshop); +00025 objVector[1] = tardiness(_flowshop); +00026 _flowshop.objectiveVector(objVector); +00027 } +00028 +00029 +00030 +00031 double FlowShopEval::makespan(const FlowShop & _flowshop) +00032 { +00033 // completion times computation for each job on each machine +00034 // C[i][j] = completion of the jth job of the scheduling on the ith machine +00035 std::vector< std::vector<unsigned int> > C = completionTime(_flowshop); +00036 return C[M-1][_flowshop[N-1]]; +00037 } +00038 +00039 +00040 double FlowShopEval::tardiness(const FlowShop & _flowshop) +00041 { +00042 // completion times computation for each job on each machine +00043 // C[i][j] = completion of the jth job of the scheduling on the ith machine +00044 std::vector< std::vector<unsigned int> > C = completionTime(_flowshop); +00045 // tardiness computation +00046 unsigned int long sum = 0; +00047 for (unsigned int j=0 ; j<N ; j++) +00048 sum += (unsigned int) std::max (0, (int) (C[M-1][_flowshop[j]] - d[_flowshop[j]])); +00049 return sum; +00050 } +00051 +00052 +00053 std::vector< std::vector<unsigned int> > FlowShopEval::completionTime(const FlowShop & _flowshop) { +00054 std::vector< std::vector<unsigned int> > C(M,N); +00055 C[0][_flowshop[0]] = p[0][_flowshop[0]]; +00056 for (unsigned int j=1; j<N; j++) +00057 C[0][_flowshop[j]] = C[0][_flowshop[j-1]] + p[0][_flowshop[j]]; +00058 for (unsigned int i=1; i<M; i++) +00059 C[i][_flowshop[0]] = C[i-1][_flowshop[0]] + p[i][_flowshop[0]]; +00060 for (unsigned int i=1; i<M; i++) +00061 for (unsigned int j=1; j<N; j++) +00062 C[i][_flowshop[j]] = std::max(C[i][_flowshop[j-1]], C[i-1][_flowshop[j]]) + p[i][_flowshop[j]]; +00063 return C; +00064 } +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/FlowShopEval_8h-source.html b/trunk/paradiseo-moeo/doc/html/FlowShopEval_8h-source.html
new file mode 100644
index 000000000..89f92434f
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/FlowShopEval_8h-source.html
@@ -0,0 +1,76 @@
+
+
+00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- +00002 +00003 //----------------------------------------------------------------------------- +00004 // FlowShopEval.h +00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +00006 /* +00007 This library... +00008 +00009 Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr +00010 */ +00011 //----------------------------------------------------------------------------- +00012 +00013 #ifndef FLOWSHOPEVAL_H_ +00014 #define FLOWSHOPEVAL_H_ +00015 +00016 #include <vector> +00017 #include <core/moeoEvalFunc.h> +00018 #include <FlowShop.h> +00019 +00023 class FlowShopEval : public moeoEvalFunc<FlowShop> +00024 { +00025 public: +00026 +00034 FlowShopEval(unsigned int _M, unsigned int _N, const std::vector< std::vector<unsigned int> > & _p, const std::vector<unsigned int> & _d); +00035 +00036 +00041 void operator()(FlowShop & _flowshop); +00042 +00043 +00044 private: +00045 +00047 unsigned int M; +00049 unsigned int N; +00051 std::vector< std::vector < unsigned int > > p; +00053 std::vector < unsigned int > d; +00054 +00055 +00060 double makespan(const FlowShop & _flowshop); +00061 +00062 +00067 double tardiness(const FlowShop & _flowshop); +00068 +00069 +00075 std::vector< std::vector<unsigned int> > completionTime (const FlowShop & _flowshop); +00076 +00077 }; +00078 +00079 #endif /*FLOWSHOPEVAL_H_*/ +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/FlowShopInit_8cpp-source.html b/trunk/paradiseo-moeo/doc/html/FlowShopInit_8cpp-source.html
new file mode 100644
index 000000000..517100d66
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/FlowShopInit_8cpp-source.html
@@ -0,0 +1,67 @@
+
+
+00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- +00002 +00003 //----------------------------------------------------------------------------- +00004 // FlowShopInit.cpp +00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +00006 /* +00007 This library... +00008 +00009 Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr +00010 */ +00011 //----------------------------------------------------------------------------- +00012 +00013 #include <FlowShopInit.h> +00014 +00015 +00016 FlowShopInit::FlowShopInit(unsigned int _N) : N(_N) +00017 {} +00018 +00019 +00020 void FlowShopInit::operator()(FlowShop & _flowshop) +00021 { +00022 // scheduling vector +00023 std::vector<unsigned int> scheduling(N); +00024 // initialisation of possible values +00025 std::vector<unsigned int> possibles(N); +00026 for (unsigned int i=0 ; i<N ; i++) +00027 possibles[i] = i; +00028 // random initialization +00029 unsigned int rInd; // random index +00030 for (unsigned int i=0; i<N; i++) +00031 { +00032 rInd = (unsigned int) rng.uniform(N-i); +00033 scheduling[i] = possibles[rInd]; +00034 possibles[rInd] = possibles[N-i-1]; +00035 } +00036 _flowshop.resize(N); +00037 _flowshop.value(scheduling); +00038 _flowshop.invalidate(); // IMPORTANT in case the _genotype is old +00039 } +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/FlowShopInit_8h-source.html b/trunk/paradiseo-moeo/doc/html/FlowShopInit_8h-source.html
new file mode 100644
index 000000000..a2f0e2d18
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/FlowShopInit_8h-source.html
@@ -0,0 +1,63 @@
+
+
+00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- +00002 +00003 //----------------------------------------------------------------------------- +00004 // FlowShopInit.h +00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +00006 /* +00007 This library... +00008 +00009 Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr +00010 */ +00011 //----------------------------------------------------------------------------- +00012 +00013 #ifndef FLOWSHOPINIT_H_ +00014 #define FLOWSHOPINIT_H_ +00015 +00016 #include <eoInit.h> +00017 #include <FlowShop.h> +00018 +00022 class FlowShopInit : public eoInit<FlowShop> +00023 { +00024 public: +00025 +00030 FlowShopInit(unsigned int _N); +00031 +00032 +00037 void operator()(FlowShop & _flowshop); +00038 +00039 +00040 private: +00041 +00043 unsigned int N; +00044 +00045 }; +00046 +00047 #endif /*FLOWSHOPINIT_H_*/ +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/FlowShopObjectiveVectorTraits_8cpp-source.html b/trunk/paradiseo-moeo/doc/html/FlowShopObjectiveVectorTraits_8cpp-source.html
new file mode 100644
index 000000000..e2151de10
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/FlowShopObjectiveVectorTraits_8cpp-source.html
@@ -0,0 +1,60 @@
+
+
+00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- +00002 +00003 //----------------------------------------------------------------------------- +00004 // FlowShopObjectiveVectorTraits.cpp +00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +00006 /* +00007 This library... +00008 +00009 Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr +00010 */ +00011 //----------------------------------------------------------------------------- +00012 +00013 #include <FlowShopObjectiveVectorTraits.h> +00014 +00015 +00016 bool FlowShopObjectiveVectorTraits::minimizing (int _i) +00017 { +00018 // minimizing both +00019 return true; +00020 } +00021 +00022 bool FlowShopObjectiveVectorTraits::maximizing (int _i) +00023 { +00024 // minimizing both +00025 return false; +00026 } +00027 +00028 unsigned int FlowShopObjectiveVectorTraits::nObjectives () +00029 { +00030 // 2 objectives +00031 return 2; +00032 } +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/FlowShopObjectiveVectorTraits_8h-source.html b/trunk/paradiseo-moeo/doc/html/FlowShopObjectiveVectorTraits_8h-source.html
new file mode 100644
index 000000000..019fc5f7c
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/FlowShopObjectiveVectorTraits_8h-source.html
@@ -0,0 +1,60 @@
+
+
+00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- +00002 +00003 //----------------------------------------------------------------------------- +00004 // FlowShopObjectiveVectorTraits.h +00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +00006 /* +00007 This library... +00008 +00009 Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr +00010 */ +00011 //----------------------------------------------------------------------------- +00012 +00013 #ifndef FLOWSHOPOBJECTIVEVECTORTRAITS_H_ +00014 #define FLOWSHOPOBJECTIVEVECTORTRAITS_H_ +00015 +00016 #include <core/moeoObjectiveVectorTraits.h> +00017 +00021 class FlowShopObjectiveVectorTraits : public moeoObjectiveVectorTraits +00022 { +00023 public: +00024 +00029 static bool minimizing (int _i); +00030 +00031 +00036 static bool maximizing (int _i); +00037 +00038 +00042 static unsigned int nObjectives (); +00043 +00044 }; +00045 +00046 #endif /*FLOWSHOPOBJECTIVEVECTORTRAITS_H_*/ +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/FlowShopObjectiveVector_8h-source.html b/trunk/paradiseo-moeo/doc/html/FlowShopObjectiveVector_8h-source.html
new file mode 100644
index 000000000..72287fcf6
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/FlowShopObjectiveVector_8h-source.html
@@ -0,0 +1,49 @@
+
+
+00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- +00002 +00003 //----------------------------------------------------------------------------- +00004 // FlowShopObjectiveVector.h +00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +00006 /* +00007 This library... +00008 +00009 Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr +00010 */ +00011 //----------------------------------------------------------------------------- +00012 +00013 #ifndef FLOWSHOPOBJECTIVEVECTOR_H_ +00014 #define FLOWSHOPOBJECTIVEVECTOR_H_ +00015 +00016 #include <core/moeoRealObjectiveVector.h> +00017 #include <FlowShopObjectiveVectorTraits.h> +00018 +00022 typedef moeoRealObjectiveVector < FlowShopObjectiveVectorTraits > FlowShopObjectiveVector; +00023 +00024 #endif /*FLOWSHOPOBJECTIVEVECTOR_H_*/ +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/FlowShopOpCrossoverQuad_8cpp-source.html b/trunk/paradiseo-moeo/doc/html/FlowShopOpCrossoverQuad_8cpp-source.html
new file mode 100644
index 000000000..d043498ed
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/FlowShopOpCrossoverQuad_8cpp-source.html
@@ -0,0 +1,112 @@
+
+
+00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- +00002 +00003 //----------------------------------------------------------------------------- +00004 // FlowShopOpCrossoverQuad.cpp +00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +00006 /* +00007 This library... +00008 +00009 Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr +00010 */ +00011 //----------------------------------------------------------------------------- +00012 +00013 #include <FlowShopOpCrossoverQuad.h> +00014 +00015 +00016 std::string FlowShopOpCrossoverQuad::className() const +00017 { +00018 return "FlowShopOpCrossoverQuad"; +00019 } +00020 +00021 +00022 bool FlowShopOpCrossoverQuad::operator()(FlowShop & _flowshop1, FlowShop & _flowshop2) +00023 { +00024 bool oneAtLeastIsModified; +00025 // computation of the 2 random points +00026 unsigned int point1, point2; +00027 do +00028 { +00029 point1 = rng.random(std::min(_flowshop1.size(), _flowshop2.size())); +00030 point2 = rng.random(std::min(_flowshop1.size(), _flowshop2.size())); +00031 } while (fabs((double) point1-point2) <= 2); +00032 // computation of the offspring +00033 FlowShop offspring1 = generateOffspring(_flowshop1, _flowshop2, point1, point2); +00034 FlowShop offspring2 = generateOffspring(_flowshop2, _flowshop1, point1, point2); +00035 // does at least one genotype has been modified ? +00036 if ((_flowshop1 != offspring1) || (_flowshop2 != offspring2)) +00037 { +00038 // update +00039 _flowshop1.value(offspring1); +00040 _flowshop2.value(offspring2); +00041 // at least one genotype has been modified +00042 oneAtLeastIsModified = true; +00043 } +00044 else +00045 { +00046 // no genotype has been modified +00047 oneAtLeastIsModified = false; +00048 } +00049 // return 'true' if at least one genotype has been modified +00050 return oneAtLeastIsModified; +00051 } +00052 +00053 +00054 FlowShop FlowShopOpCrossoverQuad::generateOffspring(const FlowShop & _parent1, const FlowShop & _parent2, unsigned int _point1, unsigned int _point2) +00055 { +00056 FlowShop result = _parent1; +00057 std::vector<bool> taken_values(result.size(), false); +00058 if (_point1 > _point2) +00059 std::swap(_point1, _point2); +00060 /* first parent */ +00061 for (unsigned int i=0 ; i<=_point1 ; i++) +00062 { +00063 // result[i] == _parent1[i] +00064 taken_values[_parent1[i]] = true; +00065 } +00066 for (unsigned int i=_point2 ; i<result.size() ; i++) +00067 { +00068 // result[i] == _parent1[i] +00069 taken_values[_parent1[i]] = true; +00070 } +00071 /* second parent */ +00072 unsigned int i = _point1+1; +00073 unsigned int j = 0; +00074 while (i<_point2 && j<_parent2.size()) +00075 { +00076 if (! taken_values[_parent2[j]]) +00077 { +00078 result[i] = _parent2[j]; +00079 i++; +00080 } +00081 j++; +00082 } +00083 return result; +00084 } +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/FlowShopOpCrossoverQuad_8h-source.html b/trunk/paradiseo-moeo/doc/html/FlowShopOpCrossoverQuad_8h-source.html
new file mode 100644
index 000000000..3e74236d7
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/FlowShopOpCrossoverQuad_8h-source.html
@@ -0,0 +1,63 @@
+
+
+00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- +00002 +00003 //----------------------------------------------------------------------------- +00004 // FlowShopOpCrossoverQuad.h +00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +00006 /* +00007 This library... +00008 +00009 Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr +00010 */ +00011 //----------------------------------------------------------------------------- +00012 +00013 #ifndef FLOWSHOPOPCROSSOVERQUAD_H_ +00014 #define FLOWSHOPOPCROSSOVERQUAD_H_ +00015 +00016 #include <eoOp.h> +00017 #include <FlowShop.h> +00018 +00022 class FlowShopOpCrossoverQuad : public eoQuadOp < FlowShop > +00023 { +00024 public: +00025 +00029 std::string className() const; +00030 +00031 +00037 bool operator()(FlowShop & _flowshop1, FlowShop & _flowshop2); +00038 +00039 +00040 private: +00041 +00049 FlowShop generateOffspring(const FlowShop & _parent1, const FlowShop & _parent2, unsigned int _point1, unsigned int _point2); +00050 +00051 }; +00052 +00053 #endif /*FLOWSHOPOPCROSSOVERQUAD_H_*/ +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/FlowShopOpMutationExchange_8cpp-source.html b/trunk/paradiseo-moeo/doc/html/FlowShopOpMutationExchange_8cpp-source.html
new file mode 100644
index 000000000..b1bb51814
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/FlowShopOpMutationExchange_8cpp-source.html
@@ -0,0 +1,78 @@
+
+
+00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- +00002 +00003 //----------------------------------------------------------------------------- +00004 // FlowShopOpCrossoverQuad.cpp +00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +00006 /* +00007 This library... +00008 +00009 Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr +00010 */ +00011 //----------------------------------------------------------------------------- +00012 +00013 #include <FlowShopOpMutationExchange.h> +00014 +00015 +00016 std::string FlowShopOpMutationExchange::className() const +00017 { +00018 return "FlowShopOpMutationExchange"; +00019 } +00020 +00021 +00022 bool FlowShopOpMutationExchange::operator()(FlowShop & _flowshop) +00023 { +00024 bool isModified; +00025 FlowShop result = _flowshop; +00026 // computation of the 2 random points +00027 unsigned int point1, point2; +00028 do +00029 { +00030 point1 = rng.random(result.size()); +00031 point2 = rng.random(result.size()); +00032 } while (point1 == point2); +00033 // swap +00034 std::swap (result[point1], result[point2]); +00035 // update (if necessary) +00036 if (result != _flowshop) +00037 { +00038 // update +00039 _flowshop.value(result); +00040 // the genotype has been modified +00041 isModified = true; +00042 } +00043 else +00044 { +00045 // the genotype has not been modified +00046 isModified = false; +00047 } +00048 // return 'true' if the genotype has been modified +00049 return isModified; +00050 } +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/FlowShopOpMutationExchange_8h-source.html b/trunk/paradiseo-moeo/doc/html/FlowShopOpMutationExchange_8h-source.html
new file mode 100644
index 000000000..36e594109
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/FlowShopOpMutationExchange_8h-source.html
@@ -0,0 +1,58 @@
+
+
+00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- +00002 +00003 //----------------------------------------------------------------------------- +00004 // FlowShopOpCrossoverQuad.h +00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +00006 /* +00007 This library... +00008 +00009 Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr +00010 */ +00011 //----------------------------------------------------------------------------- +00012 +00013 #ifndef FLOWSHOPOPMUTATIONEXCHANGE_H_ +00014 #define FLOWSHOPOPMUTATIONEXCHANGE_H_ +00015 +00016 #include <eoOp.h> +00017 #include <FlowShop.h> +00018 +00022 class FlowShopOpMutationExchange : public eoMonOp<FlowShop> +00023 { +00024 public: +00025 +00029 std::string className() const; +00030 +00031 +00036 bool operator()(FlowShop & _flowshop); +00037 +00038 }; +00039 +00040 #endif /*FLOWSHOPOPMUTATIONEXCHANGE_H_*/ +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/FlowShopOpMutationShift_8cpp-source.html b/trunk/paradiseo-moeo/doc/html/FlowShopOpMutationShift_8cpp-source.html
new file mode 100644
index 000000000..4d8cc7198
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/FlowShopOpMutationShift_8cpp-source.html
@@ -0,0 +1,88 @@
+
+
+00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- +00002 +00003 //----------------------------------------------------------------------------- +00004 // FlowShopOpMutationShift.cpp +00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +00006 /* +00007 This library... +00008 +00009 Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr +00010 */ +00011 //----------------------------------------------------------------------------- +00012 +00013 #include <FlowShopOpMutationShift.h> +00014 +00015 +00016 std::string FlowShopOpMutationShift::className() const +00017 { +00018 return "FlowShopOpMutationShift"; +00019 } +00020 +00021 +00022 bool FlowShopOpMutationShift::operator()(FlowShop & _flowshop) +00023 { +00024 bool isModified; +00025 int direction; +00026 unsigned int tmp; +00027 FlowShop result = _flowshop; +00028 // computation of the 2 random points +00029 unsigned int point1, point2; +00030 do +00031 { +00032 point1 = rng.random(result.size()); +00033 point2 = rng.random(result.size()); +00034 } while (point1 == point2); +00035 // direction +00036 if (point1 < point2) +00037 direction = 1; +00038 else +00039 direction = -1; +00040 // mutation +00041 tmp = result[point1]; +00042 for (unsigned int i=point1 ; i!=point2 ; i+=direction) +00043 result[i] = result[i+direction]; +00044 result[point2] = tmp; +00045 // update (if necessary) +00046 if (result != _flowshop) +00047 { +00048 // update +00049 _flowshop.value(result); +00050 // the genotype has been modified +00051 isModified = true; +00052 } +00053 else +00054 { +00055 // the genotype has not been modified +00056 isModified = false; +00057 } +00058 // return 'true' if the genotype has been modified +00059 return isModified; +00060 } +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/FlowShopOpMutationShift_8h-source.html b/trunk/paradiseo-moeo/doc/html/FlowShopOpMutationShift_8h-source.html
new file mode 100644
index 000000000..da9808f6f
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/FlowShopOpMutationShift_8h-source.html
@@ -0,0 +1,58 @@
+
+
+00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- +00002 +00003 //----------------------------------------------------------------------------- +00004 // FlowShopOpMutationShift.h +00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +00006 /* +00007 This library... +00008 +00009 Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr +00010 */ +00011 //----------------------------------------------------------------------------- +00012 +00013 #ifndef FLOWSHOPOPMUTATIONSHIFT_H_ +00014 #define FLOWSHOPOPMUTATIONSHIFT_H_ +00015 +00016 #include <eoOp.h> +00017 #include <FlowShop.h> +00018 +00022 class FlowShopOpMutationShift : public eoMonOp < FlowShop > +00023 { +00024 public: +00025 +00029 std::string className() const; +00030 +00031 +00036 bool operator()(FlowShop & _flowshop); +00037 +00038 }; +00039 +00040 #endif /*FLOWSHOPOPMUTATIONSHIFT_H_*/ +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/FlowShop_8cpp-source.html b/trunk/paradiseo-moeo/doc/html/FlowShop_8cpp-source.html
new file mode 100644
index 000000000..30cfded2e
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/FlowShop_8cpp-source.html
@@ -0,0 +1,46 @@
+
+
+00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- +00002 +00003 //----------------------------------------------------------------------------- +00004 // FlowShop.cpp +00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +00006 /* +00007 This library... +00008 +00009 Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr +00010 */ +00011 //----------------------------------------------------------------------------- +00012 +00013 #include <FlowShop.h> +00014 +00015 std::string FlowShop::className() const +00016 { +00017 return "FlowShop"; +00018 } +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/FlowShop_8h-source.html b/trunk/paradiseo-moeo/doc/html/FlowShop_8h-source.html
new file mode 100644
index 000000000..10873c602
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/FlowShop_8h-source.html
@@ -0,0 +1,55 @@
+
+
+00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- +00002 +00003 //----------------------------------------------------------------------------- +00004 // FlowShop.h +00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +00006 /* +00007 This library... +00008 +00009 Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr +00010 */ +00011 //----------------------------------------------------------------------------- +00012 +00013 #ifndef FLOWSHOP_H_ +00014 #define FLOWSHOP_H_ +00015 +00016 #include <core/moeoVector.h> +00017 #include <FlowShopObjectiveVector.h> +00018 +00022 class FlowShop: public moeoVector < FlowShopObjectiveVector , double , double , unsigned int > +00023 { +00024 public: +00025 +00029 std::string className() const; +00030 +00031 }; +00032 +00033 #endif /*FLOWSHOP_H_*/ +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/README-source.html b/trunk/paradiseo-moeo/doc/html/README-source.html
new file mode 100644
index 000000000..fbf74993d
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/README-source.html
@@ -0,0 +1,108 @@
+
+
+00001 PARADISEO-MOEO README FILE +00002 ======================================================================= +00003 check latest news at http://paradiseo.gforge.inria.fr/ +00004 ======================================================================= +00005 +00006 Welcome to ParadisEO-MOEO, the Multi-Objective Evolving Objects library. +00007 The latest news about ParadisEO-MOEO can be found on the gforge repository at +00008 http://paradiseo.gforge.inria.fr/ +00009 In case of any problem, please e-mail us at +00010 paradiseo-help@lists.gforge.inria.fr +00011 +00012 +00013 ======================================================================= +00014 BUILDING PARADISEO-MOEO +00015 ======================================================================= +00016 The basic installation procedure goes the following. +00017 +00018 To compile paradiseo-moeo in the default directory, +00019 go to paradiseo-moeo/build/ and run: +00020 > cmake ../ -Dconfig=<path to the install.cmake file> +00021 > make +00022 // for an easy-use of the provided lessons +00023 > make install +00024 // optional (if the documentation is not already available) +00025 > make doc +00026 +00027 To compile paradiseo-moeo anywhere else, simply run: +00028 > cmake $(MOEO) -Dconfig=<path to the install.cmake file> +00029 > make +00030 // for an easy-use of the provided lessons +00031 > make install +00032 // optional (if the documentation is not already available) +00033 > make doc +00034 +00035 where $(MOEO) is the top-level directory of PARADISEO-MOEO. +00036 +00037 To clean everything, simply run +00038 > make clean +00039 +00040 ======================================================================= +00041 DIRECTORY STRUCTURE +00042 ======================================================================= +00043 After unpacking the archive file, you should end up with the following +00044 structure: +00045 +00046 .../ The main PARADISEO-MOEO directory, created when unpacking. +00047 | +00048 | +00049 +-- build BUILD directory that contains libraries and executable files. +00050 | +00051 | +00052 +-- src SOURCE directory that contains PARADISEO-MOEO source files. +00053 | +00054 | +00055 +-- doc DOCUMENTATION directory (generated by Doxygen). +00056 | | +00057 | +-- html HTML files - start at index.html. +00058 | | +00059 | +-- latex latex files - use to generate Postcript doc. +00060 | | +00061 | +-- man Unix man format documentation. +00062 | +00063 | +00064 +-- tutorial TUTORIAL directory that contains with lessons. +00065 | +00066 +-- examples APPLICATIONS - one directory per separate application. +00067 | | +00068 | +-- flowshop Flow-shop scheduling problem example source files. +00069 | | +00070 | +-- benchs Benchmark suites for the flow-shop. +00071 | +00072 +-- Lesson1 A bi-objective flow-shop problem example solved using main MOEAs. +00073 | +00074 +-- Lesson2 NSGA-II to solve the SCH1 problem. +00075 +00076 ======================================================================= +00077 NOTES +00078 ======================================================================= +00079 +00080 Mailing list : paradiseo-help@lists.gforge.inria.fr +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/Sch1_8cpp-source.html b/trunk/paradiseo-moeo/doc/html/Sch1_8cpp-source.html
new file mode 100644
index 000000000..95e3646b8
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/Sch1_8cpp-source.html
@@ -0,0 +1,135 @@
+
+
+00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- +00002 +00003 //----------------------------------------------------------------------------- +00004 // Sch1.cpp +00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +00006 /* +00007 This library... +00008 +00009 Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr +00010 */ +00011 //----------------------------------------------------------------------------- +00012 +00013 #include <stdio.h> +00014 #include <moeo> +00015 #include <es/eoRealInitBounded.h> +00016 #include <es/eoRealOp.h> +00017 +00018 using namespace std; +00019 +00020 // the moeoObjectiveVectorTraits : minimizing 2 objectives +00021 class Sch1ObjectiveVectorTraits : public moeoObjectiveVectorTraits +00022 { +00023 public: +00024 static bool minimizing (int i) +00025 { +00026 return true; +00027 } +00028 static bool maximizing (int i) +00029 { +00030 return false; +00031 } +00032 static unsigned int nObjectives () +00033 { +00034 return 2; +00035 } +00036 }; +00037 +00038 +00039 // objective vector of real values +00040 typedef moeoRealObjectiveVector < Sch1ObjectiveVectorTraits > Sch1ObjectiveVector; +00041 +00042 +00043 // multi-objective evolving object for the Sch1 problem +00044 class Sch1 : public moeoRealVector < Sch1ObjectiveVector, double, double > +00045 { +00046 public: +00047 Sch1() : moeoRealVector < Sch1ObjectiveVector, double, double > (1) {} +00048 }; +00049 +00050 +00051 // evaluation of objective functions +00052 class Sch1Eval : public moeoEvalFunc < Sch1 > +00053 { +00054 public: +00055 void operator () (Sch1 & _sch1) +00056 { +00057 if (_sch1.invalidObjectiveVector()) +00058 { +00059 Sch1ObjectiveVector objVec; +00060 double x = _sch1[0]; +00061 objVec[0] = x * x; +00062 objVec[1] = (x - 2.0) * (x - 2.0); +00063 _sch1.objectiveVector(objVec); +00064 } +00065 } +00066 }; +00067 +00068 +00069 // main +00070 int main (int argc, char *argv[]) +00071 { +00072 // parameters +00073 unsigned int POP_SIZE = 20; +00074 unsigned int MAX_GEN = 100; +00075 double M_EPSILON = 0.01; +00076 double P_CROSS = 0.25; +00077 double P_MUT = 0.35; +00078 +00079 // objective functions evaluation +00080 Sch1Eval eval; +00081 +00082 // crossover and mutation +00083 eoQuadCloneOp < Sch1 > xover; +00084 eoUniformMutation < Sch1 > mutation (M_EPSILON); +00085 +00086 // generate initial population +00087 eoRealVectorBounds bounds (1, 0.0, 2.0); // [0, 2] +00088 eoRealInitBounded < Sch1 > init (bounds); +00089 eoPop < Sch1 > pop (POP_SIZE, init); +00090 +00091 // build NSGA-II +00092 moeoNSGAII < Sch1 > nsgaII (MAX_GEN, eval, xover, P_CROSS, mutation, P_MUT); +00093 +00094 // run the algo +00095 nsgaII (pop); +00096 +00097 // extract first front of the final population using an moeoArchive (this is the output of nsgaII) +00098 moeoArchive < Sch1 > arch; +00099 arch.update (pop); +00100 +00101 // printing of the final archive +00102 cout << "Final Archive" << endl; +00103 arch.sortedPrintOn (cout); +00104 cout << endl; +00105 +00106 return EXIT_SUCCESS; +00107 } +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classFlowShop-members.html b/trunk/paradiseo-moeo/doc/html/classFlowShop-members.html
new file mode 100644
index 000000000..5a213f39c
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classFlowShop-members.html
@@ -0,0 +1,86 @@
+
+
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classFlowShop.html b/trunk/paradiseo-moeo/doc/html/classFlowShop.html
new file mode 100644
index 000000000..095edf912
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classFlowShop.html
@@ -0,0 +1,65 @@
+
+
+
+#include <FlowShop.h>
+
+
Inheritance diagram for FlowShop: +

Public Member Functions | |
| +std::string | className () const |
| class name | |
+ +
+Definition at line 22 of file FlowShop.h.
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classFlowShop.png b/trunk/paradiseo-moeo/doc/html/classFlowShop.png
new file mode 100644
index 000000000..e2566fff8
Binary files /dev/null and b/trunk/paradiseo-moeo/doc/html/classFlowShop.png differ
diff --git a/trunk/paradiseo-moeo/doc/html/classFlowShopBenchmarkParser-members.html b/trunk/paradiseo-moeo/doc/html/classFlowShopBenchmarkParser-members.html
new file mode 100644
index 000000000..938204793
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classFlowShopBenchmarkParser-members.html
@@ -0,0 +1,47 @@
+
+
+| d | FlowShopBenchmarkParser | [private] |
| FlowShopBenchmarkParser(const std::string _benchmarkFileName) | FlowShopBenchmarkParser | |
| getD() | FlowShopBenchmarkParser | |
| getM() | FlowShopBenchmarkParser | |
| getN() | FlowShopBenchmarkParser | |
| getP() | FlowShopBenchmarkParser | |
| init(const std::string _benchmarkFileName) | FlowShopBenchmarkParser | [private] |
| M | FlowShopBenchmarkParser | [private] |
| N | FlowShopBenchmarkParser | [private] |
| p | FlowShopBenchmarkParser | [private] |
| printOn(std::ostream &_os) const | FlowShopBenchmarkParser |
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classFlowShopBenchmarkParser.html b/trunk/paradiseo-moeo/doc/html/classFlowShopBenchmarkParser.html
new file mode 100644
index 000000000..0ff249e64
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classFlowShopBenchmarkParser.html
@@ -0,0 +1,189 @@
+
+
+
+#include <FlowShopBenchmarkParser.h>
+
Public Member Functions | |
| FlowShopBenchmarkParser (const std::string _benchmarkFileName) | |
| Ctor. | |
| +const unsigned int | getM () |
| the number of machines | |
| +const unsigned int | getN () |
| the number of jobs | |
|
+const std::vector< std::vector< + unsigned int > > | getP () |
| the processing times | |
|
+const std::vector< unsigned +int > | getD () |
| the due-dates | |
| void | printOn (std::ostream &_os) const |
| printing. | |
Private Member Functions | |
| void | init (const std::string _benchmarkFileName) |
| Initialisation of the parameters with the data contained in the benchmark file. | |
Private Attributes | |
| +unsigned int | M |
| number of machines | |
| +unsigned int | N |
| number of jobs | |
|
+std::vector< std::vector< + unsigned int > > | p |
| p[i][j] = processing time of job j on machine i | |
| +std::vector< unsigned int > | d |
| d[j] = due-date of the job j | |
+ +
+Definition at line 23 of file FlowShopBenchmarkParser.h.
| FlowShopBenchmarkParser::FlowShopBenchmarkParser | +( | +const std::string | +_benchmarkFileName | +) | ++ |
+Ctor. +
+
| _benchmarkFileName | the name of the benchmark file |
+Definition at line 16 of file FlowShopBenchmarkParser.cpp. +
+References init(). +
+
| void FlowShopBenchmarkParser::printOn | +( | +std::ostream & | +_os | +) | +const | +
| void FlowShopBenchmarkParser::init | +( | +const std::string | +_benchmarkFileName | +) | + [private] |
+
+Initialisation of the parameters with the data contained in the benchmark file. +
+
| _benchmarkFileName | the name of the benchmark file |
+Definition at line 64 of file FlowShopBenchmarkParser.cpp. +
+Referenced by FlowShopBenchmarkParser(). +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classFlowShopEval-members.html b/trunk/paradiseo-moeo/doc/html/classFlowShopEval-members.html
new file mode 100644
index 000000000..c02e9596b
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classFlowShopEval-members.html
@@ -0,0 +1,51 @@
+
+
+| completionTime(const FlowShop &_flowshop) | FlowShopEval | [private] |
| d | FlowShopEval | [private] |
| EOFitT typedef | eoEvalFunc< FlowShop > | |
| EOType typedef | eoEvalFunc< FlowShop > | |
| FlowShopEval(unsigned int _M, unsigned int _N, const std::vector< std::vector< unsigned int > > &_p, const std::vector< unsigned int > &_d) | FlowShopEval | |
| functor_category() | eoUF< A1, R > | [static] |
| M | FlowShopEval | [private] |
| makespan(const FlowShop &_flowshop) | FlowShopEval | [private] |
| N | FlowShopEval | [private] |
| operator()(FlowShop &_flowshop) | FlowShopEval | |
| moeoEvalFunc< FlowShop >::operator()(A1)=0 | eoUF< A1, R > | [pure virtual] |
| p | FlowShopEval | [private] |
| tardiness(const FlowShop &_flowshop) | FlowShopEval | [private] |
| ~eoFunctorBase() | eoFunctorBase | [virtual] |
| ~eoUF() | eoUF< A1, R > | [virtual] |
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classFlowShopEval.html b/trunk/paradiseo-moeo/doc/html/classFlowShopEval.html
new file mode 100644
index 000000000..4776c3feb
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classFlowShopEval.html
@@ -0,0 +1,279 @@
+
+
+
+#include <FlowShopEval.h>
+
+
Inheritance diagram for FlowShopEval: +

Public Member Functions | |
| FlowShopEval (unsigned int _M, unsigned int _N, const std::vector< std::vector< unsigned int > > &_p, const std::vector< unsigned int > &_d) | |
| Ctor. | |
| void | operator() (FlowShop &_flowshop) |
| computation of the multi-objective evaluation of a FlowShop object | |
Private Member Functions | |
| double | makespan (const FlowShop &_flowshop) |
| computation of the makespan | |
| double | tardiness (const FlowShop &_flowshop) |
| computation of the tardiness | |
| std::vector< std::vector< + unsigned int > > | completionTime (const FlowShop &_flowshop) |
| computation of the completion times of a scheduling (for each job on each machine) C[i][j] = completion of the jth job of the scheduling on the ith machine | |
Private Attributes | |
| +unsigned int | M |
| number of machines | |
| +unsigned int | N |
| number of jobs | |
|
+std::vector< std::vector< + unsigned int > > | p |
| p[i][j] = processing time of job j on machine i | |
| +std::vector< unsigned int > | d |
| d[j] = due-date of the job j | |
+ +
+Definition at line 23 of file FlowShopEval.h.
| FlowShopEval::FlowShopEval | +( | +unsigned int | +_M, | +|
| + | + | unsigned int | +_N, | +|
| + | + | const std::vector< std::vector< unsigned int > > & | +_p, | +|
| + | + | const std::vector< unsigned int > & | +_d | + |
| + | ) | ++ |
+Ctor. +
+
| _M | the number of machines | |
| _N | the number of jobs to schedule | |
| _p | the processing times | |
| _d | the due dates |
+Definition at line 16 of file FlowShopEval.cpp. +
+
| void FlowShopEval::operator() | +( | +FlowShop & | +_flowshop | +) | ++ |
+computation of the multi-objective evaluation of a FlowShop object +
+
| _flowshop | the FlowShop object to evaluate |
+Definition at line 21 of file FlowShopEval.cpp. +
+References makespan(), MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::objectiveVector(), and tardiness(). +
| double FlowShopEval::makespan | +( | +const FlowShop & | +_flowshop | +) | + [private] |
+
+computation of the makespan +
+
| _flowshop | the genotype to evaluate |
+Definition at line 31 of file FlowShopEval.cpp. +
+References completionTime(), M, and N. +
+Referenced by operator()(). +
| double FlowShopEval::tardiness | +( | +const FlowShop & | +_flowshop | +) | + [private] |
+
+computation of the tardiness +
+
| _flowshop | the genotype to evaluate |
+Definition at line 40 of file FlowShopEval.cpp. +
+References completionTime(), d, M, and N. +
+Referenced by operator()(). +
| std::vector< std::vector< unsigned int > > FlowShopEval::completionTime | +( | +const FlowShop & | +_flowshop | +) | + [private] |
+
+computation of the completion times of a scheduling (for each job on each machine) C[i][j] = completion of the jth job of the scheduling on the ith machine +
+
| _flowshop | the genotype to evaluate |
+Definition at line 53 of file FlowShopEval.cpp. +
+Referenced by makespan(), and tardiness(). +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classFlowShopEval.png b/trunk/paradiseo-moeo/doc/html/classFlowShopEval.png
new file mode 100644
index 000000000..3dbdc85d2
Binary files /dev/null and b/trunk/paradiseo-moeo/doc/html/classFlowShopEval.png differ
diff --git a/trunk/paradiseo-moeo/doc/html/classFlowShopInit-members.html b/trunk/paradiseo-moeo/doc/html/classFlowShopInit-members.html
new file mode 100644
index 000000000..0abb84936
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classFlowShopInit-members.html
@@ -0,0 +1,44 @@
+
+
+| className(void) const | eoInit< FlowShop > | [virtual] |
| FlowShopInit(unsigned int _N) | FlowShopInit | |
| functor_category() | eoUF< A1, R > | [static] |
| N | FlowShopInit | [private] |
| operator()(FlowShop &_flowshop) | FlowShopInit | |
| eoInit< FlowShop >::operator()(A1)=0 | eoUF< A1, R > | [pure virtual] |
| ~eoFunctorBase() | eoFunctorBase | [virtual] |
| ~eoUF() | eoUF< A1, R > | [virtual] |
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classFlowShopInit.html b/trunk/paradiseo-moeo/doc/html/classFlowShopInit.html
new file mode 100644
index 000000000..279433d08
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classFlowShopInit.html
@@ -0,0 +1,131 @@
+
+
+
+#include <FlowShopInit.h>
+
+
Inheritance diagram for FlowShopInit: +

Public Member Functions | |
| FlowShopInit (unsigned int _N) | |
| Ctor. | |
| void | operator() (FlowShop &_flowshop) |
| builds a random genotype | |
Private Attributes | |
| +unsigned int | N |
| the number of jobs (size of a scheduling vector) | |
+ +
+Definition at line 22 of file FlowShopInit.h.
| FlowShopInit::FlowShopInit | +( | +unsigned int | +_N | +) | ++ |
+Ctor. +
+
| _N | the number of jobs to schedule |
+Definition at line 16 of file FlowShopInit.cpp. +
+
| void FlowShopInit::operator() | +( | +FlowShop & | +_flowshop | +) | ++ |
+builds a random genotype +
+
| _flowshop | a genotype that has been default-constructed |
+Definition at line 20 of file FlowShopInit.cpp. +
+References MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::invalidate(), N, eoRng::uniform(), and moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >::value(). +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classFlowShopInit.png b/trunk/paradiseo-moeo/doc/html/classFlowShopInit.png
new file mode 100644
index 000000000..8b39a2519
Binary files /dev/null and b/trunk/paradiseo-moeo/doc/html/classFlowShopInit.png differ
diff --git a/trunk/paradiseo-moeo/doc/html/classFlowShopObjectiveVectorTraits-members.html b/trunk/paradiseo-moeo/doc/html/classFlowShopObjectiveVectorTraits-members.html
new file mode 100644
index 000000000..da7cb1737
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classFlowShopObjectiveVectorTraits-members.html
@@ -0,0 +1,43 @@
+
+
+| maximizing(int _i) | FlowShopObjectiveVectorTraits | [static] |
| moeoObjectiveVectorTraits::maximizing(unsigned int _i) | moeoObjectiveVectorTraits | [inline, static] |
| minimizing(int _i) | FlowShopObjectiveVectorTraits | [static] |
| moeoObjectiveVectorTraits::minimizing(unsigned int _i) | moeoObjectiveVectorTraits | [inline, static] |
| nObjectives() | FlowShopObjectiveVectorTraits | [static] |
| setup(unsigned int _nObjectives, std::vector< bool > &_bObjectives) | moeoObjectiveVectorTraits | [inline, static] |
| tolerance() | moeoObjectiveVectorTraits | [inline, static] |
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classFlowShopObjectiveVectorTraits.html b/trunk/paradiseo-moeo/doc/html/classFlowShopObjectiveVectorTraits.html
new file mode 100644
index 000000000..28e7b22fc
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classFlowShopObjectiveVectorTraits.html
@@ -0,0 +1,125 @@
+
+
+
+#include <FlowShopObjectiveVectorTraits.h>
+
+
Inheritance diagram for FlowShopObjectiveVectorTraits: +

Static Public Member Functions | |
| static bool | minimizing (int _i) |
| Returns true if the _ith objective have to be minimzed. | |
| static bool | maximizing (int _i) |
| Returns true if the _ith objective have to be maximzed. | |
| +static unsigned int | nObjectives () |
| Returns the number of objectives. | |
+ +
+Definition at line 21 of file FlowShopObjectiveVectorTraits.h.
| bool FlowShopObjectiveVectorTraits::minimizing | +( | +int | +_i | +) | + [static] |
+
+Returns true if the _ith objective have to be minimzed. +
+
| _i | index of the objective |
+Definition at line 16 of file FlowShopObjectiveVectorTraits.cpp. +
| bool FlowShopObjectiveVectorTraits::maximizing | +( | +int | +_i | +) | + [static] |
+
+Returns true if the _ith objective have to be maximzed. +
+
| _i | index of the objective |
+Definition at line 22 of file FlowShopObjectiveVectorTraits.cpp. +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classFlowShopObjectiveVectorTraits.png b/trunk/paradiseo-moeo/doc/html/classFlowShopObjectiveVectorTraits.png
new file mode 100644
index 000000000..dfd860d7c
Binary files /dev/null and b/trunk/paradiseo-moeo/doc/html/classFlowShopObjectiveVectorTraits.png differ
diff --git a/trunk/paradiseo-moeo/doc/html/classFlowShopOpCrossoverQuad-members.html b/trunk/paradiseo-moeo/doc/html/classFlowShopOpCrossoverQuad-members.html
new file mode 100644
index 000000000..2652da5be
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classFlowShopOpCrossoverQuad-members.html
@@ -0,0 +1,48 @@
+
+
+| className() const | FlowShopOpCrossoverQuad | [virtual] |
| eoOp(OpType _type) | eoOp< EOType > | |
| eoOp(const eoOp &_eop) | eoOp< EOType > | |
| eoQuadOp() | eoQuadOp< FlowShop > | |
| functor_category() | eoBF< FlowShop &, FlowShop &, bool > | [static] |
| generateOffspring(const FlowShop &_parent1, const FlowShop &_parent2, unsigned int _point1, unsigned int _point2) | FlowShopOpCrossoverQuad | [private] |
| getType() const | eoOp< EOType > | |
| operator()(FlowShop &_flowshop1, FlowShop &_flowshop2) | FlowShopOpCrossoverQuad | [virtual] |
| OpType enum name | eoOp< EOType > | |
| ~eoBF() | eoBF< FlowShop &, FlowShop &, bool > | [virtual] |
| ~eoFunctorBase() | eoFunctorBase | [virtual] |
| ~eoOp() | eoOp< EOType > | [virtual] |
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classFlowShopOpCrossoverQuad.html b/trunk/paradiseo-moeo/doc/html/classFlowShopOpCrossoverQuad.html
new file mode 100644
index 000000000..a58f6fed2
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classFlowShopOpCrossoverQuad.html
@@ -0,0 +1,169 @@
+
+
+
+#include <FlowShopOpCrossoverQuad.h>
+
+
Inheritance diagram for FlowShopOpCrossoverQuad: +

Public Member Functions | |
| +std::string | className () const |
| the class name (used to display statistics) | |
| bool | operator() (FlowShop &_flowshop1, FlowShop &_flowshop2) |
| eoQuad crossover - _flowshop1 and _flowshop2 are the (future) offspring, i.e. | |
Private Member Functions | |
| FlowShop | generateOffspring (const FlowShop &_parent1, const FlowShop &_parent2, unsigned int _point1, unsigned int _point2) |
| generation of an offspring by a 2 points crossover | |
+ +
+Definition at line 22 of file FlowShopOpCrossoverQuad.h.
| bool FlowShopOpCrossoverQuad::operator() | +( | +FlowShop & | +_flowshop1, | +|
| + | + | FlowShop & | +_flowshop2 | + |
| + | ) | + [virtual] |
+
+eoQuad crossover - _flowshop1 and _flowshop2 are the (future) offspring, i.e. +
+_copies_ of the parents
| _flowshop1 | the first parent | |
| _flowshop2 | the second parent |
+Implements eoBF< FlowShop &, FlowShop &, bool >. +
+Definition at line 22 of file FlowShopOpCrossoverQuad.cpp. +
+References generateOffspring(), eoRng::random(), and moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >::value(). +
| FlowShop FlowShopOpCrossoverQuad::generateOffspring | +( | +const FlowShop & | +_parent1, | +|
| + | + | const FlowShop & | +_parent2, | +|
| + | + | unsigned int | +_point1, | +|
| + | + | unsigned int | +_point2 | + |
| + | ) | + [private] |
+
+generation of an offspring by a 2 points crossover +
+
| _parent1 | the first parent | |
| _parent2 | the second parent | |
| _point1 | the first point | |
| _point2 | the second point |
+Definition at line 54 of file FlowShopOpCrossoverQuad.cpp. +
+Referenced by operator()(). +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classFlowShopOpCrossoverQuad.png b/trunk/paradiseo-moeo/doc/html/classFlowShopOpCrossoverQuad.png
new file mode 100644
index 000000000..cc942ed89
Binary files /dev/null and b/trunk/paradiseo-moeo/doc/html/classFlowShopOpCrossoverQuad.png differ
diff --git a/trunk/paradiseo-moeo/doc/html/classFlowShopOpMutationExchange-members.html b/trunk/paradiseo-moeo/doc/html/classFlowShopOpMutationExchange-members.html
new file mode 100644
index 000000000..38c5ff14d
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classFlowShopOpMutationExchange-members.html
@@ -0,0 +1,47 @@
+
+
+| className() const | FlowShopOpMutationExchange | [virtual] |
| eoMonOp() | eoMonOp< FlowShop > | |
| eoOp(OpType _type) | eoOp< EOType > | |
| eoOp(const eoOp &_eop) | eoOp< EOType > | |
| functor_category() | eoUF< FlowShop &, bool > | [static] |
| getType() const | eoOp< EOType > | |
| operator()(FlowShop &_flowshop) | FlowShopOpMutationExchange | [virtual] |
| OpType enum name | eoOp< EOType > | |
| ~eoFunctorBase() | eoFunctorBase | [virtual] |
| ~eoOp() | eoOp< EOType > | [virtual] |
| ~eoUF() | eoUF< FlowShop &, bool > | [virtual] |
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classFlowShopOpMutationExchange.html b/trunk/paradiseo-moeo/doc/html/classFlowShopOpMutationExchange.html
new file mode 100644
index 000000000..2ce7a1fa9
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classFlowShopOpMutationExchange.html
@@ -0,0 +1,100 @@
+
+
+
+#include <FlowShopOpMutationExchange.h>
+
+
Inheritance diagram for FlowShopOpMutationExchange: +

Public Member Functions | |
| +std::string | className () const |
| the class name (used to display statistics) | |
| bool | operator() (FlowShop &_flowshop) |
| modifies the parent with an exchange mutation | |
+ +
+Definition at line 22 of file FlowShopOpMutationExchange.h.
| bool FlowShopOpMutationExchange::operator() | +( | +FlowShop & | +_flowshop | +) | + [virtual] |
+
+modifies the parent with an exchange mutation +
+
| _flowshop | the parent genotype (will be modified) |
+Implements eoUF< FlowShop &, bool >. +
+Definition at line 22 of file FlowShopOpMutationExchange.cpp. +
+References eoRng::random(), and moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >::value(). +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classFlowShopOpMutationExchange.png b/trunk/paradiseo-moeo/doc/html/classFlowShopOpMutationExchange.png
new file mode 100644
index 000000000..f582b7836
Binary files /dev/null and b/trunk/paradiseo-moeo/doc/html/classFlowShopOpMutationExchange.png differ
diff --git a/trunk/paradiseo-moeo/doc/html/classFlowShopOpMutationShift-members.html b/trunk/paradiseo-moeo/doc/html/classFlowShopOpMutationShift-members.html
new file mode 100644
index 000000000..f45618f90
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classFlowShopOpMutationShift-members.html
@@ -0,0 +1,47 @@
+
+
+| className() const | FlowShopOpMutationShift | [virtual] |
| eoMonOp() | eoMonOp< FlowShop > | |
| eoOp(OpType _type) | eoOp< EOType > | |
| eoOp(const eoOp &_eop) | eoOp< EOType > | |
| functor_category() | eoUF< FlowShop &, bool > | [static] |
| getType() const | eoOp< EOType > | |
| operator()(FlowShop &_flowshop) | FlowShopOpMutationShift | [virtual] |
| OpType enum name | eoOp< EOType > | |
| ~eoFunctorBase() | eoFunctorBase | [virtual] |
| ~eoOp() | eoOp< EOType > | [virtual] |
| ~eoUF() | eoUF< FlowShop &, bool > | [virtual] |
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classFlowShopOpMutationShift.html b/trunk/paradiseo-moeo/doc/html/classFlowShopOpMutationShift.html
new file mode 100644
index 000000000..11bcd0bcd
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classFlowShopOpMutationShift.html
@@ -0,0 +1,100 @@
+
+
+
+#include <FlowShopOpMutationShift.h>
+
+
Inheritance diagram for FlowShopOpMutationShift: +

Public Member Functions | |
| +std::string | className () const |
| the class name (used to display statistics) | |
| bool | operator() (FlowShop &_flowshop) |
| modifies the parent with a shift mutation | |
+ +
+Definition at line 22 of file FlowShopOpMutationShift.h.
| bool FlowShopOpMutationShift::operator() | +( | +FlowShop & | +_flowshop | +) | + [virtual] |
+
+modifies the parent with a shift mutation +
+
| _flowshop | the parent genotype (will be modified) |
+Implements eoUF< FlowShop &, bool >. +
+Definition at line 22 of file FlowShopOpMutationShift.cpp. +
+References eoRng::random(), and moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >::value(). +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classFlowShopOpMutationShift.png b/trunk/paradiseo-moeo/doc/html/classFlowShopOpMutationShift.png
new file mode 100644
index 000000000..f06d41f84
Binary files /dev/null and b/trunk/paradiseo-moeo/doc/html/classFlowShopOpMutationShift.png differ
diff --git a/trunk/paradiseo-moeo/doc/html/classSch1-members.html b/trunk/paradiseo-moeo/doc/html/classSch1-members.html
new file mode 100644
index 000000000..f92cf0a7b
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classSch1-members.html
@@ -0,0 +1,88 @@
+
+
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classSch1.html b/trunk/paradiseo-moeo/doc/html/classSch1.html
new file mode 100644
index 000000000..ad0100b39
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classSch1.html
@@ -0,0 +1,60 @@
+
+
+Inheritance diagram for Sch1: +

Public Member Functions | |
| + | Sch1 () |
+ +
+Definition at line 44 of file Sch1.cpp.
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classSch1.png b/trunk/paradiseo-moeo/doc/html/classSch1.png
new file mode 100644
index 000000000..3b4958d4e
Binary files /dev/null and b/trunk/paradiseo-moeo/doc/html/classSch1.png differ
diff --git a/trunk/paradiseo-moeo/doc/html/classSch1Eval-members.html b/trunk/paradiseo-moeo/doc/html/classSch1Eval-members.html
new file mode 100644
index 000000000..05b0f0a8f
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classSch1Eval-members.html
@@ -0,0 +1,43 @@
+
+
+| EOFitT typedef | eoEvalFunc< Sch1 > | |
| EOType typedef | eoEvalFunc< Sch1 > | |
| functor_category() | eoUF< A1, R > | [static] |
| operator()(Sch1 &_sch1) | Sch1Eval | [inline] |
| moeoEvalFunc< Sch1 >::operator()(A1)=0 | eoUF< A1, R > | [pure virtual] |
| ~eoFunctorBase() | eoFunctorBase | [virtual] |
| ~eoUF() | eoUF< A1, R > | [virtual] |
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classSch1Eval.html b/trunk/paradiseo-moeo/doc/html/classSch1Eval.html
new file mode 100644
index 000000000..55b009135
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classSch1Eval.html
@@ -0,0 +1,57 @@
+
+
+Inheritance diagram for Sch1Eval: +

Public Member Functions | |
| +void | operator() (Sch1 &_sch1) |
+ +
+Definition at line 52 of file Sch1.cpp.
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classSch1Eval.png b/trunk/paradiseo-moeo/doc/html/classSch1Eval.png
new file mode 100644
index 000000000..f51abff08
Binary files /dev/null and b/trunk/paradiseo-moeo/doc/html/classSch1Eval.png differ
diff --git a/trunk/paradiseo-moeo/doc/html/classSch1ObjectiveVectorTraits-members.html b/trunk/paradiseo-moeo/doc/html/classSch1ObjectiveVectorTraits-members.html
new file mode 100644
index 000000000..496dfb5f0
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classSch1ObjectiveVectorTraits-members.html
@@ -0,0 +1,43 @@
+
+
+| maximizing(int i) | Sch1ObjectiveVectorTraits | [inline, static] |
| moeoObjectiveVectorTraits::maximizing(unsigned int _i) | moeoObjectiveVectorTraits | [inline, static] |
| minimizing(int i) | Sch1ObjectiveVectorTraits | [inline, static] |
| moeoObjectiveVectorTraits::minimizing(unsigned int _i) | moeoObjectiveVectorTraits | [inline, static] |
| nObjectives() | Sch1ObjectiveVectorTraits | [inline, static] |
| setup(unsigned int _nObjectives, std::vector< bool > &_bObjectives) | moeoObjectiveVectorTraits | [inline, static] |
| tolerance() | moeoObjectiveVectorTraits | [inline, static] |
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classSch1ObjectiveVectorTraits.html b/trunk/paradiseo-moeo/doc/html/classSch1ObjectiveVectorTraits.html
new file mode 100644
index 000000000..ff9f46804
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classSch1ObjectiveVectorTraits.html
@@ -0,0 +1,61 @@
+
+
+Inheritance diagram for Sch1ObjectiveVectorTraits: +

Static Public Member Functions | |
| +static bool | minimizing (int i) |
| +static bool | maximizing (int i) |
| +static unsigned int | nObjectives () |
| Returns the number of objectives. | |
+ +
+Definition at line 21 of file Sch1.cpp.
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classSch1ObjectiveVectorTraits.png b/trunk/paradiseo-moeo/doc/html/classSch1ObjectiveVectorTraits.png
new file mode 100644
index 000000000..6180dfbc3
Binary files /dev/null and b/trunk/paradiseo-moeo/doc/html/classSch1ObjectiveVectorTraits.png differ
diff --git a/trunk/paradiseo-moeo/doc/html/classmoeoIBMOLS-members.html b/trunk/paradiseo-moeo/doc/html/classmoeoIBMOLS-members.html
new file mode 100644
index 000000000..e3e371abb
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classmoeoIBMOLS-members.html
@@ -0,0 +1,50 @@
+
+
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classmoeoIBMOLS.html b/trunk/paradiseo-moeo/doc/html/classmoeoIBMOLS.html
new file mode 100644
index 000000000..886ebc547
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classmoeoIBMOLS.html
@@ -0,0 +1,295 @@
+
+
+
+#include <moeoIBMOLS.h>
+
+
Inheritance diagram for moeoIBMOLS< MOEOT, Move >: +

Public Types | |
| +typedef MOEOT::ObjectiveVector | ObjectiveVector |
| The type of objective vector. | |
Public Member Functions | |
| moeoIBMOLS (moMoveInit< Move > &_moveInit, moNextMove< Move > &_nextMove, eoEvalFunc< MOEOT > &_eval, moeoMoveIncrEval< Move > &_moveIncrEval, moeoBinaryIndicatorBasedFitnessAssignment< MOEOT > &_fitnessAssignment, eoContinue< MOEOT > &_continuator) | |
| Ctor. | |
| void | operator() (eoPop< MOEOT > &_pop, moeoArchive< MOEOT > &_arch) |
| Apply the local search until a local archive does not change or another stopping criteria is met and update the archive _arch with new non-dominated solutions. | |
Private Member Functions | |
| void | oneStep (eoPop< MOEOT > &_pop) |
| Apply one step of the local search to the population _pop. | |
| void | new_oneStep (eoPop< MOEOT > &_pop) |
| Apply one step of the local search to the population _pop. | |
Private Attributes | |
| +moMoveInit< Move > & | moveInit |
| the move initializer | |
| +moNextMove< Move > & | nextMove |
| the neighborhood explorer | |
| +eoEvalFunc< MOEOT > & | eval |
| the full evaluation | |
| +moeoMoveIncrEval< Move > & | moveIncrEval |
| the incremental evaluation | |
|
+moeoBinaryIndicatorBasedFitnessAssignment< + MOEOT > & | fitnessAssignment |
| the fitness assignment strategy | |
| +eoContinue< MOEOT > & | continuator |
| the stopping criteria | |
Classes | |
| class | OneObjectiveComparator |
+: "Indicator-Based Multi-Objective Local Search" (2007). +
+ +
+Definition at line 33 of file moeoIBMOLS.h.
| moeoIBMOLS< MOEOT, Move >::moeoIBMOLS | +( | +moMoveInit< Move > & | +_moveInit, | +|
| + | + | moNextMove< Move > & | +_nextMove, | +|
| + | + | eoEvalFunc< MOEOT > & | +_eval, | +|
| + | + | moeoMoveIncrEval< Move > & | +_moveIncrEval, | +|
| + | + | moeoBinaryIndicatorBasedFitnessAssignment< MOEOT > & | +_fitnessAssignment, | +|
| + | + | eoContinue< MOEOT > & | +_continuator | + |
| + | ) | + [inline] |
+
+Ctor. +
+
| _moveInit | the move initializer | |
| _nextMove | the neighborhood explorer | |
| _eval | the full evaluation | |
| _moveIncrEval | the incremental evaluation | |
| _fitnessAssignment | the fitness assignment strategy | |
| _continuator | the stopping criteria |
+Definition at line 50 of file moeoIBMOLS.h. +
+
| void moeoIBMOLS< MOEOT, Move >::operator() | +( | +eoPop< MOEOT > & | +_pop, | +|
| + | + | moeoArchive< MOEOT > & | +_arch | + |
| + | ) | + [inline, virtual] |
+
+Apply the local search until a local archive does not change or another stopping criteria is met and update the archive _arch with new non-dominated solutions. +
+
| _pop | the initial population | |
| _arch | the (updated) archive |
+Implements eoBF< eoPop< MOEOT > &, moeoArchive< MOEOT > &, void >. +
+Definition at line 73 of file moeoIBMOLS.h. +
+References moeoIBMOLS< MOEOT, Move >::continuator, moeoArchive< MOEOT >::equals(), moeoIBMOLS< MOEOT, Move >::fitnessAssignment, moeoIBMOLS< MOEOT, Move >::oneStep(), and moeoArchive< MOEOT >::update(). +
| void moeoIBMOLS< MOEOT, Move >::oneStep | +( | +eoPop< MOEOT > & | +_pop | +) | + [inline, private] |
+
+Apply one step of the local search to the population _pop. +
+
| _pop | the population |
+Definition at line 120 of file moeoIBMOLS.h. +
+References moeoIBMOLS< MOEOT, Move >::continuator, moeoIBMOLS< MOEOT, Move >::fitnessAssignment, moeoIBMOLS< MOEOT, Move >::moveIncrEval, moeoIBMOLS< MOEOT, Move >::moveInit, and moeoIBMOLS< MOEOT, Move >::nextMove. +
+Referenced by moeoIBMOLS< MOEOT, Move >::operator()(). +
| void moeoIBMOLS< MOEOT, Move >::new_oneStep | +( | +eoPop< MOEOT > & | +_pop | +) | + [inline, private] |
+
+Apply one step of the local search to the population _pop. +
+
| _pop | the population |
+Definition at line 304 of file moeoIBMOLS.h. +
+References moeoIBMOLS< MOEOT, Move >::continuator, moeoIBMOLS< MOEOT, Move >::fitnessAssignment, moeoIBMOLS< MOEOT, Move >::moveIncrEval, moeoIBMOLS< MOEOT, Move >::moveInit, and moeoIBMOLS< MOEOT, Move >::nextMove. +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classmoeoIBMOLS.png b/trunk/paradiseo-moeo/doc/html/classmoeoIBMOLS.png
new file mode 100644
index 000000000..f8ca65a0c
Binary files /dev/null and b/trunk/paradiseo-moeo/doc/html/classmoeoIBMOLS.png differ
diff --git a/trunk/paradiseo-moeo/doc/html/classmoeoIBMOLS_1_1OneObjectiveComparator-members.html b/trunk/paradiseo-moeo/doc/html/classmoeoIBMOLS_1_1OneObjectiveComparator-members.html
new file mode 100644
index 000000000..24f0bfaad
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classmoeoIBMOLS_1_1OneObjectiveComparator-members.html
@@ -0,0 +1,43 @@
+
+
+| functor_category() | eoBF< A1, A2, R > | [static] |
| obj | moeoIBMOLS< MOEOT, Move >::OneObjectiveComparator | [private] |
| OneObjectiveComparator(unsigned int _obj) | moeoIBMOLS< MOEOT, Move >::OneObjectiveComparator | [inline] |
| operator()(const MOEOT &_moeo1, const MOEOT &_moeo2) | moeoIBMOLS< MOEOT, Move >::OneObjectiveComparator | [inline] |
| moeoComparator::operator()(A1, A2)=0 | eoBF< A1, A2, R > | [pure virtual] |
| ~eoBF() | eoBF< A1, A2, R > | [virtual] |
| ~eoFunctorBase() | eoFunctorBase | [virtual] |
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classmoeoIBMOLS_1_1OneObjectiveComparator.html b/trunk/paradiseo-moeo/doc/html/classmoeoIBMOLS_1_1OneObjectiveComparator.html
new file mode 100644
index 000000000..7d46550f4
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classmoeoIBMOLS_1_1OneObjectiveComparator.html
@@ -0,0 +1,68 @@
+
+
+Inheritance diagram for moeoIBMOLS< MOEOT, Move >::OneObjectiveComparator: +

Public Member Functions | |
| + | OneObjectiveComparator (unsigned int _obj) |
| +const bool | operator() (const MOEOT &_moeo1, const MOEOT &_moeo2) |
Private Attributes | |
| +unsigned int | obj |
+ +
+Definition at line 462 of file moeoIBMOLS.h.
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classmoeoIBMOLS_1_1OneObjectiveComparator.png b/trunk/paradiseo-moeo/doc/html/classmoeoIBMOLS_1_1OneObjectiveComparator.png
new file mode 100644
index 000000000..d4f1e1cad
Binary files /dev/null and b/trunk/paradiseo-moeo/doc/html/classmoeoIBMOLS_1_1OneObjectiveComparator.png differ
diff --git a/trunk/paradiseo-moeo/doc/html/classmoeoIteratedIBMOLS-members.html b/trunk/paradiseo-moeo/doc/html/classmoeoIteratedIBMOLS-members.html
new file mode 100644
index 000000000..b2686004d
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classmoeoIteratedIBMOLS-members.html
@@ -0,0 +1,49 @@
+
+
+| continuator | moeoIteratedIBMOLS< MOEOT, Move > | [private] |
| eval | moeoIteratedIBMOLS< MOEOT, Move > | [private] |
| functor_category() | eoBF< eoPop< MOEOT > &, moeoArchive< MOEOT > &, void > | [static] |
| generateNewSolutions(eoPop< MOEOT > &_pop, const moeoArchive< MOEOT > &_arch) | moeoIteratedIBMOLS< MOEOT, Move > | [inline, private] |
| ibmols | moeoIteratedIBMOLS< MOEOT, Move > | [private] |
| moeoIteratedIBMOLS(moMoveInit< Move > &_moveInit, moNextMove< Move > &_nextMove, eoEvalFunc< MOEOT > &_eval, moeoMoveIncrEval< Move > &_moveIncrEval, moeoBinaryIndicatorBasedFitnessAssignment< MOEOT > &_fitnessAssignment, eoContinue< MOEOT > &_continuator, eoMonOp< MOEOT > &_monOp, eoMonOp< MOEOT > &_randomMonOp, unsigned int _nNoiseIterations=1) | moeoIteratedIBMOLS< MOEOT, Move > | [inline] |
| monOp | moeoIteratedIBMOLS< MOEOT, Move > | [private] |
| nNoiseIterations | moeoIteratedIBMOLS< MOEOT, Move > | [private] |
| ObjectiveVector typedef | moeoIteratedIBMOLS< MOEOT, Move > | |
| operator()(eoPop< MOEOT > &_pop, moeoArchive< MOEOT > &_arch) | moeoIteratedIBMOLS< MOEOT, Move > | [inline, virtual] |
| randomMonOp | moeoIteratedIBMOLS< MOEOT, Move > | [private] |
| ~eoBF() | eoBF< eoPop< MOEOT > &, moeoArchive< MOEOT > &, void > | [virtual] |
| ~eoFunctorBase() | eoFunctorBase | [virtual] |
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classmoeoIteratedIBMOLS.html b/trunk/paradiseo-moeo/doc/html/classmoeoIteratedIBMOLS.html
new file mode 100644
index 000000000..af9f19c43
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classmoeoIteratedIBMOLS.html
@@ -0,0 +1,286 @@
+
+
+
+#include <moeoIteratedIBMOLS.h>
+
+
Inheritance diagram for moeoIteratedIBMOLS< MOEOT, Move >: +

Public Types | |
| +typedef MOEOT::ObjectiveVector | ObjectiveVector |
| The type of objective vector. | |
Public Member Functions | |
| moeoIteratedIBMOLS (moMoveInit< Move > &_moveInit, moNextMove< Move > &_nextMove, eoEvalFunc< MOEOT > &_eval, moeoMoveIncrEval< Move > &_moveIncrEval, moeoBinaryIndicatorBasedFitnessAssignment< MOEOT > &_fitnessAssignment, eoContinue< MOEOT > &_continuator, eoMonOp< MOEOT > &_monOp, eoMonOp< MOEOT > &_randomMonOp, unsigned int _nNoiseIterations=1) | |
| Ctor. | |
| void | operator() (eoPop< MOEOT > &_pop, moeoArchive< MOEOT > &_arch) |
| Apply the local search iteratively until the stopping criteria is met. | |
Private Member Functions | |
| void | generateNewSolutions (eoPop< MOEOT > &_pop, const moeoArchive< MOEOT > &_arch) |
| Creates new population randomly initialized and/or initialized from the archive _arch. | |
Private Attributes | |
| +moeoIBMOLS< MOEOT, Move > | ibmols |
| the local search to iterate | |
| +eoEvalFunc< MOEOT > & | eval |
| the full evaluation | |
| +eoContinue< MOEOT > & | continuator |
| the stopping criteria | |
| +eoMonOp< MOEOT > & | monOp |
| the monary operator | |
| +eoMonOp< MOEOT > & | randomMonOp |
| the random monary operator (or random initializer) | |
| +unsigned int | nNoiseIterations |
| the number of iterations to apply the random noise | |
+: "Indicator-Based Multi-Objective Local Search" (2007). +
+ +
+Definition at line 41 of file moeoIteratedIBMOLS.h.
| moeoIteratedIBMOLS< MOEOT, Move >::moeoIteratedIBMOLS | +( | +moMoveInit< Move > & | +_moveInit, | +|
| + | + | moNextMove< Move > & | +_nextMove, | +|
| + | + | eoEvalFunc< MOEOT > & | +_eval, | +|
| + | + | moeoMoveIncrEval< Move > & | +_moveIncrEval, | +|
| + | + | moeoBinaryIndicatorBasedFitnessAssignment< MOEOT > & | +_fitnessAssignment, | +|
| + | + | eoContinue< MOEOT > & | +_continuator, | +|
| + | + | eoMonOp< MOEOT > & | +_monOp, | +|
| + | + | eoMonOp< MOEOT > & | +_randomMonOp, | +|
| + | + | unsigned int | + _nNoiseIterations = 1 | + |
| + | ) | + [inline] |
+
+Ctor. +
+
| _moveInit | the move initializer | |
| _nextMove | the neighborhood explorer | |
| _eval | the full evaluation | |
| _moveIncrEval | the incremental evaluation | |
| _fitnessAssignment | the fitness assignment strategy | |
| _continuator | the stopping criteria | |
| _monOp | the monary operator | |
| _randomMonOp | the random monary operator (or random initializer) | |
| _nNoiseIterations | the number of iterations to apply the random noise |
+Definition at line 61 of file moeoIteratedIBMOLS.h. +
+
| void moeoIteratedIBMOLS< MOEOT, Move >::operator() | +( | +eoPop< MOEOT > & | +_pop, | +|
| + | + | moeoArchive< MOEOT > & | +_arch | + |
| + | ) | + [inline, virtual] |
+
+Apply the local search iteratively until the stopping criteria is met. +
+
| _pop | the initial population | |
| _arch | the (updated) archive |
+Implements eoBF< eoPop< MOEOT > &, moeoArchive< MOEOT > &, void >. +
+Definition at line 86 of file moeoIteratedIBMOLS.h. +
+References moeoIteratedIBMOLS< MOEOT, Move >::continuator, moeoIteratedIBMOLS< MOEOT, Move >::generateNewSolutions(), moeoIteratedIBMOLS< MOEOT, Move >::ibmols, and moeoArchive< MOEOT >::update(). +
| void moeoIteratedIBMOLS< MOEOT, Move >::generateNewSolutions | +( | +eoPop< MOEOT > & | +_pop, | +|
| + | + | const moeoArchive< MOEOT > & | +_arch | + |
| + | ) | + [inline, private] |
+
+Creates new population randomly initialized and/or initialized from the archive _arch. +
+
| _pop | the output population | |
| _arch | the archive |
+Definition at line 121 of file moeoIteratedIBMOLS.h. +
+References moeoIteratedIBMOLS< MOEOT, Move >::eval, eoPop< EOT >::invalidate(), moeoIteratedIBMOLS< MOEOT, Move >::monOp, moeoIteratedIBMOLS< MOEOT, Move >::nNoiseIterations, and moeoIteratedIBMOLS< MOEOT, Move >::randomMonOp. +
+Referenced by moeoIteratedIBMOLS< MOEOT, Move >::operator()(). +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classmoeoIteratedIBMOLS.png b/trunk/paradiseo-moeo/doc/html/classmoeoIteratedIBMOLS.png
new file mode 100644
index 000000000..dc4163151
Binary files /dev/null and b/trunk/paradiseo-moeo/doc/html/classmoeoIteratedIBMOLS.png differ
diff --git a/trunk/paradiseo-moeo/doc/html/classmoeoMoveIncrEval-members.html b/trunk/paradiseo-moeo/doc/html/classmoeoMoveIncrEval-members.html
new file mode 100644
index 000000000..6e2c307eb
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classmoeoMoveIncrEval-members.html
@@ -0,0 +1,40 @@
+
+
+| functor_category() | eoBF< A1, A2, R > | [static] |
| operator()(A1, A2)=0 | eoBF< A1, A2, R > | [pure virtual] |
| ~eoBF() | eoBF< A1, A2, R > | [virtual] |
| ~eoFunctorBase() | eoFunctorBase | [virtual] |
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classmoeoMoveIncrEval.html b/trunk/paradiseo-moeo/doc/html/classmoeoMoveIncrEval.html
new file mode 100644
index 000000000..4164ae922
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classmoeoMoveIncrEval.html
@@ -0,0 +1,54 @@
+
+
+Inheritance diagram for moeoMoveIncrEval< Move >: +

+ +
+Definition at line 9 of file moeoMoveIncrEval.h.
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classmoeoMoveIncrEval.png b/trunk/paradiseo-moeo/doc/html/classmoeoMoveIncrEval.png
new file mode 100644
index 000000000..a9d2cd488
Binary files /dev/null and b/trunk/paradiseo-moeo/doc/html/classmoeoMoveIncrEval.png differ
diff --git a/trunk/paradiseo-moeo/doc/html/classmoeoObjectiveVectorTraits.png b/trunk/paradiseo-moeo/doc/html/classmoeoObjectiveVectorTraits.png
new file mode 100644
index 000000000..046329330
Binary files /dev/null and b/trunk/paradiseo-moeo/doc/html/classmoeoObjectiveVectorTraits.png differ
diff --git a/trunk/paradiseo-moeo/doc/html/classmoeoReferencePointIndicatorBasedFitnessAssignment-members.html b/trunk/paradiseo-moeo/doc/html/classmoeoReferencePointIndicatorBasedFitnessAssignment-members.html
new file mode 100644
index 000000000..9919b5d37
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classmoeoReferencePointIndicatorBasedFitnessAssignment-members.html
@@ -0,0 +1,48 @@
+
+
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classmoeoReferencePointIndicatorBasedFitnessAssignment.html b/trunk/paradiseo-moeo/doc/html/classmoeoReferencePointIndicatorBasedFitnessAssignment.html
new file mode 100644
index 000000000..d76beca59
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classmoeoReferencePointIndicatorBasedFitnessAssignment.html
@@ -0,0 +1,283 @@
+
+
+
+#include <moeoReferencePointIndicatorBasedFitnessAssignment.h>
+
+
Inheritance diagram for moeoReferencePointIndicatorBasedFitnessAssignment< MOEOT >: +

Public Types | |
| +typedef MOEOT::ObjectiveVector | ObjectiveVector |
| The type of objective vector. | |
Public Member Functions | |
| moeoReferencePointIndicatorBasedFitnessAssignment (ObjectiveVector &_refPoint, moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &_metric) | |
| Ctor. | |
| void | operator() (eoPop< MOEOT > &_pop) |
| Sets the fitness values for every solution contained in the population _pop. | |
| void | updateByDeleting (eoPop< MOEOT > &_pop, ObjectiveVector &_objVec) |
| Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. | |
Protected Member Functions | |
| void | setup (const eoPop< MOEOT > &_pop) |
| Sets the bounds for every objective using the min and the max value for every objective vector of _pop (and the reference point). | |
| void | setFitnesses (eoPop< MOEOT > &_pop) |
| Sets the fitness of every individual contained in the population _pop. | |
Protected Attributes | |
| +ObjectiveVector & | refPoint |
| the reference point | |
|
+moeoNormalizedSolutionVsSolutionBinaryMetric< + ObjectiveVector, double > & | metric |
| the quality indicator | |
+ +
+Definition at line 25 of file moeoReferencePointIndicatorBasedFitnessAssignment.h.
| moeoReferencePointIndicatorBasedFitnessAssignment< MOEOT >::moeoReferencePointIndicatorBasedFitnessAssignment | +( | +ObjectiveVector & | +_refPoint, | +|
| + | + | moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > & | +_metric | + |
| + | ) | + [inline] |
+
+Ctor. +
+
| _refPoint | the reference point | |
| _metric | the quality indicator |
+Definition at line 37 of file moeoReferencePointIndicatorBasedFitnessAssignment.h. +
+
| void moeoReferencePointIndicatorBasedFitnessAssignment< MOEOT >::operator() | +( | +eoPop< MOEOT > & | +_pop | +) | + [inline, virtual] |
+
+Sets the fitness values for every solution contained in the population _pop. +
+
| _pop | the population |
+Implements eoUF< eoPop< MOEOT > &, void >. +
+Definition at line 46 of file moeoReferencePointIndicatorBasedFitnessAssignment.h. +
+References moeoReferencePointIndicatorBasedFitnessAssignment< MOEOT >::setFitnesses(), and moeoReferencePointIndicatorBasedFitnessAssignment< MOEOT >::setup(). +
| void moeoReferencePointIndicatorBasedFitnessAssignment< MOEOT >::updateByDeleting | +( | +eoPop< MOEOT > & | +_pop, | +|
| + | + | ObjectiveVector & | +_objVec | + |
| + | ) | + [inline, virtual] |
+
+Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +
+
| _pop | the population | |
| _objVec | the objective vector |
+Implements moeoFitnessAssignment< MOEOT >. +
+Definition at line 60 of file moeoReferencePointIndicatorBasedFitnessAssignment.h. +
| void moeoReferencePointIndicatorBasedFitnessAssignment< MOEOT >::setup | +( | +const eoPop< MOEOT > & | +_pop | +) | + [inline, protected] |
+
+Sets the bounds for every objective using the min and the max value for every objective vector of _pop (and the reference point). +
+
| _pop | the population |
+Definition at line 78 of file moeoReferencePointIndicatorBasedFitnessAssignment.h. +
+References moeoReferencePointIndicatorBasedFitnessAssignment< MOEOT >::metric, moeoReferencePointIndicatorBasedFitnessAssignment< MOEOT >::refPoint, and moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >::setup(). +
+Referenced by moeoReferencePointIndicatorBasedFitnessAssignment< MOEOT >::operator()(). +
| void moeoReferencePointIndicatorBasedFitnessAssignment< MOEOT >::setFitnesses | +( | +eoPop< MOEOT > & | +_pop | +) | + [inline, protected] |
+
+Sets the fitness of every individual contained in the population _pop. +
+
| _pop | the population |
+Definition at line 99 of file moeoReferencePointIndicatorBasedFitnessAssignment.h. +
+References moeoReferencePointIndicatorBasedFitnessAssignment< MOEOT >::metric, and moeoReferencePointIndicatorBasedFitnessAssignment< MOEOT >::refPoint. +
+Referenced by moeoReferencePointIndicatorBasedFitnessAssignment< MOEOT >::operator()(). +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classmoeoReferencePointIndicatorBasedFitnessAssignment.png b/trunk/paradiseo-moeo/doc/html/classmoeoReferencePointIndicatorBasedFitnessAssignment.png
new file mode 100644
index 000000000..b52223b04
Binary files /dev/null and b/trunk/paradiseo-moeo/doc/html/classmoeoReferencePointIndicatorBasedFitnessAssignment.png differ
diff --git a/trunk/paradiseo-moeo/doc/html/classpeoEA-members.html b/trunk/paradiseo-moeo/doc/html/classpeoEA-members.html
new file mode 100644
index 000000000..7b4ab6b73
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classpeoEA-members.html
@@ -0,0 +1,45 @@
+
+
+| cont | peoEA< EOT > | [private] |
| operator()(eoPop< EOT > &__pop) | peoEA< EOT > | |
| peoEA(eoContinue< EOT > &__cont, peoPopEval< EOT > &__pop_eval, eoSelect< EOT > &__select, peoTransform< EOT > &__trans, eoReplacement< EOT > &__replace) | peoEA< EOT > | |
| pop | peoEA< EOT > | [private] |
| pop_eval | peoEA< EOT > | [private] |
| replace | peoEA< EOT > | [private] |
| run() | peoEA< EOT > | |
| select | peoEA< EOT > | [private] |
| trans | peoEA< EOT > | [private] |
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/classpeoEA.html b/trunk/paradiseo-moeo/doc/html/classpeoEA.html
new file mode 100644
index 000000000..f19685464
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/classpeoEA.html
@@ -0,0 +1,228 @@
+
+
+
+#include <pmoeoEA.h>
+
Public Member Functions | |
| peoEA (eoContinue< EOT > &__cont, peoPopEval< EOT > &__pop_eval, eoSelect< EOT > &__select, peoTransform< EOT > &__trans, eoReplacement< EOT > &__replace) | |
| Constructor for the evolutionary algorithm object - several basic parameters have to be specified, allowing for different levels of parallelism. | |
| +void | run () |
| Evolutionary algorithm function - a side effect of the fact that the class is derived from the Runner class, thus requiring the existence of a run function, the algorithm being executed on a distinct thread. | |
| void | operator() (eoPop< EOT > &__pop) |
| Function operator for specifying the population to be associated with the algorithm. | |
Private Attributes | |
| +eoContinue< EOT > & | cont |
| +peoPopEval< EOT > & | pop_eval |
| +eoSelect< EOT > & | select |
| +peoTransform< EOT > & | trans |
| +eoReplacement< EOT > & | replace |
| +eoPop< EOT > * | pop |
+In addition, as compared with the algorithms provided by the EO framework, the peoEA class has the underlying necessary structure for including, for example, parallel evaluation and parallel transformation operators, migration operators etc. Although there is no restriction on using the algorithms provided by the EO framework, the drawback resides in the fact that the EO implementation is exclusively sequential and, in consequence, no parallelism is provided. A simple example for constructing a peoEA object:
+
| ... | |
| eoPop< EOT > population( POP_SIZE, popInitializer ); | // creation of a population with POP_SIZE individuals - the popInitializer is a functor to be called for each individual |
| eoGenContinue< EOT > eaCont( NUM_GEN ); | // number of generations for the evolutionary algorithm |
| eoCheckPoint< EOT > eaCheckpointContinue( eaCont ); | // checkpoint incorporating the continuation criterion - startpoint for adding other checkpoint objects |
| peoSeqPopEval< EOT > eaPopEval( evalFunction ); | // sequential evaluation functor wrapper - evalFunction represents the actual evaluation functor |
| eoRankingSelect< EOT > selectionStrategy; | // selection strategy for creating the offspring population - a simple ranking selection in this case |
| eoSelectNumber< EOT > eaSelect( selectionStrategy, POP_SIZE ); | // the number of individuals to be selected for creating the offspring population |
| eoRankingSelect< EOT > selectionStrategy; | // selection strategy for creating the offspring population - a simple ranking selection in this case |
| eoSGATransform< EOT > transform( crossover, CROSS_RATE, mutation, MUT_RATE ); | // transformation operator - crossover and mutation operators with their associated probabilities |
| peoSeqTransform< EOT > eaTransform( transform ); | // ParadisEO specific sequential operator - a parallel version may be specified in the same manner |
| eoPlusReplacement< EOT > eaReplace; | // replacement strategy - for integrating the offspring resulting individuals in the initial population |
| peoEA< EOT > eaAlg( eaCheckpointContinue, eaPopEval, eaSelect, eaTransform, eaReplace ); | // ParadisEO evolutionary algorithm integrating the above defined objects |
| eaAlg( population ); | // specifying the initial population for the algorithm |
| ... |
+ +
+Definition at line 54 of file pmoeoEA.h.
| peoEA< EOT >::peoEA | +( | +eoContinue< EOT > & | +__cont, | +|
| + | + | peoPopEval< EOT > & | +__pop_eval, | +|
| + | + | eoSelect< EOT > & | +__select, | +|
| + | + | peoTransform< EOT > & | +__trans, | +|
| + | + | eoReplacement< EOT > & | +__replace | + |
| + | ) | ++ |
+Constructor for the evolutionary algorithm object - several basic parameters have to be specified, allowing for different levels of parallelism. +
+Depending on the requirements, a sequential or a parallel evaluation operator may be specified or, in the same manner, a sequential or a parallel transformation operator may be given as parameter. Out of the box objects may be provided, from the EO package, for example, or custom defined ones may be specified, provided that they are derived from the correct base classes.
+
| eoContinue< | EOT >& __cont - continuation criterion specifying whether the algorithm should continue or not; | |
| peoPopEval< | EOT >& __pop_eval - evaluation operator; it allows the specification of parallel evaluation operators, aggregate evaluation functions, etc.; | |
| eoSelect< | EOT >& __select - selection strategy to be applied for constructing a list of offspring individuals; | |
| peoTransform< | EOT >& __trans - transformation operator, i.e. crossover and mutation; allows for sequential or parallel transform; | |
| eoReplacement< | EOT >& __replace - replacement strategy for integrating the offspring individuals in the initial population; |
+Definition at line 98 of file pmoeoEA.h. +
+References peoEA< EOT >::pop_eval, and peoEA< EOT >::trans. +
+
+Function operator for specifying the population to be associated with the algorithm. +
+
| eoPop< | EOT >& __pop - initial population of the algorithm, to be iteratively evolved; |
+Definition at line 114 of file pmoeoEA.h. +
+References peoEA< EOT >::pop. +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/functions_0x62.html b/trunk/paradiseo-moeo/doc/html/functions_0x62.html
new file mode 100644
index 000000000..d728575f3
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/functions_0x62.html
@@ -0,0 +1,78 @@
+
+
++Here is a list of all documented class members with links to the class documentation for each member: +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/functions_0x63.html b/trunk/paradiseo-moeo/doc/html/functions_0x63.html
new file mode 100644
index 000000000..e8c442917
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/functions_0x63.html
@@ -0,0 +1,95 @@
+
+
++Here is a list of all documented class members with links to the class documentation for each member: +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/functions_0x64.html b/trunk/paradiseo-moeo/doc/html/functions_0x64.html
new file mode 100644
index 000000000..11ee93db3
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/functions_0x64.html
@@ -0,0 +1,96 @@
+
+
++Here is a list of all documented class members with links to the class documentation for each member: +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/functions_0x65.html b/trunk/paradiseo-moeo/doc/html/functions_0x65.html
new file mode 100644
index 000000000..a503f09dc
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/functions_0x65.html
@@ -0,0 +1,80 @@
+
+
++Here is a list of all documented class members with links to the class documentation for each member: +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/functions_0x66.html b/trunk/paradiseo-moeo/doc/html/functions_0x66.html
new file mode 100644
index 000000000..cf69b4562
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/functions_0x66.html
@@ -0,0 +1,86 @@
+
+
++Here is a list of all documented class members with links to the class documentation for each member: +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/functions_0x67.html b/trunk/paradiseo-moeo/doc/html/functions_0x67.html
new file mode 100644
index 000000000..211b7ceeb
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/functions_0x67.html
@@ -0,0 +1,82 @@
+
+
++Here is a list of all documented class members with links to the class documentation for each member: +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/functions_0x68.html b/trunk/paradiseo-moeo/doc/html/functions_0x68.html
new file mode 100644
index 000000000..68b57203f
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/functions_0x68.html
@@ -0,0 +1,77 @@
+
+
++Here is a list of all documented class members with links to the class documentation for each member: +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/functions_0x69.html b/trunk/paradiseo-moeo/doc/html/functions_0x69.html
new file mode 100644
index 000000000..38128c1ac
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/functions_0x69.html
@@ -0,0 +1,90 @@
+
+
++Here is a list of all documented class members with links to the class documentation for each member: +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/functions_0x6b.html b/trunk/paradiseo-moeo/doc/html/functions_0x6b.html
new file mode 100644
index 000000000..77cee7bc6
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/functions_0x6b.html
@@ -0,0 +1,76 @@
+
+
++Here is a list of all documented class members with links to the class documentation for each member: +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/functions_0x6c.html b/trunk/paradiseo-moeo/doc/html/functions_0x6c.html
new file mode 100644
index 000000000..962b32b59
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/functions_0x6c.html
@@ -0,0 +1,78 @@
+
+
++Here is a list of all documented class members with links to the class documentation for each member: +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/functions_0x6d.html b/trunk/paradiseo-moeo/doc/html/functions_0x6d.html
new file mode 100644
index 000000000..a91ecaea2
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/functions_0x6d.html
@@ -0,0 +1,124 @@
+
+
++Here is a list of all documented class members with links to the class documentation for each member: +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/functions_0x6e.html b/trunk/paradiseo-moeo/doc/html/functions_0x6e.html
new file mode 100644
index 000000000..7d5abecd9
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/functions_0x6e.html
@@ -0,0 +1,83 @@
+
+
++Here is a list of all documented class members with links to the class documentation for each member: +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/functions_0x6f.html b/trunk/paradiseo-moeo/doc/html/functions_0x6f.html
new file mode 100644
index 000000000..9f70376a5
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/functions_0x6f.html
@@ -0,0 +1,91 @@
+
+
++Here is a list of all documented class members with links to the class documentation for each member: +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/functions_0x70.html b/trunk/paradiseo-moeo/doc/html/functions_0x70.html
new file mode 100644
index 000000000..6d7c434ff
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/functions_0x70.html
@@ -0,0 +1,84 @@
+
+
++Here is a list of all documented class members with links to the class documentation for each member: +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/functions_0x72.html b/trunk/paradiseo-moeo/doc/html/functions_0x72.html
new file mode 100644
index 000000000..acf2c1ba2
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/functions_0x72.html
@@ -0,0 +1,86 @@
+
+
++Here is a list of all documented class members with links to the class documentation for each member: +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/functions_0x73.html b/trunk/paradiseo-moeo/doc/html/functions_0x73.html
new file mode 100644
index 000000000..438a8ba8a
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/functions_0x73.html
@@ -0,0 +1,85 @@
+
+
++Here is a list of all documented class members with links to the class documentation for each member: +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/functions_0x74.html b/trunk/paradiseo-moeo/doc/html/functions_0x74.html
new file mode 100644
index 000000000..d375480c1
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/functions_0x74.html
@@ -0,0 +1,85 @@
+
+
++Here is a list of all documented class members with links to the class documentation for each member: +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/functions_0x75.html b/trunk/paradiseo-moeo/doc/html/functions_0x75.html
new file mode 100644
index 000000000..dd36247f6
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/functions_0x75.html
@@ -0,0 +1,78 @@
+
+
++Here is a list of all documented class members with links to the class documentation for each member: +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/functions_0x76.html b/trunk/paradiseo-moeo/doc/html/functions_0x76.html
new file mode 100644
index 000000000..189cc4afc
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/functions_0x76.html
@@ -0,0 +1,79 @@
+
+
++Here is a list of all documented class members with links to the class documentation for each member: +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/functions_0x77.html b/trunk/paradiseo-moeo/doc/html/functions_0x77.html
new file mode 100644
index 000000000..76af96fda
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/functions_0x77.html
@@ -0,0 +1,77 @@
+
+
++Here is a list of all documented class members with links to the class documentation for each member: +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/functions_0x7e.html b/trunk/paradiseo-moeo/doc/html/functions_0x7e.html
new file mode 100644
index 000000000..a6fd80cfd
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/functions_0x7e.html
@@ -0,0 +1,76 @@
+
+
++Here is a list of all documented class members with links to the class documentation for each member: +
+
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/make__eval__FlowShop_8h-source.html b/trunk/paradiseo-moeo/doc/html/make__eval__FlowShop_8h-source.html
new file mode 100644
index 000000000..904b7e000
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/make__eval__FlowShop_8h-source.html
@@ -0,0 +1,83 @@
+
+
+00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- +00002 +00003 //----------------------------------------------------------------------------- +00004 // make_eval_FlowShop.h +00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +00006 /* +00007 This library... +00008 +00009 Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr +00010 */ +00011 //----------------------------------------------------------------------------- +00012 +00013 #ifndef MAKE_EVAL_FLOWSHOP_H_ +00014 #define MAKE_EVAL_FLOWSHOP_H_ +00015 +00016 +00017 #include <utils/eoParser.h> +00018 #include <utils/eoState.h> +00019 #include <eoEvalFuncCounter.h> +00020 #include <FlowShop.h> +00021 #include <FlowShopBenchmarkParser.h> +00022 #include <FlowShopEval.h> +00023 +00024 /* +00025 * This function creates an eoEvalFuncCounter<eoFlowShop> that can later be used to evaluate an individual. +00026 * @param eoParser& _parser to get user parameters +00027 * @param eoState& _state to store the memory +00028 */ +00029 eoEvalFuncCounter<FlowShop> & do_make_eval(eoParser& _parser, eoState& _state) +00030 { +00031 // benchmark file name +00032 std::string benchmarkFileName = _parser.getORcreateParam(std::string(), "BenchmarkFile", "Benchmark file name (benchmarks are available at www.lifl.fr/~liefooga/benchmarks)", 'B',"Representation", true).value(); +00033 if (benchmarkFileName == "") { +00034 std::string stmp = "*** Missing name of the benchmark file\n"; +00035 stmp += " Type '-B=the_benchmark_file_name' or '--BenchmarkFile=the_benchmark_file_name'\n"; +00036 stmp += " Benchmarks files are available at www.lifl.fr/~liefooga/benchmarks"; +00037 throw std::runtime_error(stmp.c_str()); +00038 } +00039 // reading of the parameters contained in the benchmark file +00040 FlowShopBenchmarkParser fParser(benchmarkFileName); +00041 unsigned int M = fParser.getM(); +00042 unsigned int N = fParser.getN(); +00043 std::vector< std::vector<unsigned int> > p = fParser.getP(); +00044 std::vector<unsigned int> d = fParser.getD(); +00045 // build of the initializer (a pointer, stored in the eoState) +00046 FlowShopEval* plainEval = new FlowShopEval(M, N, p, d); +00047 // turn that object into an evaluation counter +00048 eoEvalFuncCounter<FlowShop>* eval = new eoEvalFuncCounter<FlowShop> (* plainEval); +00049 // store in state +00050 _state.storeFunctor(eval); +00051 // and return a reference +00052 return *eval; +00053 } +00054 +00055 #endif /*MAKE_EVAL_FLOWSHOP_H_*/ +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/make__genotype__FlowShop_8h-source.html b/trunk/paradiseo-moeo/doc/html/make__genotype__FlowShop_8h-source.html
new file mode 100644
index 000000000..51c9704e5
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/make__genotype__FlowShop_8h-source.html
@@ -0,0 +1,76 @@
+
+
+00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- +00002 +00003 //----------------------------------------------------------------------------- +00004 // make_genotype_FlowShop.h +00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +00006 /* +00007 This library... +00008 +00009 Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr +00010 */ +00011 //----------------------------------------------------------------------------- +00012 +00013 #ifndef MAKE_GENOTYPE_FLOWSHOP_H_ +00014 #define MAKE_GENOTYPE_FLOWSHOP_H_ +00015 +00016 #include <utils/eoParser.h> +00017 #include <utils/eoState.h> +00018 #include <FlowShop.h> +00019 #include <FlowShopInit.h> +00020 #include <FlowShopBenchmarkParser.h> +00021 +00022 /* +00023 * This function creates an eoInit<eoFlowShop> that can later be used to initialize the population (see make_pop.h). +00024 * @param eoParser& _parser to get user parameters +00025 * @param eoState& _state to store the memory +00026 */ +00027 eoInit<FlowShop> & do_make_genotype(eoParser& _parser, eoState& _state) +00028 { +00029 // benchmark file name +00030 std::string benchmarkFileName = _parser.getORcreateParam(std::string(), "BenchmarkFile", "Benchmark file name (benchmarks are available at www.lifl.fr/~liefooga/benchmarks/)", 'B',"Representation", true).value(); +00031 if (benchmarkFileName == "") { +00032 std::string stmp = "*** Missing name of the benchmark file\n"; +00033 stmp += " Type '-B=the_benchmark_file_name' or '--BenchmarkFile=the_benchmark_file_name'\n"; +00034 stmp += " Benchmarks files are available at www.lifl.fr/~liefooga/benchmarks"; +00035 throw std::runtime_error(stmp.c_str()); +00036 } +00037 // reading of number of jobs to schedule contained in the benchmark file +00038 FlowShopBenchmarkParser fParser(benchmarkFileName); +00039 unsigned int N = fParser.getN(); +00040 // build of the initializer (a pointer, stored in the eoState) +00041 eoInit<FlowShop>* init = new FlowShopInit(N); +00042 // store in state +00043 _state.storeFunctor(init); +00044 // and return a reference +00045 return *init; +00046 } +00047 +00048 #endif /*MAKE_GENOTYPE_FLOWSHOP_H_*/ +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/make__ls__moeo_8h-source.html b/trunk/paradiseo-moeo/doc/html/make__ls__moeo_8h-source.html
new file mode 100644
index 000000000..c61f1774b
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/make__ls__moeo_8h-source.html
@@ -0,0 +1,136 @@
+
+
+00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- +00002 +00003 //----------------------------------------------------------------------------- +00004 // make_ls_moeo.h +00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +00006 /* +00007 This library... +00008 +00009 Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr +00010 */ +00011 //----------------------------------------------------------------------------- +00012 +00013 #ifndef MAKE_LS_MOEO_H_ +00014 #define MAKE_LS_MOEO_H_ +00015 +00016 #include <eoContinue.h> +00017 #include <eoEvalFunc.h> +00018 #include <eoGenOp.h> +00019 #include <utils/eoParser.h> +00020 #include <utils/eoState.h> +00021 #include <algo/moeoIBMOLS.h> +00022 #include <algo/moeoIteratedIBMOLS.h> +00023 #include <algo/moeoLS.h> +00024 #include <archive/moeoArchive.h> +00025 #include <fitness/moeoBinaryIndicatorBasedFitnessAssignment.h> +00026 #include <fitness/moeoExpBinaryIndicatorBasedFitnessAssignment.h> +00027 #include <metric/moeoNormalizedSolutionVsSolutionBinaryMetric.h> +00028 #include <move/moeoMoveIncrEval.h> +00029 +00043 template < class MOEOT, class Move > +00044 moeoLS < MOEOT, eoPop<MOEOT> & > & do_make_ls_moeo ( +00045 eoParser & _parser, +00046 eoState & _state, +00047 eoEvalFunc < MOEOT > & _eval, +00048 moeoMoveIncrEval < Move > & _moveIncrEval, +00049 eoContinue < MOEOT > & _continue, +00050 eoMonOp < MOEOT > & _op, +00051 eoMonOp < MOEOT > & _opInit, +00052 moMoveInit < Move > & _moveInit, +00053 moNextMove < Move > & _nextMove, +00054 moeoArchive < MOEOT > & _archive +00055 ) +00056 { +00057 /* the objective vector type */ +00058 typedef typename MOEOT::ObjectiveVector ObjectiveVector; +00059 /* the fitness assignment strategy */ +00060 std::string & fitnessParam = _parser.getORcreateParam(std::string("IndicatorBased"), "fitness", +00061 "Fitness assignment strategy parameter: IndicatorBased...", 'F', +00062 "Evolution Engine").value(); +00063 std::string & indicatorParam = _parser.getORcreateParam(std::string("Epsilon"), "indicator", +00064 "Binary indicator to use with the IndicatorBased assignment: Epsilon, Hypervolume", 'i', +00065 "Evolution Engine").value(); +00066 double rho = _parser.getORcreateParam(1.1, "rho", "reference point for the hypervolume indicator", +00067 'r', "Evolution Engine").value(); +00068 double kappa = _parser.getORcreateParam(0.05, "kappa", "Scaling factor kappa for IndicatorBased", +00069 'k', "Evolution Engine").value(); +00070 moeoBinaryIndicatorBasedFitnessAssignment < MOEOT > * fitnessAssignment; +00071 if (fitnessParam == std::string("IndicatorBased")) +00072 { +00073 // metric +00074 moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > *metric; +00075 if (indicatorParam == std::string("Epsilon")) +00076 { +00077 metric = new moeoAdditiveEpsilonBinaryMetric < ObjectiveVector >; +00078 } +00079 else if (indicatorParam == std::string("Hypervolume")) +00080 { +00081 metric = new moeoHypervolumeBinaryMetric < ObjectiveVector > (rho); +00082 } +00083 else +00084 { +00085 std::string stmp = std::string("Invalid binary quality indicator: ") + indicatorParam; +00086 throw std::runtime_error(stmp.c_str()); +00087 } +00088 fitnessAssignment = new moeoExpBinaryIndicatorBasedFitnessAssignment < MOEOT> (*metric, kappa); +00089 } +00090 else +00091 { +00092 std::string stmp = std::string("Invalid fitness assignment strategy: ") + fitnessParam; +00093 throw std::runtime_error(stmp.c_str()); +00094 } +00095 _state.storeFunctor(fitnessAssignment); +00096 // number of iterations +00097 unsigned int n = _parser.getORcreateParam(1, "n", "Number of iterations for population Initialization", 'n', "Evolution Engine").value(); +00098 // LS +00099 std::string & lsParam = _parser.getORcreateParam(std::string("I-IBMOLS"), "ls", +00100 "Local Search: IBMOLS, I-IBMOLS (Iterated-IBMOLS)...", 'L', +00101 "Evolution Engine").value(); +00102 moeoLS < MOEOT, eoPop<MOEOT> & > * ls; +00103 if (lsParam == std::string("IBMOLS")) +00104 { +00105 ls = new moeoIBMOLS < MOEOT, Move > (_moveInit, _nextMove, _eval, _moveIncrEval, *fitnessAssignment, _continue);; +00106 } +00107 else if (lsParam == std::string("I-IBMOLS")) +00108 { +00109 ls = new moeoIteratedIBMOLS < MOEOT, Move > (_moveInit, _nextMove, _eval, _moveIncrEval, *fitnessAssignment, _continue, _op, _opInit, n); +00110 } +00111 else +00112 { +00113 std::string stmp = std::string("Invalid fitness assignment strategy: ") + fitnessParam; +00114 throw std::runtime_error(stmp.c_str()); +00115 } +00116 _state.storeFunctor(ls); +00117 // that's it ! +00118 return *ls; +00119 } +00120 +00121 #endif /*MAKE_LS_MOEO_H_*/ +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/make__op__FlowShop_8h-source.html b/trunk/paradiseo-moeo/doc/html/make__op__FlowShop_8h-source.html
new file mode 100644
index 000000000..55d792e9d
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/make__op__FlowShop_8h-source.html
@@ -0,0 +1,130 @@
+
+
+00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- +00002 +00003 //----------------------------------------------------------------------------- +00004 // make_op_FlowShop.h +00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +00006 /* +00007 This library... +00008 +00009 Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr +00010 */ +00011 //----------------------------------------------------------------------------- +00012 +00013 #ifndef MAKE_OP_FLOWSHOP_H_ +00014 #define MAKE_OP_FLOWSHOP_H_ +00015 +00016 #include <utils/eoParser.h> +00017 #include <utils/eoState.h> +00018 #include <eoOp.h> +00019 #include <eoGenOp.h> +00020 #include <eoCloneOps.h> +00021 #include <eoOpContainer.h> +00022 #include <eoProportionalCombinedOp.h> +00023 #include <FlowShopOpCrossoverQuad.h> +00024 #include <FlowShopOpMutationShift.h> +00025 #include <FlowShopOpMutationExchange.h> +00026 +00027 /* +00028 * This function builds the operators that will be applied to the eoFlowShop +00029 * @param eoParameterLoader& _parser to get user parameters +00030 * @param eoState& _state to store the memory +00031 */ +00032 eoGenOp<FlowShop> & do_make_op(eoParameterLoader& _parser, eoState& _state) +00033 { +00034 +00036 // Variation operators +00038 +00039 // the crossover +00041 +00042 // a first crossover +00043 eoQuadOp<FlowShop> *cross = new FlowShopOpCrossoverQuad; +00044 // store in the state +00045 _state.storeFunctor(cross); +00046 +00047 // relative rate in the combination +00048 double cross1Rate = _parser.createParam(1.0, "crossRate", "Relative rate for the only crossover", 0, "Variation Operators").value(); +00049 // creation of the combined operator with this one +00050 eoPropCombinedQuadOp<FlowShop> *propXover = new eoPropCombinedQuadOp<FlowShop>(*cross, cross1Rate); +00051 // store in the state +00052 _state.storeFunctor(propXover); +00053 +00054 +00055 // the mutation +00057 +00058 // a first mutation : the shift mutation +00059 eoMonOp<FlowShop> *mut = new FlowShopOpMutationShift; +00060 _state.storeFunctor(mut); +00061 // its relative rate in the combination +00062 double mut1Rate = _parser.createParam(0.5, "shiftMutRate", "Relative rate for shift mutation", 0, "Variation Operators").value(); +00063 // creation of the combined operator with this one +00064 eoPropCombinedMonOp<FlowShop> *propMutation = new eoPropCombinedMonOp<FlowShop>(*mut, mut1Rate); +00065 _state.storeFunctor(propMutation); +00066 +00067 // a second mutation : the exchange mutation +00068 mut = new FlowShopOpMutationExchange; +00069 _state.storeFunctor(mut); +00070 // its relative rate in the combination +00071 double mut2Rate = _parser.createParam(0.5, "exchangeMutRate", "Relative rate for exchange mutation", 0, "Variation Operators").value(); +00072 // addition of this one to the combined operator +00073 propMutation -> add(*mut, mut2Rate); +00074 +00075 // end of crossover and mutation definitions +00077 +00078 // First read the individual level parameters +00079 eoValueParam<double>& pCrossParam = _parser.createParam(0.25, "pCross", "Probability of Crossover", 'c', "Variation Operators" ); +00080 // minimum check +00081 if ( (pCrossParam.value() < 0) || (pCrossParam.value() > 1) ) +00082 throw std::runtime_error("Invalid pCross"); +00083 +00084 eoValueParam<double>& pMutParam = _parser.createParam(0.35, "pMut", "Probability of Mutation", 'm', "Variation Operators" ); +00085 // minimum check +00086 if ( (pMutParam.value() < 0) || (pMutParam.value() > 1) ) +00087 throw std::runtime_error("Invalid pMut"); +00088 +00089 // the crossover - with probability pCross +00090 eoProportionalOp<FlowShop> * propOp = new eoProportionalOp<FlowShop> ; +00091 _state.storeFunctor(propOp); +00092 eoQuadOp<FlowShop> *ptQuad = new eoQuadCloneOp<FlowShop>; +00093 _state.storeFunctor(ptQuad); +00094 propOp -> add(*propXover, pCrossParam.value()); // crossover, with proba pcross +00095 propOp -> add(*ptQuad, 1-pCrossParam.value()); // nothing, with proba 1-pcross +00096 +00097 // now the sequential +00098 eoSequentialOp<FlowShop> *op = new eoSequentialOp<FlowShop>; +00099 _state.storeFunctor(op); +00100 op -> add(*propOp, 1.0); // always do combined crossover +00101 op -> add(*propMutation, pMutParam.value()); // then mutation, with proba pmut +00102 +00103 // return a reference +00104 return *op; +00105 } +00106 +00107 #endif /*MAKE_OP_FLOWSHOP_H_*/ +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/moeoIBMOLS_8h-source.html b/trunk/paradiseo-moeo/doc/html/moeoIBMOLS_8h-source.html
new file mode 100644
index 000000000..3b87f592f
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/moeoIBMOLS_8h-source.html
@@ -0,0 +1,469 @@
+
+
+00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- +00002 +00003 //----------------------------------------------------------------------------- +00004 // moeoIBMOLS.h +00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +00006 /* +00007 This library... +00008 +00009 Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr +00010 */ +00011 //----------------------------------------------------------------------------- +00012 +00013 #ifndef MOEOIBMOLS_H_ +00014 #define MOEOIBMOLS_H_ +00015 +00016 #include <math.h> +00017 #include <eoContinue.h> +00018 #include <eoEvalFunc.h> +00019 #include <eoPop.h> +00020 #include <moMove.h> +00021 #include <moMoveInit.h> +00022 #include <moNextMove.h> +00023 #include <algo/moeoLS.h> +00024 #include <archive/moeoArchive.h> +00025 #include <fitness/moeoBinaryIndicatorBasedFitnessAssignment.h> +00026 #include <move/moeoMoveIncrEval.h> +00027 +00032 template < class MOEOT, class Move > +00033 class moeoIBMOLS : public moeoLS < MOEOT, eoPop < MOEOT > & > +00034 { +00035 public: +00036 +00038 typedef typename MOEOT::ObjectiveVector ObjectiveVector; +00039 +00040 +00050 moeoIBMOLS( +00051 moMoveInit < Move > & _moveInit, +00052 moNextMove < Move > & _nextMove, +00053 eoEvalFunc < MOEOT > & _eval, +00054 moeoMoveIncrEval < Move > & _moveIncrEval, +00055 moeoBinaryIndicatorBasedFitnessAssignment < MOEOT > & _fitnessAssignment, +00056 eoContinue < MOEOT > & _continuator +00057 ) : +00058 moveInit(_moveInit), +00059 nextMove(_nextMove), +00060 eval(_eval), +00061 moveIncrEval(_moveIncrEval), +00062 fitnessAssignment (_fitnessAssignment), +00063 continuator (_continuator) +00064 {} +00065 +00066 +00073 void operator() (eoPop < MOEOT > & _pop, moeoArchive < MOEOT > & _arch) +00074 { +00075 // evaluation of the objective values +00076 /* +00077 for (unsigned int i=0; i<_pop.size(); i++) +00078 { +00079 eval(_pop[i]); +00080 } +00081 */ +00082 // fitness assignment for the whole population +00083 fitnessAssignment(_pop); +00084 // creation of a local archive +00085 moeoArchive < MOEOT > archive; +00086 // creation of another local archive (for the stopping criteria) +00087 moeoArchive < MOEOT > previousArchive; +00088 // update the archive with the initial population +00089 archive.update(_pop); +00090 do +00091 { +00092 previousArchive.update(archive); +00093 oneStep(_pop); +00094 archive.update(_pop); +00095 } while ( (! archive.equals(previousArchive)) && (continuator(_arch)) ); +00096 _arch.update(archive); +00097 } +00098 +00099 +00100 private: +00101 +00103 moMoveInit < Move > & moveInit; +00105 moNextMove < Move > & nextMove; +00107 eoEvalFunc < MOEOT > & eval; +00109 moeoMoveIncrEval < Move > & moveIncrEval; +00111 moeoBinaryIndicatorBasedFitnessAssignment < MOEOT > & fitnessAssignment; +00113 eoContinue < MOEOT > & continuator; +00114 +00115 +00120 void oneStep (eoPop < MOEOT > & _pop) +00121 { +00122 // the move +00123 Move move; +00124 // the objective vector and the fitness of the current solution +00125 ObjectiveVector x_objVec; +00126 double x_fitness; +00127 // the index, the objective vector and the fitness of the worst solution in the population (-1 implies that the worst is the newly created one) +00128 int worst_idx; +00129 ObjectiveVector worst_objVec; +00130 double worst_fitness; +00132 // the indexes and the objective vectors of the extreme non-dominated points +00133 int ext_0_idx, ext_1_idx; +00134 ObjectiveVector ext_0_objVec, ext_1_objVec; +00135 unsigned int ind; +00137 // the index of the current solution to be explored +00138 unsigned int i=0; +00139 // initilization of the move for the first individual +00140 moveInit(move, _pop[i]); +00141 while (i<_pop.size() && continuator(_pop)) +00142 { +00143 // x = one neigbour of pop[i] +00144 // evaluate x in the objective space +00145 x_objVec = moveIncrEval(move, _pop[i]); +00146 // update every fitness values to take x into account and compute the fitness of x +00147 x_fitness = fitnessAssignment.updateByAdding(_pop, x_objVec); +00148 +00152 // extreme solutions (min only!) +00153 ext_0_idx = -1; +00154 ext_0_objVec = x_objVec; +00155 ext_1_idx = -1; +00156 ext_1_objVec = x_objVec; +00157 for (unsigned int k=0; k<_pop.size(); k++) +00158 { +00159 // ext_0 +00160 if (_pop[k].objectiveVector()[0] < ext_0_objVec[0]) +00161 { +00162 ext_0_idx = k; +00163 ext_0_objVec = _pop[k].objectiveVector(); +00164 } +00165 else if ( (_pop[k].objectiveVector()[0] == ext_0_objVec[0]) && (_pop[k].objectiveVector()[1] < ext_0_objVec[1]) ) +00166 { +00167 ext_0_idx = k; +00168 ext_0_objVec = _pop[k].objectiveVector(); +00169 } +00170 // ext_1 +00171 else if (_pop[k].objectiveVector()[1] < ext_1_objVec[1]) +00172 { +00173 ext_1_idx = k; +00174 ext_1_objVec = _pop[k].objectiveVector(); +00175 } +00176 else if ( (_pop[k].objectiveVector()[1] == ext_1_objVec[1]) && (_pop[k].objectiveVector()[0] < ext_1_objVec[0]) ) +00177 { +00178 ext_1_idx = k; +00179 ext_1_objVec = _pop[k].objectiveVector(); +00180 } +00181 } +00182 // worst init +00183 if (ext_0_idx == -1) +00184 { +00185 ind = 0; +00186 while (ind == ext_1_idx) +00187 { +00188 ind++; +00189 } +00190 worst_idx = ind; +00191 worst_objVec = _pop[ind].objectiveVector(); +00192 worst_fitness = _pop[ind].fitness(); +00193 } +00194 else if (ext_1_idx == -1) +00195 { +00196 ind = 0; +00197 while (ind == ext_0_idx) +00198 { +00199 ind++; +00200 } +00201 worst_idx = ind; +00202 worst_objVec = _pop[ind].objectiveVector(); +00203 worst_fitness = _pop[ind].fitness(); +00204 } +00205 else +00206 { +00207 worst_idx = -1; +00208 worst_objVec = x_objVec; +00209 worst_fitness = x_fitness; +00210 } +00214 +00215 // who is the worst ? +00216 for (unsigned int j=0; j<_pop.size(); j++) +00217 { +00218 if ( (j!=ext_0_idx) && (j!=ext_1_idx) ) +00219 { +00220 if (_pop[j].fitness() < worst_fitness) +00221 { +00222 worst_idx = j; +00223 worst_objVec = _pop[j].objectiveVector(); +00224 worst_fitness = _pop[j].fitness(); +00225 } +00226 } +00227 } +00228 // if the worst solution is the new one +00229 if (worst_idx == -1) +00230 { +00231 // if all its neighbours have been explored, +00232 // let's explore the neighborhoud of the next individual +00233 if (! nextMove(move, _pop[i])) +00234 { +00235 i++; +00236 if (i<_pop.size()) +00237 { +00238 // initilization of the move for the next individual +00239 moveInit(move, _pop[i]); +00240 } +00241 } +00242 } +00243 // if the worst solution is located before _pop[i] +00244 else if (worst_idx <= i) +00245 { +00246 // the new solution takes place insteed of _pop[worst_idx] +00247 _pop[worst_idx] = _pop[i]; +00248 move(_pop[worst_idx]); +00249 _pop[worst_idx].objectiveVector(x_objVec); +00250 _pop[worst_idx].fitness(x_fitness); +00251 // let's explore the neighborhoud of the next individual +00252 i++; +00253 if (i<_pop.size()) +00254 { +00255 // initilization of the move for the next individual +00256 moveInit(move, _pop[i]); +00257 } +00258 } +00259 // if the worst solution is located after _pop[i] +00260 else if (worst_idx > i) +00261 { +00262 // the new solution takes place insteed of _pop[i+1] and _pop[worst_idx] is deleted +00263 _pop[worst_idx] = _pop[i+1]; +00264 _pop[i+1] = _pop[i]; +00265 move(_pop[i+1]); +00266 _pop[i+1].objectiveVector(x_objVec); +00267 _pop[i+1].fitness(x_fitness); +00268 // let's explore the neighborhoud of the individual _pop[i+2] +00269 i += 2; +00270 if (i<_pop.size()) +00271 { +00272 // initilization of the move for the next individual +00273 moveInit(move, _pop[i]); +00274 } +00275 } +00276 // update fitness values +00277 fitnessAssignment.updateByDeleting(_pop, worst_objVec); +00278 } +00279 } +00280 +00281 +00282 +00283 +00284 +00285 +00286 +00287 +00288 +00289 +00290 +00291 +00292 +00293 // INUTILE !!!! +00294 +00295 +00296 +00297 +00298 +00299 +00304 void new_oneStep (eoPop < MOEOT > & _pop) +00305 { +00306 // the move +00307 Move move; +00308 // the objective vector and the fitness of the current solution +00309 ObjectiveVector x_objVec; +00310 double x_fitness; +00311 // the index, the objective vector and the fitness of the worst solution in the population (-1 implies that the worst is the newly created one) +00312 int worst_idx; +00313 ObjectiveVector worst_objVec; +00314 double worst_fitness; +00316 // the index of the extreme non-dominated points +00317 int ext_0_idx, ext_1_idx; +00318 unsigned int ind; +00320 // the index current of the current solution to be explored +00321 unsigned int i=0; +00322 // initilization of the move for the first individual +00323 moveInit(move, _pop[i]); +00324 while (i<_pop.size() && continuator(_pop)) +00325 { +00326 // x = one neigbour of pop[i] +00327 // evaluate x in the objective space +00328 x_objVec = moveIncrEval(move, _pop[i]); +00329 // update every fitness values to take x into account and compute the fitness of x +00330 x_fitness = fitnessAssignment.updateByAdding(_pop, x_objVec); +00331 +00335 // extremes solutions +00336 OneObjectiveComparator comp0(0); +00337 ext_0_idx = std::min_element(_pop.begin(), _pop.end(), comp0) - _pop.begin(); +00338 OneObjectiveComparator comp1(1); +00339 ext_1_idx = std::min_element(_pop.begin(), _pop.end(), comp1) - _pop.begin(); +00340 // new = extreme ? +00341 if (x_objVec[0] < _pop[ext_0_idx].objectiveVector()[0]) +00342 { +00343 ext_0_idx = -1; +00344 } +00345 else if ( (x_objVec[0] == _pop[ext_0_idx].objectiveVector()[0]) && (x_objVec[1] < _pop[ext_0_idx].objectiveVector()[1]) ) +00346 { +00347 ext_0_idx = -1; +00348 } +00349 else if (x_objVec[1] < _pop[ext_1_idx].objectiveVector()[1]) +00350 { +00351 ext_1_idx = -1; +00352 } +00353 else if ( (x_objVec[1] == _pop[ext_1_idx].objectiveVector()[1]) && (x_objVec[0] < _pop[ext_1_idx].objectiveVector()[0]) ) +00354 { +00355 ext_1_idx = -1; +00356 } +00357 // worst init +00358 if (ext_0_idx == -1) +00359 { +00360 ind = 0; +00361 while (ind == ext_1_idx) +00362 { +00363 ind++; +00364 } +00365 worst_idx = ind; +00366 worst_objVec = _pop[ind].objectiveVector(); +00367 worst_fitness = _pop[ind].fitness(); +00368 } +00369 else if (ext_1_idx == -1) +00370 { +00371 ind = 0; +00372 while (ind == ext_0_idx) +00373 { +00374 ind++; +00375 } +00376 worst_idx = ind; +00377 worst_objVec = _pop[ind].objectiveVector(); +00378 worst_fitness = _pop[ind].fitness(); +00379 } +00380 else +00381 { +00382 worst_idx = -1; +00383 worst_objVec = x_objVec; +00384 worst_fitness = x_fitness; +00385 } +00389 +00390 // who is the worst ? +00391 for (unsigned int j=0; j<_pop.size(); j++) +00392 { +00393 if ( (j!=ext_0_idx) && (j!=ext_1_idx) ) +00394 { +00395 if (_pop[j].fitness() < worst_fitness) +00396 { +00397 worst_idx = j; +00398 worst_objVec = _pop[j].objectiveVector(); +00399 worst_fitness = _pop[j].fitness(); +00400 } +00401 } +00402 } +00403 // if the worst solution is the new one +00404 if (worst_idx == -1) +00405 { +00406 // if all its neighbours have been explored, +00407 // let's explore the neighborhoud of the next individual +00408 if (! nextMove(move, _pop[i])) +00409 { +00410 i++; +00411 if (i<_pop.size()) +00412 { +00413 // initilization of the move for the next individual +00414 moveInit(move, _pop[i]); +00415 } +00416 } +00417 } +00418 // if the worst solution is located before _pop[i] +00419 else if (worst_idx <= i) +00420 { +00421 // the new solution takes place insteed of _pop[worst_idx] +00422 _pop[worst_idx] = _pop[i]; +00423 move(_pop[worst_idx]); +00424 _pop[worst_idx].objectiveVector(x_objVec); +00425 _pop[worst_idx].fitness(x_fitness); +00426 // let's explore the neighborhoud of the next individual +00427 i++; +00428 if (i<_pop.size()) +00429 { +00430 // initilization of the move for the next individual +00431 moveInit(move, _pop[i]); +00432 } +00433 } +00434 // if the worst solution is located after _pop[i] +00435 else if (worst_idx > i) +00436 { +00437 // the new solution takes place insteed of _pop[i+1] and _pop[worst_idx] is deleted +00438 _pop[worst_idx] = _pop[i+1]; +00439 _pop[i+1] = _pop[i]; +00440 move(_pop[i+1]); +00441 _pop[i+1].objectiveVector(x_objVec); +00442 _pop[i+1].fitness(x_fitness); +00443 // let's explore the neighborhoud of the individual _pop[i+2] +00444 i += 2; +00445 if (i<_pop.size()) +00446 { +00447 // initilization of the move for the next individual +00448 moveInit(move, _pop[i]); +00449 } +00450 } +00451 // update fitness values +00452 fitnessAssignment.updateByDeleting(_pop, worst_objVec); +00453 } +00454 } +00455 +00456 +00457 +00458 +00459 +00460 +00462 class OneObjectiveComparator : public moeoComparator < MOEOT > +00463 { +00464 public: +00465 OneObjectiveComparator(unsigned int _obj) : obj(_obj) +00466 { +00467 if (obj > MOEOT::ObjectiveVector::nObjectives()) +00468 { +00469 throw std::runtime_error("Problem with the index of objective in OneObjectiveComparator"); +00470 } +00471 } +00472 const bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2) +00473 { +00474 if (_moeo1.objectiveVector()[obj] < _moeo2.objectiveVector()[obj]) +00475 { +00476 return true; +00477 } +00478 else +00479 { +00480 return (_moeo1.objectiveVector()[obj] == _moeo2.objectiveVector()[obj]) && (_moeo1.objectiveVector()[(obj+1)%2] < _moeo2.objectiveVector()[(obj+1)%2]); +00481 } +00482 } +00483 private: +00484 unsigned int obj; +00485 }; +00487 +00488 +00489 +00490 +00491 }; +00492 +00493 #endif /*MOEOIBMOLS_H_*/ +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/moeoIteratedIBMOLS_8h-source.html b/trunk/paradiseo-moeo/doc/html/moeoIteratedIBMOLS_8h-source.html
new file mode 100644
index 000000000..8f03adb31
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/moeoIteratedIBMOLS_8h-source.html
@@ -0,0 +1,206 @@
+
+
+00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- +00002 +00003 //----------------------------------------------------------------------------- +00004 // moeoIteratedIBMOLS.h +00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +00006 /* +00007 This library... +00008 +00009 Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr +00010 */ +00011 //----------------------------------------------------------------------------- +00012 +00013 #ifndef MOEOITERATEDIBMOLS_H_ +00014 #define MOEOITERATEDIBMOLS_H_ +00015 +00016 #include <eoContinue.h> +00017 #include <eoEvalFunc.h> +00018 #include <eoOp.h> +00019 #include <eoPop.h> +00020 #include <utils/rnd_generators.h> +00021 #include <moMove.h> +00022 #include <moMoveInit.h> +00023 #include <moNextMove.h> +00024 #include <algo/moeoIBMOLS.h> +00025 #include <algo/moeoLS.h> +00026 #include <archive/moeoArchive.h> +00027 #include <fitness/moeoBinaryIndicatorBasedFitnessAssignment.h> +00028 #include <move/moeoMoveIncrEval.h> +00029 +00030 +00031 +00032 //#include <rsCrossQuad.h> +00033 +00034 +00035 +00040 template < class MOEOT, class Move > +00041 class moeoIteratedIBMOLS : public moeoLS < MOEOT, eoPop < MOEOT > & > +00042 { +00043 public: +00044 +00046 typedef typename MOEOT::ObjectiveVector ObjectiveVector; +00047 +00048 +00061 moeoIteratedIBMOLS( +00062 moMoveInit < Move > & _moveInit, +00063 moNextMove < Move > & _nextMove, +00064 eoEvalFunc < MOEOT > & _eval, +00065 moeoMoveIncrEval < Move > & _moveIncrEval, +00066 moeoBinaryIndicatorBasedFitnessAssignment < MOEOT > & _fitnessAssignment, +00067 eoContinue < MOEOT > & _continuator, +00068 eoMonOp < MOEOT > & _monOp, +00069 eoMonOp < MOEOT > & _randomMonOp, +00070 unsigned int _nNoiseIterations=1 +00071 ) : +00072 ibmols(_moveInit, _nextMove, _eval, _moveIncrEval, _fitnessAssignment, _continuator), +00073 eval(_eval), +00074 continuator(_continuator), +00075 monOp(_monOp), +00076 randomMonOp(_randomMonOp), +00077 nNoiseIterations(_nNoiseIterations) +00078 {} +00079 +00080 +00086 void operator() (eoPop < MOEOT > & _pop, moeoArchive < MOEOT > & _arch) +00087 { +00088 _arch.update(_pop); +00089 ibmols(_pop, _arch); +00090 while (continuator(_arch)) +00091 { +00092 // generate new solutions from the archive +00093 generateNewSolutions(_pop, _arch); +00094 // apply the local search (the global archive is updated in the sub-function) +00095 ibmols(_pop, _arch); +00096 } +00097 } +00098 +00099 +00100 private: +00101 +00103 moeoIBMOLS < MOEOT, Move > ibmols; +00105 eoEvalFunc < MOEOT > & eval; +00107 eoContinue < MOEOT > & continuator; +00109 eoMonOp < MOEOT > & monOp; +00111 eoMonOp < MOEOT > & randomMonOp; +00113 unsigned int nNoiseIterations; +00114 +00115 +00121 void generateNewSolutions(eoPop < MOEOT > & _pop, const moeoArchive < MOEOT > & _arch) +00122 { +00123 // shuffle vector for the random selection of individuals +00124 vector<unsigned int> shuffle; +00125 shuffle.resize(std::max(_pop.size(), _arch.size())); +00126 // init shuffle +00127 for (unsigned int i=0; i<shuffle.size(); i++) +00128 { +00129 shuffle[i] = i; +00130 } +00131 // randomize shuffle +00132 UF_random_generator <unsigned int> gen; +00133 std::random_shuffle(shuffle.begin(), shuffle.end(), gen); +00134 // start the creation of new solutions +00135 for (unsigned int i=0; i<_pop.size(); i++) +00136 { +00137 if (shuffle[i] < _arch.size()) // the given archive contains the individual i +00138 { +00139 // add it to the resulting pop +00140 _pop[i] = _arch[shuffle[i]]; +00141 // apply noise +00142 for (unsigned int j=0; j<nNoiseIterations; j++) +00143 { +00144 monOp(_pop[i]); +00145 } +00146 } +00147 else // a random solution needs to be added +00148 { +00149 // random initialization +00150 randomMonOp(_pop[i]); +00151 } +00152 // evaluation of the new individual +00153 _pop[i].invalidate(); +00154 eval(_pop[i]); +00155 } +00156 } +00157 +00158 +00159 +00160 +00161 +00163 // A DEVELOPPER RAPIDEMENT POUR TESTER AVEC CROSSOVER // +00164 /* +00165 void generateNewSolutions2(eoPop < MOEOT > & _pop, const moeoArchive < MOEOT > & _arch) +00166 { +00167 // here, we must have a QuadOp ! +00168 //eoQuadOp < MOEOT > quadOp; +00169 rsCrossQuad quadOp; +00170 // shuffle vector for the random selection of individuals +00171 vector<unsigned int> shuffle; +00172 shuffle.resize(_arch.size()); +00173 // init shuffle +00174 for (unsigned int i=0; i<shuffle.size(); i++) +00175 { +00176 shuffle[i] = i; +00177 } +00178 // randomize shuffle +00179 UF_random_generator <unsigned int int> gen; +00180 std::random_shuffle(shuffle.begin(), shuffle.end(), gen); +00181 // start the creation of new solutions +00182 unsigned int i=0; +00183 while ((i<_pop.size()-1) && (i<_arch.size()-1)) +00184 { +00185 _pop[i] = _arch[shuffle[i]]; +00186 _pop[i+1] = _arch[shuffle[i+1]]; +00187 // then, apply the operator nIterationsNoise times +00188 for (unsigned int j=0; j<nNoiseIterations; j++) +00189 { +00190 quadOp(_pop[i], _pop[i+1]); +00191 } +00192 eval(_pop[i]); +00193 eval(_pop[i+1]); +00194 i=i+2; +00195 } +00196 // do we have to add some random solutions ? +00197 while (i<_pop.size()) +00198 { +00199 randomMonOp(_pop[i]); +00200 eval(_pop[i]); +00201 i++; +00202 } +00203 } +00204 */ +00206 +00207 +00208 +00209 +00210 +00211 }; +00212 +00213 #endif /*MOEOITERATEDIBMOLS_H_*/ +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/moeoMoveIncrEval_8h-source.html b/trunk/paradiseo-moeo/doc/html/moeoMoveIncrEval_8h-source.html
new file mode 100644
index 000000000..884a87bd0
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/moeoMoveIncrEval_8h-source.html
@@ -0,0 +1,39 @@
+
+
+00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- +00002 +00003 #ifndef _MOEOMOVEINCREVAL_H +00004 #define _MOEOMOVEINCREVAL_H +00005 +00006 #include <eoFunctor.h> +00007 +00008 template < class Move > +00009 class moeoMoveIncrEval : public eoBF < const Move &, const typename Move::EOType &, typename Move::EOType::ObjectiveVector > {}; +00010 +00011 #endif +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/moeoReferencePointIndicatorBasedFitnessAssignment_8h-source.html b/trunk/paradiseo-moeo/doc/html/moeoReferencePointIndicatorBasedFitnessAssignment_8h-source.html
new file mode 100644
index 000000000..0501f0edf
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/moeoReferencePointIndicatorBasedFitnessAssignment_8h-source.html
@@ -0,0 +1,109 @@
+
+
+00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- +00002 +00003 //----------------------------------------------------------------------------- +00004 // moeoReferencePointIndicatorBasedFitnessAssignment.h +00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +00006 /* +00007 This library... +00008 +00009 Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr +00010 */ +00011 //----------------------------------------------------------------------------- +00012 +00013 #ifndef MOEOREFERENCEPOINTINDICATORBASEDFITNESSASSIGNMENT_H_ +00014 #define MOEOREFERENCEPOINTINDICATORBASEDFITNESSASSIGNMENT_H_ +00015 +00016 #include <math.h> +00017 #include <eoPop.h> +00018 #include <fitness/moeoFitnessAssignment.h> +00019 #include <metric/moeoNormalizedSolutionVsSolutionBinaryMetric.h> +00020 +00024 template < class MOEOT > +00025 class moeoReferencePointIndicatorBasedFitnessAssignment : public moeoFitnessAssignment < MOEOT > +00026 { +00027 public: +00028 +00030 typedef typename MOEOT::ObjectiveVector ObjectiveVector; +00031 +00037 moeoReferencePointIndicatorBasedFitnessAssignment (ObjectiveVector & _refPoint, moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric) : +00038 refPoint(_refPoint), metric(_metric) +00039 {} +00040 +00041 +00046 void operator()(eoPop < MOEOT > & _pop) +00047 { +00048 // 1 - setting of the bounds +00049 setup(_pop); +00050 // 2 - setting fitnesses +00051 setFitnesses(_pop); +00052 } +00053 +00054 +00060 void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec) +00061 { +00062 // nothing to do ;-) +00063 } +00064 +00065 +00066 protected: +00067 +00069 ObjectiveVector & refPoint; +00071 moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & metric; +00072 +00073 +00078 void setup(const eoPop < MOEOT > & _pop) +00079 { +00080 double min, max; +00081 for (unsigned int i=0; i<ObjectiveVector::Traits::nObjectives(); i++) +00082 { +00083 min = refPoint[i]; +00084 max = refPoint[i]; +00085 for (unsigned int j=0; j<_pop.size(); j++) +00086 { +00087 min = std::min(min, _pop[j].objectiveVector()[i]); +00088 max = std::max(max, _pop[j].objectiveVector()[i]); +00089 } +00090 // setting of the bounds for the objective i +00091 metric.setup(min, max, i); +00092 } +00093 } +00094 +00099 void setFitnesses(eoPop < MOEOT > & _pop) +00100 { +00101 for (unsigned int i=0; i<_pop.size(); i++) +00102 { +00103 _pop[i].fitness(- metric(_pop[i].objectiveVector(), refPoint) ); +00104 } +00105 } +00106 +00107 }; +00108 +00109 #endif /*MOEOREFERENCEPOINTINDICATORBASEDFITNESSASSIGNMENT_H_*/ +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/pmoeoEA_8h-source.html b/trunk/paradiseo-moeo/doc/html/pmoeoEA_8h-source.html
new file mode 100644
index 000000000..4b15a4c07
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/pmoeoEA_8h-source.html
@@ -0,0 +1,127 @@
+
+
+00001 // "pmoeoEA.h" +00002 +00003 // (c) OPAC Team, LIFL, August 2005 +00004 +00005 /* +00006 Contact: paradiseo-help@lists.gforge.inria.fr +00007 */ +00008 +00009 #ifndef __pmoeoEA_h +00010 #define __pmoeoEA_h +00011 +00012 #include <eoContinue.h> +00013 #include <eoEvalFunc.h> +00014 #include <eoSelect.h> +00015 #include <eoPopEvalFunc.h> +00016 #include <eoReplacement.h> +00017 +00018 #include "peoPopEval.h" +00019 #include "peoTransform.h" +00020 #include "core/runner.h" +00021 #include "core/peo_debug.h" +00022 +00024 +00054 template < class EOT > class peoEA : public Runner { +00055 +00056 public: +00057 +00069 peoEA( +00070 eoContinue< EOT >& __cont, +00071 peoPopEval< EOT >& __pop_eval, +00072 eoSelect< EOT >& __select, +00073 peoTransform< EOT >& __trans, +00074 eoReplacement< EOT >& __replace +00075 ); +00076 +00079 void run(); +00080 +00084 void operator()( eoPop< EOT >& __pop ); +00085 +00086 private: +00087 +00088 +00089 eoContinue< EOT >& cont; +00090 peoPopEval< EOT >& pop_eval; +00091 eoSelect< EOT >& select; +00092 peoTransform< EOT >& trans; +00093 eoReplacement< EOT >& replace; +00094 eoPop< EOT >* pop; +00095 }; +00096 +00097 +00098 template < class EOT > peoEA< EOT > :: peoEA( +00099 +00100 eoContinue< EOT >& __cont, +00101 peoPopEval< EOT >& __pop_eval, +00102 eoSelect< EOT >& __select, +00103 peoTransform< EOT >& __trans, +00104 eoReplacement< EOT >& __replace +00105 +00106 ) : cont( __cont ), pop_eval( __pop_eval ), select( __select ), trans( __trans ), replace( __replace ) +00107 { +00108 +00109 trans.setOwner( *this ); +00110 pop_eval.setOwner( *this ); +00111 } +00112 +00113 +00114 template< class EOT > void peoEA< EOT > :: operator ()( eoPop< EOT >& __pop ) { +00115 +00116 pop = &__pop; +00117 } +00118 +00119 +00120 template< class EOT > void peoEA< EOT > :: run() { +00121 +00122 printDebugMessage( "performing the first evaluation of the population." ); +00123 pop_eval( *pop ); +00124 +00125 do { +00126 +00127 eoPop< EOT > off; +00128 +00129 printDebugMessage( "performing the selection step." ); +00130 select( *pop, off ); +00131 trans( off ); +00132 +00133 printDebugMessage( "performing the evaluation of the population." ); +00134 pop_eval( off ); +00135 +00136 printDebugMessage( "performing the replacement of the population." ); +00137 replace( *pop, off ); +00138 +00139 printDebugMessage( "deciding of the continuation." ); +00140 +00141 } while ( cont( *pop ) ); +00142 } +00143 +00144 +00145 #endif +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/t-moeo_8cpp-source.html b/trunk/paradiseo-moeo/doc/html/t-moeo_8cpp-source.html
new file mode 100644
index 000000000..40719a90e
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/t-moeo_8cpp-source.html
@@ -0,0 +1,47 @@
+
+
+00001 //----------------------------------------------------------------------------- +00002 // t-moeo.cpp +00003 //----------------------------------------------------------------------------- +00004 +00005 #include <core/MOEO.h> // MOEO +00006 +00007 //----------------------------------------------------------------------------- +00008 +00009 +00010 //----------------------------------------------------------------------------- +00011 +00012 int main() +00013 { +00014 std::cout << "Please fill the test" << std::endl; +00015 +00016 return 0; +00017 } +00018 +00019 //----------------------------------------------------------------------------- +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/html/tutorial_2examples_2flowshop_2benchs_2README-source.html b/trunk/paradiseo-moeo/doc/html/tutorial_2examples_2flowshop_2benchs_2README-source.html
new file mode 100644
index 000000000..38fba453c
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/html/tutorial_2examples_2flowshop_2benchs_2README-source.html
@@ -0,0 +1,29 @@
+
+
+00001 Further benchmarks for the bi-objective flow-shop scheduling problem are available at http://www.lifl.fr/~liefooga/benchmarks/ +
1.4.7
+
+
diff --git a/trunk/paradiseo-moeo/doc/latex/classFlowShop.eps b/trunk/paradiseo-moeo/doc/latex/classFlowShop.eps
new file mode 100644
index 000000000..f75958a57
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classFlowShop.eps
@@ -0,0 +1,227 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For:
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 120.968
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 4.13333 def % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 6 def
+/cols 2 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+ /a exch def
+ /b exch def
+ a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+ 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+ /str exch def
+ /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+ 2 setlinewidth
+ newpath
+ exch xspacing mul xoffset add
+ exch yspacing mul
+ moveto
+ boxwidth 0 rlineto
+ 0 boxheight rlineto
+ boxwidth neg 0 rlineto
+ 0 boxheight neg rlineto
+ closepath
+ dup stringwidth pop neg boxwidth add 2 div
+ boxheight fontheight 2 div sub 2 div
+ rmoveto show stroke
+ grestore
+} def
+
+/mark
+{ newpath
+ exch xspacing mul xoffset add boxwidth add
+ exch yspacing mul
+ moveto
+ 0 boxheight 4 div rlineto
+ boxheight neg 4 div boxheight neg 4 div rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/arrow
+{ newpath
+ moveto
+ 3 -8 rlineto
+ -6 0 rlineto
+ 3 8 rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight add
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul disty 2 div sub
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight 2 div sub
+ /y exch def
+ /x exch def
+ newpath
+ x y moveto
+ boxwidth 2 div distx add 0 rlineto
+ stroke
+ 1 eq
+ { newpath x boxwidth 2 div distx add add y moveto
+ -8 3 rlineto
+ 0 -6 rlineto
+ 8 3 rlineto
+ closepath
+ eofill
+ stroke
+ } if
+} def
+
+/vedge
+{
+ /ye exch def
+ /ys exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add dup
+ ys yspacing mul boxheight 2 div sub
+ moveto
+ ye yspacing mul boxheight 2 div sub
+ lineto
+ stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+ /ys exch def
+ /xe exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add
+ ys yspacing mul disty 2 div sub
+ moveto
+ xspacing xe xs sub mul 0
+ rlineto
+ stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(FlowShop) cw
+(moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >) cw
+(MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) cw
+(EO< MOEOObjectiveVector >) cw
+(eoObject) cw
+(eoPersistent) cw
+(eoPrintable) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor
+ boxwidth cols mul distx cols 1 sub mul add
+ boxheight rows mul disty rows 1 sub mul add boundaspect mul
+ max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (FlowShop) 0.5 0 box
+ (moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >) 0.5 1 box
+ (MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) 0.5 2 box
+ (EO< MOEOObjectiveVector >) 0.5 3 box
+ (eoObject) 0 4 box
+ (eoPersistent) 1 4 box
+ (eoPrintable) 1 5 box
+
+% ----- relations -----
+
+solid
+0 0.5 0 out
+solid
+1 0.5 1 in
+solid
+0 0.5 1 out
+solid
+1 0.5 2 in
+solid
+0 0.5 2 out
+solid
+1 0.5 3 in
+solid
+0 0.5 3 out
+solid
+0 1 4 conn
+solid
+1 0 4 in
+solid
+1 1 4 in
+solid
+0 1 4 out
+solid
+1 1 5 in
diff --git a/trunk/paradiseo-moeo/doc/latex/classFlowShop.tex b/trunk/paradiseo-moeo/doc/latex/classFlowShop.tex
new file mode 100644
index 000000000..59a46d8fb
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classFlowShop.tex
@@ -0,0 +1,32 @@
+\section{Flow\-Shop Class Reference}
+\label{classFlowShop}\index{FlowShop@{FlowShop}}
+Structure of the genotype for the flow-shop scheduling problem: a vector of unsigned int int.
+
+
+{\tt \#include $<$Flow\-Shop.h$>$}
+
+Inheritance diagram for Flow\-Shop::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=3.3871cm]{classFlowShop}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item
+std::string \bf{class\-Name} () const \label{classFlowShop_eaab263664f0078082e723a905d430f3}
+
+\begin{CompactList}\small\item\em class name \item\end{CompactList}\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+Structure of the genotype for the flow-shop scheduling problem: a vector of unsigned int int.
+
+
+
+Definition at line 22 of file Flow\-Shop.h.
+
+The documentation for this class was generated from the following files:\begin{CompactItemize}
+\item
+Flow\-Shop.h\item
+Flow\-Shop.cpp\end{CompactItemize}
diff --git a/trunk/paradiseo-moeo/doc/latex/classFlowShopBenchmarkParser.tex b/trunk/paradiseo-moeo/doc/latex/classFlowShopBenchmarkParser.tex
new file mode 100644
index 000000000..b80948da4
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classFlowShopBenchmarkParser.tex
@@ -0,0 +1,110 @@
+\section{Flow\-Shop\-Benchmark\-Parser Class Reference}
+\label{classFlowShopBenchmarkParser}\index{FlowShopBenchmarkParser@{FlowShopBenchmarkParser}}
+Class to handle parameters of a flow-shop instance from a benchmark file.
+
+
+{\tt \#include $<$Flow\-Shop\-Benchmark\-Parser.h$>$}
+
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item
+\bf{Flow\-Shop\-Benchmark\-Parser} (const std::string \_\-benchmark\-File\-Name)
+\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item
+const unsigned int \bf{get\-M} ()\label{classFlowShopBenchmarkParser_8d5042c2f8727e235f94c947b2ba00a5}
+
+\begin{CompactList}\small\item\em the number of machines \item\end{CompactList}\item
+const unsigned int \bf{get\-N} ()\label{classFlowShopBenchmarkParser_fe16df4df5104aee3d792e60bb32a66d}
+
+\begin{CompactList}\small\item\em the number of jobs \item\end{CompactList}\item
+const std::vector$<$ std::vector$<$ unsigned int $>$ $>$ \bf{get\-P} ()\label{classFlowShopBenchmarkParser_2df87bf8a18a55266729ab105955d7bf}
+
+\begin{CompactList}\small\item\em the processing times \item\end{CompactList}\item
+const std::vector$<$ unsigned int $>$ \bf{get\-D} ()\label{classFlowShopBenchmarkParser_b362d0042273be436c55637828d8582d}
+
+\begin{CompactList}\small\item\em the due-dates \item\end{CompactList}\item
+void \bf{print\-On} (std::ostream \&\_\-os) const
+\begin{CompactList}\small\item\em printing. \item\end{CompactList}\end{CompactItemize}
+\subsection*{Private Member Functions}
+\begin{CompactItemize}
+\item
+void \bf{init} (const std::string \_\-benchmark\-File\-Name)
+\begin{CompactList}\small\item\em Initialisation of the parameters with the data contained in the benchmark file. \item\end{CompactList}\end{CompactItemize}
+\subsection*{Private Attributes}
+\begin{CompactItemize}
+\item
+unsigned int \bf{M}\label{classFlowShopBenchmarkParser_4cc02556c751afe32e8800544160c7c7}
+
+\begin{CompactList}\small\item\em number of machines \item\end{CompactList}\item
+unsigned int \bf{N}\label{classFlowShopBenchmarkParser_fb220e40e9f94e3c1d3a7eb437aeffce}
+
+\begin{CompactList}\small\item\em number of jobs \item\end{CompactList}\item
+std::vector$<$ std::vector$<$ unsigned int $>$ $>$ \bf{p}\label{classFlowShopBenchmarkParser_4c1ce3d710b6605ddcc723101b808de5}
+
+\begin{CompactList}\small\item\em p[i][j] = processing time of job j on machine i \item\end{CompactList}\item
+std::vector$<$ unsigned int $>$ \bf{d}\label{classFlowShopBenchmarkParser_8898519f54465b2d23a846053363bf4b}
+
+\begin{CompactList}\small\item\em d[j] = due-date of the job j \item\end{CompactList}\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+Class to handle parameters of a flow-shop instance from a benchmark file.
+
+
+
+Definition at line 23 of file Flow\-Shop\-Benchmark\-Parser.h.
+
+\subsection{Constructor \& Destructor Documentation}
+\index{FlowShopBenchmarkParser@{Flow\-Shop\-Benchmark\-Parser}!FlowShopBenchmarkParser@{FlowShopBenchmarkParser}}
+\index{FlowShopBenchmarkParser@{FlowShopBenchmarkParser}!FlowShopBenchmarkParser@{Flow\-Shop\-Benchmark\-Parser}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}Flow\-Shop\-Benchmark\-Parser::Flow\-Shop\-Benchmark\-Parser (const std::string {\em \_\-benchmark\-File\-Name})}\label{classFlowShopBenchmarkParser_2787b88a1be9d4d37438c557bf32f137}
+
+
+Ctor.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em \_\-benchmark\-File\-Name}]the name of the benchmark file \end{description}
+\end{Desc}
+
+
+Definition at line 16 of file Flow\-Shop\-Benchmark\-Parser.cpp.
+
+References init().
+
+\subsection{Member Function Documentation}
+\index{FlowShopBenchmarkParser@{Flow\-Shop\-Benchmark\-Parser}!printOn@{printOn}}
+\index{printOn@{printOn}!FlowShopBenchmarkParser@{Flow\-Shop\-Benchmark\-Parser}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Flow\-Shop\-Benchmark\-Parser::print\-On (std::ostream \& {\em \_\-os}) const}\label{classFlowShopBenchmarkParser_69c9ba47e774da4b06424a724573265d}
+
+
+printing.
+
+..
+
+Definition at line 46 of file Flow\-Shop\-Benchmark\-Parser.cpp.
+
+References d, M, N, and p.\index{FlowShopBenchmarkParser@{Flow\-Shop\-Benchmark\-Parser}!init@{init}}
+\index{init@{init}!FlowShopBenchmarkParser@{Flow\-Shop\-Benchmark\-Parser}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Flow\-Shop\-Benchmark\-Parser::init (const std::string {\em \_\-benchmark\-File\-Name})\hspace{0.3cm}{\tt [private]}}\label{classFlowShopBenchmarkParser_4e6de6a0ec2859e1a2fb758fb06dc915}
+
+
+Initialisation of the parameters with the data contained in the benchmark file.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em \_\-benchmark\-File\-Name}]the name of the benchmark file \end{description}
+\end{Desc}
+
+
+Definition at line 64 of file Flow\-Shop\-Benchmark\-Parser.cpp.
+
+References d, M, N, and p.
+
+Referenced by Flow\-Shop\-Benchmark\-Parser().
+
+The documentation for this class was generated from the following files:\begin{CompactItemize}
+\item
+Flow\-Shop\-Benchmark\-Parser.h\item
+Flow\-Shop\-Benchmark\-Parser.cpp\end{CompactItemize}
diff --git a/trunk/paradiseo-moeo/doc/latex/classFlowShopEval.eps b/trunk/paradiseo-moeo/doc/latex/classFlowShopEval.eps
new file mode 100644
index 000000000..a523d0b88
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classFlowShopEval.eps
@@ -0,0 +1,215 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For:
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 543.478
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 0.92 def % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 5 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+ /a exch def
+ /b exch def
+ a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+ 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+ /str exch def
+ /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+ 2 setlinewidth
+ newpath
+ exch xspacing mul xoffset add
+ exch yspacing mul
+ moveto
+ boxwidth 0 rlineto
+ 0 boxheight rlineto
+ boxwidth neg 0 rlineto
+ 0 boxheight neg rlineto
+ closepath
+ dup stringwidth pop neg boxwidth add 2 div
+ boxheight fontheight 2 div sub 2 div
+ rmoveto show stroke
+ grestore
+} def
+
+/mark
+{ newpath
+ exch xspacing mul xoffset add boxwidth add
+ exch yspacing mul
+ moveto
+ 0 boxheight 4 div rlineto
+ boxheight neg 4 div boxheight neg 4 div rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/arrow
+{ newpath
+ moveto
+ 3 -8 rlineto
+ -6 0 rlineto
+ 3 8 rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight add
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul disty 2 div sub
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight 2 div sub
+ /y exch def
+ /x exch def
+ newpath
+ x y moveto
+ boxwidth 2 div distx add 0 rlineto
+ stroke
+ 1 eq
+ { newpath x boxwidth 2 div distx add add y moveto
+ -8 3 rlineto
+ 0 -6 rlineto
+ 8 3 rlineto
+ closepath
+ eofill
+ stroke
+ } if
+} def
+
+/vedge
+{
+ /ye exch def
+ /ys exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add dup
+ ys yspacing mul boxheight 2 div sub
+ moveto
+ ye yspacing mul boxheight 2 div sub
+ lineto
+ stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+ /ys exch def
+ /xe exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add
+ ys yspacing mul disty 2 div sub
+ moveto
+ xspacing xe xs sub mul 0
+ rlineto
+ stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(FlowShopEval) cw
+(moeoEvalFunc< FlowShop >) cw
+(eoEvalFunc< FlowShop >) cw
+(eoUF< A1, R >) cw
+(eoFunctorBase) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor
+ boxwidth cols mul distx cols 1 sub mul add
+ boxheight rows mul disty rows 1 sub mul add boundaspect mul
+ max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (FlowShopEval) 0 0 box
+ (moeoEvalFunc< FlowShop >) 0 1 box
+ (eoEvalFunc< FlowShop >) 0 2 box
+ (eoUF< A1, R >) 0 3 box
+ (eoFunctorBase) 0 4 box
+
+% ----- relations -----
+
+solid
+0 0 0 out
+solid
+1 0 1 in
+solid
+0 0 1 out
+solid
+1 0 2 in
+solid
+0 0 2 out
+solid
+1 0 3 in
+solid
+0 0 3 out
+solid
+1 0 4 in
diff --git a/trunk/paradiseo-moeo/doc/latex/classFlowShopEval.tex b/trunk/paradiseo-moeo/doc/latex/classFlowShopEval.tex
new file mode 100644
index 000000000..1e7306dd5
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classFlowShopEval.tex
@@ -0,0 +1,147 @@
+\section{Flow\-Shop\-Eval Class Reference}
+\label{classFlowShopEval}\index{FlowShopEval@{FlowShopEval}}
+Evaluation of the objective vector a (multi-objective) \doxyref{Flow\-Shop}{p.}{classFlowShop} object.
+
+
+{\tt \#include $<$Flow\-Shop\-Eval.h$>$}
+
+Inheritance diagram for Flow\-Shop\-Eval::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=5cm]{classFlowShopEval}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item
+\bf{Flow\-Shop\-Eval} (unsigned int \_\-M, unsigned int \_\-N, const std::vector$<$ std::vector$<$ unsigned int $>$ $>$ \&\_\-p, const std::vector$<$ unsigned int $>$ \&\_\-d)
+\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item
+void \bf{operator()} (\bf{Flow\-Shop} \&\_\-flowshop)
+\begin{CompactList}\small\item\em computation of the multi-objective evaluation of a \doxyref{Flow\-Shop}{p.}{classFlowShop} object \item\end{CompactList}\end{CompactItemize}
+\subsection*{Private Member Functions}
+\begin{CompactItemize}
+\item
+double \bf{makespan} (const \bf{Flow\-Shop} \&\_\-flowshop)
+\begin{CompactList}\small\item\em computation of the makespan \item\end{CompactList}\item
+double \bf{tardiness} (const \bf{Flow\-Shop} \&\_\-flowshop)
+\begin{CompactList}\small\item\em computation of the tardiness \item\end{CompactList}\item
+std::vector$<$ std::vector$<$ unsigned int $>$ $>$ \bf{completion\-Time} (const \bf{Flow\-Shop} \&\_\-flowshop)
+\begin{CompactList}\small\item\em computation of the completion times of a scheduling (for each job on each machine) C[i][j] = completion of the jth job of the scheduling on the ith machine \item\end{CompactList}\end{CompactItemize}
+\subsection*{Private Attributes}
+\begin{CompactItemize}
+\item
+unsigned int \bf{M}\label{classFlowShopEval_9c7c7263d8c04d18d66729f4875d46cd}
+
+\begin{CompactList}\small\item\em number of machines \item\end{CompactList}\item
+unsigned int \bf{N}\label{classFlowShopEval_48c4a108b54c2c949cb649e470c9e8c4}
+
+\begin{CompactList}\small\item\em number of jobs \item\end{CompactList}\item
+std::vector$<$ std::vector$<$ unsigned int $>$ $>$ \bf{p}\label{classFlowShopEval_f4152ec0542e13cbc8f4c4ece284a2b4}
+
+\begin{CompactList}\small\item\em p[i][j] = processing time of job j on machine i \item\end{CompactList}\item
+std::vector$<$ unsigned int $>$ \bf{d}\label{classFlowShopEval_a283f1bfd433ec1bd3a45c46bd6e3ba4}
+
+\begin{CompactList}\small\item\em d[j] = due-date of the job j \item\end{CompactList}\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+Evaluation of the objective vector a (multi-objective) \doxyref{Flow\-Shop}{p.}{classFlowShop} object.
+
+
+
+Definition at line 23 of file Flow\-Shop\-Eval.h.
+
+\subsection{Constructor \& Destructor Documentation}
+\index{FlowShopEval@{Flow\-Shop\-Eval}!FlowShopEval@{FlowShopEval}}
+\index{FlowShopEval@{FlowShopEval}!FlowShopEval@{Flow\-Shop\-Eval}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}Flow\-Shop\-Eval::Flow\-Shop\-Eval (unsigned int {\em \_\-M}, unsigned int {\em \_\-N}, const std::vector$<$ std::vector$<$ unsigned int $>$ $>$ \& {\em \_\-p}, const std::vector$<$ unsigned int $>$ \& {\em \_\-d})}\label{classFlowShopEval_f830293ad66a253a4008937fd6d68fce}
+
+
+Ctor.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em \_\-M}]the number of machines \item[{\em \_\-N}]the number of jobs to schedule \item[{\em \_\-p}]the processing times \item[{\em \_\-d}]the due dates \end{description}
+\end{Desc}
+
+
+Definition at line 16 of file Flow\-Shop\-Eval.cpp.
+
+\subsection{Member Function Documentation}
+\index{FlowShopEval@{Flow\-Shop\-Eval}!operator()@{operator()}}
+\index{operator()@{operator()}!FlowShopEval@{Flow\-Shop\-Eval}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Flow\-Shop\-Eval::operator() (\bf{Flow\-Shop} \& {\em \_\-flowshop})}\label{classFlowShopEval_d6ea74de6e62c2b104b52aa68b5da3a5}
+
+
+computation of the multi-objective evaluation of a \doxyref{Flow\-Shop}{p.}{classFlowShop} object
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em \_\-flowshop}]the \doxyref{Flow\-Shop}{p.}{classFlowShop} object to evaluate \end{description}
+\end{Desc}
+
+
+Definition at line 21 of file Flow\-Shop\-Eval.cpp.
+
+References makespan(), MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::objective\-Vector(), and tardiness().\index{FlowShopEval@{Flow\-Shop\-Eval}!makespan@{makespan}}
+\index{makespan@{makespan}!FlowShopEval@{Flow\-Shop\-Eval}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}double Flow\-Shop\-Eval::makespan (const \bf{Flow\-Shop} \& {\em \_\-flowshop})\hspace{0.3cm}{\tt [private]}}\label{classFlowShopEval_8b383e0c6cfd68fdf61e987b5fc91cf3}
+
+
+computation of the makespan
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em \_\-flowshop}]the genotype to evaluate \end{description}
+\end{Desc}
+
+
+Definition at line 31 of file Flow\-Shop\-Eval.cpp.
+
+References completion\-Time(), M, and N.
+
+Referenced by operator()().\index{FlowShopEval@{Flow\-Shop\-Eval}!tardiness@{tardiness}}
+\index{tardiness@{tardiness}!FlowShopEval@{Flow\-Shop\-Eval}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}double Flow\-Shop\-Eval::tardiness (const \bf{Flow\-Shop} \& {\em \_\-flowshop})\hspace{0.3cm}{\tt [private]}}\label{classFlowShopEval_25d04be8fd17b5589fdac732accaaf9e}
+
+
+computation of the tardiness
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em \_\-flowshop}]the genotype to evaluate \end{description}
+\end{Desc}
+
+
+Definition at line 40 of file Flow\-Shop\-Eval.cpp.
+
+References completion\-Time(), d, M, and N.
+
+Referenced by operator()().\index{FlowShopEval@{Flow\-Shop\-Eval}!completionTime@{completionTime}}
+\index{completionTime@{completionTime}!FlowShopEval@{Flow\-Shop\-Eval}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}std::vector$<$ std::vector$<$ unsigned int $>$ $>$ Flow\-Shop\-Eval::completion\-Time (const \bf{Flow\-Shop} \& {\em \_\-flowshop})\hspace{0.3cm}{\tt [private]}}\label{classFlowShopEval_84cfc6f7bee1c0e4b1a29ca99e3c129b}
+
+
+computation of the completion times of a scheduling (for each job on each machine) C[i][j] = completion of the jth job of the scheduling on the ith machine
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em \_\-flowshop}]the genotype to evaluate \end{description}
+\end{Desc}
+
+
+Definition at line 53 of file Flow\-Shop\-Eval.cpp.
+
+References M, N, and p.
+
+Referenced by makespan(), and tardiness().
+
+The documentation for this class was generated from the following files:\begin{CompactItemize}
+\item
+Flow\-Shop\-Eval.h\item
+Flow\-Shop\-Eval.cpp\end{CompactItemize}
diff --git a/trunk/paradiseo-moeo/doc/latex/classFlowShopInit.eps b/trunk/paradiseo-moeo/doc/latex/classFlowShopInit.eps
new file mode 100644
index 000000000..1ad12f21f
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classFlowShopInit.eps
@@ -0,0 +1,209 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For:
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 615.385
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 0.8125 def % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 4 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+ /a exch def
+ /b exch def
+ a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+ 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+ /str exch def
+ /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+ 2 setlinewidth
+ newpath
+ exch xspacing mul xoffset add
+ exch yspacing mul
+ moveto
+ boxwidth 0 rlineto
+ 0 boxheight rlineto
+ boxwidth neg 0 rlineto
+ 0 boxheight neg rlineto
+ closepath
+ dup stringwidth pop neg boxwidth add 2 div
+ boxheight fontheight 2 div sub 2 div
+ rmoveto show stroke
+ grestore
+} def
+
+/mark
+{ newpath
+ exch xspacing mul xoffset add boxwidth add
+ exch yspacing mul
+ moveto
+ 0 boxheight 4 div rlineto
+ boxheight neg 4 div boxheight neg 4 div rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/arrow
+{ newpath
+ moveto
+ 3 -8 rlineto
+ -6 0 rlineto
+ 3 8 rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight add
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul disty 2 div sub
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight 2 div sub
+ /y exch def
+ /x exch def
+ newpath
+ x y moveto
+ boxwidth 2 div distx add 0 rlineto
+ stroke
+ 1 eq
+ { newpath x boxwidth 2 div distx add add y moveto
+ -8 3 rlineto
+ 0 -6 rlineto
+ 8 3 rlineto
+ closepath
+ eofill
+ stroke
+ } if
+} def
+
+/vedge
+{
+ /ye exch def
+ /ys exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add dup
+ ys yspacing mul boxheight 2 div sub
+ moveto
+ ye yspacing mul boxheight 2 div sub
+ lineto
+ stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+ /ys exch def
+ /xe exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add
+ ys yspacing mul disty 2 div sub
+ moveto
+ xspacing xe xs sub mul 0
+ rlineto
+ stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(FlowShopInit) cw
+(eoInit< FlowShop >) cw
+(eoUF< A1, R >) cw
+(eoFunctorBase) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor
+ boxwidth cols mul distx cols 1 sub mul add
+ boxheight rows mul disty rows 1 sub mul add boundaspect mul
+ max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (FlowShopInit) 0 0 box
+ (eoInit< FlowShop >) 0 1 box
+ (eoUF< A1, R >) 0 2 box
+ (eoFunctorBase) 0 3 box
+
+% ----- relations -----
+
+solid
+0 0 0 out
+solid
+1 0 1 in
+solid
+0 0 1 out
+solid
+1 0 2 in
+solid
+0 0 2 out
+solid
+1 0 3 in
diff --git a/trunk/paradiseo-moeo/doc/latex/classFlowShopInit.tex b/trunk/paradiseo-moeo/doc/latex/classFlowShopInit.tex
new file mode 100644
index 000000000..0ae13d5d8
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classFlowShopInit.tex
@@ -0,0 +1,75 @@
+\section{Flow\-Shop\-Init Class Reference}
+\label{classFlowShopInit}\index{FlowShopInit@{FlowShopInit}}
+Initialization of a random genotype built by the default constructor of the \doxyref{Flow\-Shop}{p.}{classFlowShop} class.
+
+
+{\tt \#include $<$Flow\-Shop\-Init.h$>$}
+
+Inheritance diagram for Flow\-Shop\-Init::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=4cm]{classFlowShopInit}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item
+\bf{Flow\-Shop\-Init} (unsigned int \_\-N)
+\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item
+void \bf{operator()} (\bf{Flow\-Shop} \&\_\-flowshop)
+\begin{CompactList}\small\item\em builds a random genotype \item\end{CompactList}\end{CompactItemize}
+\subsection*{Private Attributes}
+\begin{CompactItemize}
+\item
+unsigned int \bf{N}\label{classFlowShopInit_3bf7c402441e5bba3397377630e6ff4c}
+
+\begin{CompactList}\small\item\em the number of jobs (size of a scheduling vector) \item\end{CompactList}\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+Initialization of a random genotype built by the default constructor of the \doxyref{Flow\-Shop}{p.}{classFlowShop} class.
+
+
+
+Definition at line 22 of file Flow\-Shop\-Init.h.
+
+\subsection{Constructor \& Destructor Documentation}
+\index{FlowShopInit@{Flow\-Shop\-Init}!FlowShopInit@{FlowShopInit}}
+\index{FlowShopInit@{FlowShopInit}!FlowShopInit@{Flow\-Shop\-Init}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}Flow\-Shop\-Init::Flow\-Shop\-Init (unsigned int {\em \_\-N})}\label{classFlowShopInit_8ede459984d5de13c6a181c72cf4551e}
+
+
+Ctor.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em \_\-N}]the number of jobs to schedule \end{description}
+\end{Desc}
+
+
+Definition at line 16 of file Flow\-Shop\-Init.cpp.
+
+\subsection{Member Function Documentation}
+\index{FlowShopInit@{Flow\-Shop\-Init}!operator()@{operator()}}
+\index{operator()@{operator()}!FlowShopInit@{Flow\-Shop\-Init}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Flow\-Shop\-Init::operator() (\bf{Flow\-Shop} \& {\em \_\-flowshop})}\label{classFlowShopInit_3df0d9e3834cdfa494683df7e8646025}
+
+
+builds a random genotype
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em \_\-flowshop}]a genotype that has been default-constructed \end{description}
+\end{Desc}
+
+
+Definition at line 20 of file Flow\-Shop\-Init.cpp.
+
+References MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::invalidate(), N, eo\-Rng::uniform(), and moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$::value().
+
+The documentation for this class was generated from the following files:\begin{CompactItemize}
+\item
+Flow\-Shop\-Init.h\item
+Flow\-Shop\-Init.cpp\end{CompactItemize}
diff --git a/trunk/paradiseo-moeo/doc/latex/classFlowShopObjectiveVectorTraits.eps b/trunk/paradiseo-moeo/doc/latex/classFlowShopObjectiveVectorTraits.eps
new file mode 100644
index 000000000..2884e0a07
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classFlowShopObjectiveVectorTraits.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For:
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 201.005
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 2.4875 def % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+ /a exch def
+ /b exch def
+ a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+ 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+ /str exch def
+ /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+ 2 setlinewidth
+ newpath
+ exch xspacing mul xoffset add
+ exch yspacing mul
+ moveto
+ boxwidth 0 rlineto
+ 0 boxheight rlineto
+ boxwidth neg 0 rlineto
+ 0 boxheight neg rlineto
+ closepath
+ dup stringwidth pop neg boxwidth add 2 div
+ boxheight fontheight 2 div sub 2 div
+ rmoveto show stroke
+ grestore
+} def
+
+/mark
+{ newpath
+ exch xspacing mul xoffset add boxwidth add
+ exch yspacing mul
+ moveto
+ 0 boxheight 4 div rlineto
+ boxheight neg 4 div boxheight neg 4 div rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/arrow
+{ newpath
+ moveto
+ 3 -8 rlineto
+ -6 0 rlineto
+ 3 8 rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight add
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul disty 2 div sub
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight 2 div sub
+ /y exch def
+ /x exch def
+ newpath
+ x y moveto
+ boxwidth 2 div distx add 0 rlineto
+ stroke
+ 1 eq
+ { newpath x boxwidth 2 div distx add add y moveto
+ -8 3 rlineto
+ 0 -6 rlineto
+ 8 3 rlineto
+ closepath
+ eofill
+ stroke
+ } if
+} def
+
+/vedge
+{
+ /ye exch def
+ /ys exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add dup
+ ys yspacing mul boxheight 2 div sub
+ moveto
+ ye yspacing mul boxheight 2 div sub
+ lineto
+ stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+ /ys exch def
+ /xe exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add
+ ys yspacing mul disty 2 div sub
+ moveto
+ xspacing xe xs sub mul 0
+ rlineto
+ stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(FlowShopObjectiveVectorTraits) cw
+(moeoObjectiveVectorTraits) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor
+ boxwidth cols mul distx cols 1 sub mul add
+ boxheight rows mul disty rows 1 sub mul add boundaspect mul
+ max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (FlowShopObjectiveVectorTraits) 0 0 box
+ (moeoObjectiveVectorTraits) 0 1 box
+
+% ----- relations -----
+
+solid
+0 0 0 out
+solid
+1 0 1 in
diff --git a/trunk/paradiseo-moeo/doc/latex/classFlowShopObjectiveVectorTraits.tex b/trunk/paradiseo-moeo/doc/latex/classFlowShopObjectiveVectorTraits.tex
new file mode 100644
index 000000000..828d5a702
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classFlowShopObjectiveVectorTraits.tex
@@ -0,0 +1,67 @@
+\section{Flow\-Shop\-Objective\-Vector\-Traits Class Reference}
+\label{classFlowShopObjectiveVectorTraits}\index{FlowShopObjectiveVectorTraits@{FlowShopObjectiveVectorTraits}}
+Definition of the objective vector traits for multi-objective flow-shop problems.
+
+
+{\tt \#include $<$Flow\-Shop\-Objective\-Vector\-Traits.h$>$}
+
+Inheritance diagram for Flow\-Shop\-Objective\-Vector\-Traits::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2cm]{classFlowShopObjectiveVectorTraits}
+\end{center}
+\end{figure}
+\subsection*{Static Public Member Functions}
+\begin{CompactItemize}
+\item
+static bool \bf{minimizing} (int \_\-i)
+\begin{CompactList}\small\item\em Returns true if the \_\-ith objective have to be minimzed. \item\end{CompactList}\item
+static bool \bf{maximizing} (int \_\-i)
+\begin{CompactList}\small\item\em Returns true if the \_\-ith objective have to be maximzed. \item\end{CompactList}\item
+static unsigned int \bf{n\-Objectives} ()\label{classFlowShopObjectiveVectorTraits_76ebe7639b502980bc683ab404b69c10}
+
+\begin{CompactList}\small\item\em Returns the number of objectives. \item\end{CompactList}\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+Definition of the objective vector traits for multi-objective flow-shop problems.
+
+
+
+Definition at line 21 of file Flow\-Shop\-Objective\-Vector\-Traits.h.
+
+\subsection{Member Function Documentation}
+\index{FlowShopObjectiveVectorTraits@{Flow\-Shop\-Objective\-Vector\-Traits}!minimizing@{minimizing}}
+\index{minimizing@{minimizing}!FlowShopObjectiveVectorTraits@{Flow\-Shop\-Objective\-Vector\-Traits}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}bool Flow\-Shop\-Objective\-Vector\-Traits::minimizing (int {\em \_\-i})\hspace{0.3cm}{\tt [static]}}\label{classFlowShopObjectiveVectorTraits_e1a0f5be1782b9f9ce08128a404a1fa8}
+
+
+Returns true if the \_\-ith objective have to be minimzed.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em \_\-i}]index of the objective \end{description}
+\end{Desc}
+
+
+Definition at line 16 of file Flow\-Shop\-Objective\-Vector\-Traits.cpp.\index{FlowShopObjectiveVectorTraits@{Flow\-Shop\-Objective\-Vector\-Traits}!maximizing@{maximizing}}
+\index{maximizing@{maximizing}!FlowShopObjectiveVectorTraits@{Flow\-Shop\-Objective\-Vector\-Traits}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}bool Flow\-Shop\-Objective\-Vector\-Traits::maximizing (int {\em \_\-i})\hspace{0.3cm}{\tt [static]}}\label{classFlowShopObjectiveVectorTraits_229fbb4cc19d289637891c1b49f3eaba}
+
+
+Returns true if the \_\-ith objective have to be maximzed.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em \_\-i}]index of the objective \end{description}
+\end{Desc}
+
+
+Definition at line 22 of file Flow\-Shop\-Objective\-Vector\-Traits.cpp.
+
+The documentation for this class was generated from the following files:\begin{CompactItemize}
+\item
+Flow\-Shop\-Objective\-Vector\-Traits.h\item
+Flow\-Shop\-Objective\-Vector\-Traits.cpp\end{CompactItemize}
diff --git a/trunk/paradiseo-moeo/doc/latex/classFlowShopOpCrossoverQuad.eps b/trunk/paradiseo-moeo/doc/latex/classFlowShopOpCrossoverQuad.eps
new file mode 100644
index 000000000..aa48795f7
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classFlowShopOpCrossoverQuad.eps
@@ -0,0 +1,215 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For:
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 156.25
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 3.2 def % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 4 def
+/cols 2 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+ /a exch def
+ /b exch def
+ a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+ 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+ /str exch def
+ /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+ 2 setlinewidth
+ newpath
+ exch xspacing mul xoffset add
+ exch yspacing mul
+ moveto
+ boxwidth 0 rlineto
+ 0 boxheight rlineto
+ boxwidth neg 0 rlineto
+ 0 boxheight neg rlineto
+ closepath
+ dup stringwidth pop neg boxwidth add 2 div
+ boxheight fontheight 2 div sub 2 div
+ rmoveto show stroke
+ grestore
+} def
+
+/mark
+{ newpath
+ exch xspacing mul xoffset add boxwidth add
+ exch yspacing mul
+ moveto
+ 0 boxheight 4 div rlineto
+ boxheight neg 4 div boxheight neg 4 div rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/arrow
+{ newpath
+ moveto
+ 3 -8 rlineto
+ -6 0 rlineto
+ 3 8 rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight add
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul disty 2 div sub
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight 2 div sub
+ /y exch def
+ /x exch def
+ newpath
+ x y moveto
+ boxwidth 2 div distx add 0 rlineto
+ stroke
+ 1 eq
+ { newpath x boxwidth 2 div distx add add y moveto
+ -8 3 rlineto
+ 0 -6 rlineto
+ 8 3 rlineto
+ closepath
+ eofill
+ stroke
+ } if
+} def
+
+/vedge
+{
+ /ye exch def
+ /ys exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add dup
+ ys yspacing mul boxheight 2 div sub
+ moveto
+ ye yspacing mul boxheight 2 div sub
+ lineto
+ stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+ /ys exch def
+ /xe exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add
+ ys yspacing mul disty 2 div sub
+ moveto
+ xspacing xe xs sub mul 0
+ rlineto
+ stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(FlowShopOpCrossoverQuad) cw
+(eoQuadOp< FlowShop >) cw
+(eoOp< EOType >) cw
+(eoBF< FlowShop &, FlowShop &, bool >) cw
+(eoFunctorBase) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor
+ boxwidth cols mul distx cols 1 sub mul add
+ boxheight rows mul disty rows 1 sub mul add boundaspect mul
+ max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (FlowShopOpCrossoverQuad) 0.5 0 box
+ (eoQuadOp< FlowShop >) 0.5 1 box
+ (eoOp< EOType >) 0 2 box
+ (eoBF< FlowShop &, FlowShop &, bool >) 1 2 box
+ (eoFunctorBase) 1 3 box
+
+% ----- relations -----
+
+solid
+0 0.5 0 out
+solid
+1 0.5 1 in
+solid
+0 0.5 1 out
+solid
+0 1 2 conn
+solid
+1 0 2 in
+solid
+1 1 2 in
+solid
+0 1 2 out
+solid
+1 1 3 in
diff --git a/trunk/paradiseo-moeo/doc/latex/classFlowShopOpCrossoverQuad.tex b/trunk/paradiseo-moeo/doc/latex/classFlowShopOpCrossoverQuad.tex
new file mode 100644
index 000000000..058ee679e
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classFlowShopOpCrossoverQuad.tex
@@ -0,0 +1,76 @@
+\section{Flow\-Shop\-Op\-Crossover\-Quad Class Reference}
+\label{classFlowShopOpCrossoverQuad}\index{FlowShopOpCrossoverQuad@{FlowShopOpCrossoverQuad}}
+Quadratic crossover operator for flow-shop (modify the both genotypes).
+
+
+{\tt \#include $<$Flow\-Shop\-Op\-Crossover\-Quad.h$>$}
+
+Inheritance diagram for Flow\-Shop\-Op\-Crossover\-Quad::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=4cm]{classFlowShopOpCrossoverQuad}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item
+std::string \bf{class\-Name} () const \label{classFlowShopOpCrossoverQuad_60ac69b87970b7000980f65aa6ead44a}
+
+\begin{CompactList}\small\item\em the class name (used to display statistics) \item\end{CompactList}\item
+bool \bf{operator()} (\bf{Flow\-Shop} \&\_\-flowshop1, \bf{Flow\-Shop} \&\_\-flowshop2)
+\begin{CompactList}\small\item\em eo\-Quad crossover - \_\-flowshop1 and \_\-flowshop2 are the (future) offspring, i.e. \item\end{CompactList}\end{CompactItemize}
+\subsection*{Private Member Functions}
+\begin{CompactItemize}
+\item
+\bf{Flow\-Shop} \bf{generate\-Offspring} (const \bf{Flow\-Shop} \&\_\-parent1, const \bf{Flow\-Shop} \&\_\-parent2, unsigned int \_\-point1, unsigned int \_\-point2)
+\begin{CompactList}\small\item\em generation of an offspring by a 2 points crossover \item\end{CompactList}\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+Quadratic crossover operator for flow-shop (modify the both genotypes).
+
+
+
+Definition at line 22 of file Flow\-Shop\-Op\-Crossover\-Quad.h.
+
+\subsection{Member Function Documentation}
+\index{FlowShopOpCrossoverQuad@{Flow\-Shop\-Op\-Crossover\-Quad}!operator()@{operator()}}
+\index{operator()@{operator()}!FlowShopOpCrossoverQuad@{Flow\-Shop\-Op\-Crossover\-Quad}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}bool Flow\-Shop\-Op\-Crossover\-Quad::operator() (\bf{Flow\-Shop} \& {\em \_\-flowshop1}, \bf{Flow\-Shop} \& {\em \_\-flowshop2})\hspace{0.3cm}{\tt [virtual]}}\label{classFlowShopOpCrossoverQuad_92f70807bea24d3c233af580e2c55e3a}
+
+
+eo\-Quad crossover - \_\-flowshop1 and \_\-flowshop2 are the (future) offspring, i.e.
+
+\_\-copies\_\- of the parents \begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em \_\-flowshop1}]the first parent \item[{\em \_\-flowshop2}]the second parent \end{description}
+\end{Desc}
+
+
+Implements \bf{eo\-BF$<$ Flow\-Shop \&, Flow\-Shop \&, bool $>$}.
+
+Definition at line 22 of file Flow\-Shop\-Op\-Crossover\-Quad.cpp.
+
+References generate\-Offspring(), eo\-Rng::random(), and moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$::value().\index{FlowShopOpCrossoverQuad@{Flow\-Shop\-Op\-Crossover\-Quad}!generateOffspring@{generateOffspring}}
+\index{generateOffspring@{generateOffspring}!FlowShopOpCrossoverQuad@{Flow\-Shop\-Op\-Crossover\-Quad}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\bf{Flow\-Shop} Flow\-Shop\-Op\-Crossover\-Quad::generate\-Offspring (const \bf{Flow\-Shop} \& {\em \_\-parent1}, const \bf{Flow\-Shop} \& {\em \_\-parent2}, unsigned int {\em \_\-point1}, unsigned int {\em \_\-point2})\hspace{0.3cm}{\tt [private]}}\label{classFlowShopOpCrossoverQuad_cbc2f344a0a29861900f4846597564c3}
+
+
+generation of an offspring by a 2 points crossover
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em \_\-parent1}]the first parent \item[{\em \_\-parent2}]the second parent \item[{\em \_\-point1}]the first point \item[{\em \_\-point2}]the second point \end{description}
+\end{Desc}
+
+
+Definition at line 54 of file Flow\-Shop\-Op\-Crossover\-Quad.cpp.
+
+Referenced by operator()().
+
+The documentation for this class was generated from the following files:\begin{CompactItemize}
+\item
+Flow\-Shop\-Op\-Crossover\-Quad.h\item
+Flow\-Shop\-Op\-Crossover\-Quad.cpp\end{CompactItemize}
diff --git a/trunk/paradiseo-moeo/doc/latex/classFlowShopOpMutationExchange.eps b/trunk/paradiseo-moeo/doc/latex/classFlowShopOpMutationExchange.eps
new file mode 100644
index 000000000..bf5f5bbe7
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classFlowShopOpMutationExchange.eps
@@ -0,0 +1,215 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For:
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 203.046
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 2.4625 def % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 4 def
+/cols 2 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+ /a exch def
+ /b exch def
+ a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+ 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+ /str exch def
+ /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+ 2 setlinewidth
+ newpath
+ exch xspacing mul xoffset add
+ exch yspacing mul
+ moveto
+ boxwidth 0 rlineto
+ 0 boxheight rlineto
+ boxwidth neg 0 rlineto
+ 0 boxheight neg rlineto
+ closepath
+ dup stringwidth pop neg boxwidth add 2 div
+ boxheight fontheight 2 div sub 2 div
+ rmoveto show stroke
+ grestore
+} def
+
+/mark
+{ newpath
+ exch xspacing mul xoffset add boxwidth add
+ exch yspacing mul
+ moveto
+ 0 boxheight 4 div rlineto
+ boxheight neg 4 div boxheight neg 4 div rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/arrow
+{ newpath
+ moveto
+ 3 -8 rlineto
+ -6 0 rlineto
+ 3 8 rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight add
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul disty 2 div sub
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight 2 div sub
+ /y exch def
+ /x exch def
+ newpath
+ x y moveto
+ boxwidth 2 div distx add 0 rlineto
+ stroke
+ 1 eq
+ { newpath x boxwidth 2 div distx add add y moveto
+ -8 3 rlineto
+ 0 -6 rlineto
+ 8 3 rlineto
+ closepath
+ eofill
+ stroke
+ } if
+} def
+
+/vedge
+{
+ /ye exch def
+ /ys exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add dup
+ ys yspacing mul boxheight 2 div sub
+ moveto
+ ye yspacing mul boxheight 2 div sub
+ lineto
+ stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+ /ys exch def
+ /xe exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add
+ ys yspacing mul disty 2 div sub
+ moveto
+ xspacing xe xs sub mul 0
+ rlineto
+ stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(FlowShopOpMutationExchange) cw
+(eoMonOp< FlowShop >) cw
+(eoOp< EOType >) cw
+(eoUF< FlowShop &, bool >) cw
+(eoFunctorBase) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor
+ boxwidth cols mul distx cols 1 sub mul add
+ boxheight rows mul disty rows 1 sub mul add boundaspect mul
+ max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (FlowShopOpMutationExchange) 0.5 0 box
+ (eoMonOp< FlowShop >) 0.5 1 box
+ (eoOp< EOType >) 0 2 box
+ (eoUF< FlowShop &, bool >) 1 2 box
+ (eoFunctorBase) 1 3 box
+
+% ----- relations -----
+
+solid
+0 0.5 0 out
+solid
+1 0.5 1 in
+solid
+0 0.5 1 out
+solid
+0 1 2 conn
+solid
+1 0 2 in
+solid
+1 1 2 in
+solid
+0 1 2 out
+solid
+1 1 3 in
diff --git a/trunk/paradiseo-moeo/doc/latex/classFlowShopOpMutationExchange.tex b/trunk/paradiseo-moeo/doc/latex/classFlowShopOpMutationExchange.tex
new file mode 100644
index 000000000..0faf123cc
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classFlowShopOpMutationExchange.tex
@@ -0,0 +1,55 @@
+\section{Flow\-Shop\-Op\-Mutation\-Exchange Class Reference}
+\label{classFlowShopOpMutationExchange}\index{FlowShopOpMutationExchange@{FlowShopOpMutationExchange}}
+Exchange mutation operator for the flow-shop.
+
+
+{\tt \#include $<$Flow\-Shop\-Op\-Mutation\-Exchange.h$>$}
+
+Inheritance diagram for Flow\-Shop\-Op\-Mutation\-Exchange::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=4cm]{classFlowShopOpMutationExchange}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item
+std::string \bf{class\-Name} () const \label{classFlowShopOpMutationExchange_36a926c9fe21346db26fadf1d50c1c7a}
+
+\begin{CompactList}\small\item\em the class name (used to display statistics) \item\end{CompactList}\item
+bool \bf{operator()} (\bf{Flow\-Shop} \&\_\-flowshop)
+\begin{CompactList}\small\item\em modifies the parent with an exchange mutation \item\end{CompactList}\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+Exchange mutation operator for the flow-shop.
+
+
+
+Definition at line 22 of file Flow\-Shop\-Op\-Mutation\-Exchange.h.
+
+\subsection{Member Function Documentation}
+\index{FlowShopOpMutationExchange@{Flow\-Shop\-Op\-Mutation\-Exchange}!operator()@{operator()}}
+\index{operator()@{operator()}!FlowShopOpMutationExchange@{Flow\-Shop\-Op\-Mutation\-Exchange}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}bool Flow\-Shop\-Op\-Mutation\-Exchange::operator() (\bf{Flow\-Shop} \& {\em \_\-flowshop})\hspace{0.3cm}{\tt [virtual]}}\label{classFlowShopOpMutationExchange_bdb2e1d937d788c50f04226265c848bd}
+
+
+modifies the parent with an exchange mutation
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em \_\-flowshop}]the parent genotype (will be modified) \end{description}
+\end{Desc}
+
+
+Implements \bf{eo\-UF$<$ Flow\-Shop \&, bool $>$}.
+
+Definition at line 22 of file Flow\-Shop\-Op\-Mutation\-Exchange.cpp.
+
+References eo\-Rng::random(), and moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$::value().
+
+The documentation for this class was generated from the following files:\begin{CompactItemize}
+\item
+Flow\-Shop\-Op\-Mutation\-Exchange.h\item
+Flow\-Shop\-Op\-Mutation\-Exchange.cpp\end{CompactItemize}
diff --git a/trunk/paradiseo-moeo/doc/latex/classFlowShopOpMutationShift.eps b/trunk/paradiseo-moeo/doc/latex/classFlowShopOpMutationShift.eps
new file mode 100644
index 000000000..02aaa4f09
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classFlowShopOpMutationShift.eps
@@ -0,0 +1,215 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For:
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 225.989
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 2.2125 def % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 4 def
+/cols 2 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+ /a exch def
+ /b exch def
+ a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+ 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+ /str exch def
+ /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+ 2 setlinewidth
+ newpath
+ exch xspacing mul xoffset add
+ exch yspacing mul
+ moveto
+ boxwidth 0 rlineto
+ 0 boxheight rlineto
+ boxwidth neg 0 rlineto
+ 0 boxheight neg rlineto
+ closepath
+ dup stringwidth pop neg boxwidth add 2 div
+ boxheight fontheight 2 div sub 2 div
+ rmoveto show stroke
+ grestore
+} def
+
+/mark
+{ newpath
+ exch xspacing mul xoffset add boxwidth add
+ exch yspacing mul
+ moveto
+ 0 boxheight 4 div rlineto
+ boxheight neg 4 div boxheight neg 4 div rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/arrow
+{ newpath
+ moveto
+ 3 -8 rlineto
+ -6 0 rlineto
+ 3 8 rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight add
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul disty 2 div sub
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight 2 div sub
+ /y exch def
+ /x exch def
+ newpath
+ x y moveto
+ boxwidth 2 div distx add 0 rlineto
+ stroke
+ 1 eq
+ { newpath x boxwidth 2 div distx add add y moveto
+ -8 3 rlineto
+ 0 -6 rlineto
+ 8 3 rlineto
+ closepath
+ eofill
+ stroke
+ } if
+} def
+
+/vedge
+{
+ /ye exch def
+ /ys exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add dup
+ ys yspacing mul boxheight 2 div sub
+ moveto
+ ye yspacing mul boxheight 2 div sub
+ lineto
+ stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+ /ys exch def
+ /xe exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add
+ ys yspacing mul disty 2 div sub
+ moveto
+ xspacing xe xs sub mul 0
+ rlineto
+ stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(FlowShopOpMutationShift) cw
+(eoMonOp< FlowShop >) cw
+(eoOp< EOType >) cw
+(eoUF< FlowShop &, bool >) cw
+(eoFunctorBase) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor
+ boxwidth cols mul distx cols 1 sub mul add
+ boxheight rows mul disty rows 1 sub mul add boundaspect mul
+ max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (FlowShopOpMutationShift) 0.5 0 box
+ (eoMonOp< FlowShop >) 0.5 1 box
+ (eoOp< EOType >) 0 2 box
+ (eoUF< FlowShop &, bool >) 1 2 box
+ (eoFunctorBase) 1 3 box
+
+% ----- relations -----
+
+solid
+0 0.5 0 out
+solid
+1 0.5 1 in
+solid
+0 0.5 1 out
+solid
+0 1 2 conn
+solid
+1 0 2 in
+solid
+1 1 2 in
+solid
+0 1 2 out
+solid
+1 1 3 in
diff --git a/trunk/paradiseo-moeo/doc/latex/classFlowShopOpMutationShift.tex b/trunk/paradiseo-moeo/doc/latex/classFlowShopOpMutationShift.tex
new file mode 100644
index 000000000..1c2c41671
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classFlowShopOpMutationShift.tex
@@ -0,0 +1,55 @@
+\section{Flow\-Shop\-Op\-Mutation\-Shift Class Reference}
+\label{classFlowShopOpMutationShift}\index{FlowShopOpMutationShift@{FlowShopOpMutationShift}}
+Shift mutation operator for flow-shop.
+
+
+{\tt \#include $<$Flow\-Shop\-Op\-Mutation\-Shift.h$>$}
+
+Inheritance diagram for Flow\-Shop\-Op\-Mutation\-Shift::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=4cm]{classFlowShopOpMutationShift}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item
+std::string \bf{class\-Name} () const \label{classFlowShopOpMutationShift_dd1d710568978d1d4bb8c6f3925da4c6}
+
+\begin{CompactList}\small\item\em the class name (used to display statistics) \item\end{CompactList}\item
+bool \bf{operator()} (\bf{Flow\-Shop} \&\_\-flowshop)
+\begin{CompactList}\small\item\em modifies the parent with a shift mutation \item\end{CompactList}\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+Shift mutation operator for flow-shop.
+
+
+
+Definition at line 22 of file Flow\-Shop\-Op\-Mutation\-Shift.h.
+
+\subsection{Member Function Documentation}
+\index{FlowShopOpMutationShift@{Flow\-Shop\-Op\-Mutation\-Shift}!operator()@{operator()}}
+\index{operator()@{operator()}!FlowShopOpMutationShift@{Flow\-Shop\-Op\-Mutation\-Shift}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}bool Flow\-Shop\-Op\-Mutation\-Shift::operator() (\bf{Flow\-Shop} \& {\em \_\-flowshop})\hspace{0.3cm}{\tt [virtual]}}\label{classFlowShopOpMutationShift_c000b017e75ddee3b6fe9db8ea5ddd5b}
+
+
+modifies the parent with a shift mutation
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em \_\-flowshop}]the parent genotype (will be modified) \end{description}
+\end{Desc}
+
+
+Implements \bf{eo\-UF$<$ Flow\-Shop \&, bool $>$}.
+
+Definition at line 22 of file Flow\-Shop\-Op\-Mutation\-Shift.cpp.
+
+References eo\-Rng::random(), and moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$::value().
+
+The documentation for this class was generated from the following files:\begin{CompactItemize}
+\item
+Flow\-Shop\-Op\-Mutation\-Shift.h\item
+Flow\-Shop\-Op\-Mutation\-Shift.cpp\end{CompactItemize}
diff --git a/trunk/paradiseo-moeo/doc/latex/classSch1.eps b/trunk/paradiseo-moeo/doc/latex/classSch1.eps
new file mode 100644
index 000000000..07b0240e6
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classSch1.eps
@@ -0,0 +1,233 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For:
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 147.059
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 3.4 def % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 7 def
+/cols 2 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+ /a exch def
+ /b exch def
+ a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+ 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+ /str exch def
+ /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+ 2 setlinewidth
+ newpath
+ exch xspacing mul xoffset add
+ exch yspacing mul
+ moveto
+ boxwidth 0 rlineto
+ 0 boxheight rlineto
+ boxwidth neg 0 rlineto
+ 0 boxheight neg rlineto
+ closepath
+ dup stringwidth pop neg boxwidth add 2 div
+ boxheight fontheight 2 div sub 2 div
+ rmoveto show stroke
+ grestore
+} def
+
+/mark
+{ newpath
+ exch xspacing mul xoffset add boxwidth add
+ exch yspacing mul
+ moveto
+ 0 boxheight 4 div rlineto
+ boxheight neg 4 div boxheight neg 4 div rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/arrow
+{ newpath
+ moveto
+ 3 -8 rlineto
+ -6 0 rlineto
+ 3 8 rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight add
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul disty 2 div sub
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight 2 div sub
+ /y exch def
+ /x exch def
+ newpath
+ x y moveto
+ boxwidth 2 div distx add 0 rlineto
+ stroke
+ 1 eq
+ { newpath x boxwidth 2 div distx add add y moveto
+ -8 3 rlineto
+ 0 -6 rlineto
+ 8 3 rlineto
+ closepath
+ eofill
+ stroke
+ } if
+} def
+
+/vedge
+{
+ /ye exch def
+ /ys exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add dup
+ ys yspacing mul boxheight 2 div sub
+ moveto
+ ye yspacing mul boxheight 2 div sub
+ lineto
+ stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+ /ys exch def
+ /xe exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add
+ ys yspacing mul disty 2 div sub
+ moveto
+ xspacing xe xs sub mul 0
+ rlineto
+ stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(Sch1) cw
+(moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) cw
+(moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double >) cw
+(MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) cw
+(EO< MOEOObjectiveVector >) cw
+(eoObject) cw
+(eoPersistent) cw
+(eoPrintable) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor
+ boxwidth cols mul distx cols 1 sub mul add
+ boxheight rows mul disty rows 1 sub mul add boundaspect mul
+ max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (Sch1) 0.5 0 box
+ (moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) 0.5 1 box
+ (moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double >) 0.5 2 box
+ (MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) 0.5 3 box
+ (EO< MOEOObjectiveVector >) 0.5 4 box
+ (eoObject) 0 5 box
+ (eoPersistent) 1 5 box
+ (eoPrintable) 1 6 box
+
+% ----- relations -----
+
+solid
+0 0.5 0 out
+solid
+1 0.5 1 in
+solid
+0 0.5 1 out
+solid
+1 0.5 2 in
+solid
+0 0.5 2 out
+solid
+1 0.5 3 in
+solid
+0 0.5 3 out
+solid
+1 0.5 4 in
+solid
+0 0.5 4 out
+solid
+0 1 5 conn
+solid
+1 0 5 in
+solid
+1 1 5 in
+solid
+0 1 5 out
+solid
+1 1 6 in
diff --git a/trunk/paradiseo-moeo/doc/latex/classSch1.tex b/trunk/paradiseo-moeo/doc/latex/classSch1.tex
new file mode 100644
index 000000000..ab886bbb8
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classSch1.tex
@@ -0,0 +1,26 @@
+\section{Sch1 Class Reference}
+\label{classSch1}\index{Sch1@{Sch1}}
+Inheritance diagram for Sch1::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=4.11765cm]{classSch1}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item
+\bf{Sch1} ()\label{classSch1_3ddc72f40539bfe0d5bb8d977b6655c0}
+
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+
+
+
+
+Definition at line 44 of file Sch1.cpp.
+
+The documentation for this class was generated from the following file:\begin{CompactItemize}
+\item
+Sch1.cpp\end{CompactItemize}
diff --git a/trunk/paradiseo-moeo/doc/latex/classSch1Eval.eps b/trunk/paradiseo-moeo/doc/latex/classSch1Eval.eps
new file mode 100644
index 000000000..88fc1f312
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classSch1Eval.eps
@@ -0,0 +1,215 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For:
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 636.943
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 0.785 def % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 5 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+ /a exch def
+ /b exch def
+ a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+ 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+ /str exch def
+ /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+ 2 setlinewidth
+ newpath
+ exch xspacing mul xoffset add
+ exch yspacing mul
+ moveto
+ boxwidth 0 rlineto
+ 0 boxheight rlineto
+ boxwidth neg 0 rlineto
+ 0 boxheight neg rlineto
+ closepath
+ dup stringwidth pop neg boxwidth add 2 div
+ boxheight fontheight 2 div sub 2 div
+ rmoveto show stroke
+ grestore
+} def
+
+/mark
+{ newpath
+ exch xspacing mul xoffset add boxwidth add
+ exch yspacing mul
+ moveto
+ 0 boxheight 4 div rlineto
+ boxheight neg 4 div boxheight neg 4 div rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/arrow
+{ newpath
+ moveto
+ 3 -8 rlineto
+ -6 0 rlineto
+ 3 8 rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight add
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul disty 2 div sub
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight 2 div sub
+ /y exch def
+ /x exch def
+ newpath
+ x y moveto
+ boxwidth 2 div distx add 0 rlineto
+ stroke
+ 1 eq
+ { newpath x boxwidth 2 div distx add add y moveto
+ -8 3 rlineto
+ 0 -6 rlineto
+ 8 3 rlineto
+ closepath
+ eofill
+ stroke
+ } if
+} def
+
+/vedge
+{
+ /ye exch def
+ /ys exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add dup
+ ys yspacing mul boxheight 2 div sub
+ moveto
+ ye yspacing mul boxheight 2 div sub
+ lineto
+ stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+ /ys exch def
+ /xe exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add
+ ys yspacing mul disty 2 div sub
+ moveto
+ xspacing xe xs sub mul 0
+ rlineto
+ stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(Sch1Eval) cw
+(moeoEvalFunc< Sch1 >) cw
+(eoEvalFunc< Sch1 >) cw
+(eoUF< A1, R >) cw
+(eoFunctorBase) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor
+ boxwidth cols mul distx cols 1 sub mul add
+ boxheight rows mul disty rows 1 sub mul add boundaspect mul
+ max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (Sch1Eval) 0 0 box
+ (moeoEvalFunc< Sch1 >) 0 1 box
+ (eoEvalFunc< Sch1 >) 0 2 box
+ (eoUF< A1, R >) 0 3 box
+ (eoFunctorBase) 0 4 box
+
+% ----- relations -----
+
+solid
+0 0 0 out
+solid
+1 0 1 in
+solid
+0 0 1 out
+solid
+1 0 2 in
+solid
+0 0 2 out
+solid
+1 0 3 in
+solid
+0 0 3 out
+solid
+1 0 4 in
diff --git a/trunk/paradiseo-moeo/doc/latex/classSch1Eval.tex b/trunk/paradiseo-moeo/doc/latex/classSch1Eval.tex
new file mode 100644
index 000000000..cb664fb89
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classSch1Eval.tex
@@ -0,0 +1,26 @@
+\section{Sch1Eval Class Reference}
+\label{classSch1Eval}\index{Sch1Eval@{Sch1Eval}}
+Inheritance diagram for Sch1Eval::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=5cm]{classSch1Eval}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item
+void \bf{operator()} (\bf{Sch1} \&\_\-sch1)\label{classSch1Eval_4f806a964f7bafa9e4fcca45da458c98}
+
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+
+
+
+
+Definition at line 52 of file Sch1.cpp.
+
+The documentation for this class was generated from the following file:\begin{CompactItemize}
+\item
+Sch1.cpp\end{CompactItemize}
diff --git a/trunk/paradiseo-moeo/doc/latex/classSch1ObjectiveVectorTraits.eps b/trunk/paradiseo-moeo/doc/latex/classSch1ObjectiveVectorTraits.eps
new file mode 100644
index 000000000..a95749c2a
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classSch1ObjectiveVectorTraits.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For:
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 231.214
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 2.1625 def % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+ /a exch def
+ /b exch def
+ a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+ 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+ /str exch def
+ /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+ 2 setlinewidth
+ newpath
+ exch xspacing mul xoffset add
+ exch yspacing mul
+ moveto
+ boxwidth 0 rlineto
+ 0 boxheight rlineto
+ boxwidth neg 0 rlineto
+ 0 boxheight neg rlineto
+ closepath
+ dup stringwidth pop neg boxwidth add 2 div
+ boxheight fontheight 2 div sub 2 div
+ rmoveto show stroke
+ grestore
+} def
+
+/mark
+{ newpath
+ exch xspacing mul xoffset add boxwidth add
+ exch yspacing mul
+ moveto
+ 0 boxheight 4 div rlineto
+ boxheight neg 4 div boxheight neg 4 div rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/arrow
+{ newpath
+ moveto
+ 3 -8 rlineto
+ -6 0 rlineto
+ 3 8 rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight add
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul disty 2 div sub
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight 2 div sub
+ /y exch def
+ /x exch def
+ newpath
+ x y moveto
+ boxwidth 2 div distx add 0 rlineto
+ stroke
+ 1 eq
+ { newpath x boxwidth 2 div distx add add y moveto
+ -8 3 rlineto
+ 0 -6 rlineto
+ 8 3 rlineto
+ closepath
+ eofill
+ stroke
+ } if
+} def
+
+/vedge
+{
+ /ye exch def
+ /ys exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add dup
+ ys yspacing mul boxheight 2 div sub
+ moveto
+ ye yspacing mul boxheight 2 div sub
+ lineto
+ stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+ /ys exch def
+ /xe exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add
+ ys yspacing mul disty 2 div sub
+ moveto
+ xspacing xe xs sub mul 0
+ rlineto
+ stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(Sch1ObjectiveVectorTraits) cw
+(moeoObjectiveVectorTraits) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor
+ boxwidth cols mul distx cols 1 sub mul add
+ boxheight rows mul disty rows 1 sub mul add boundaspect mul
+ max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (Sch1ObjectiveVectorTraits) 0 0 box
+ (moeoObjectiveVectorTraits) 0 1 box
+
+% ----- relations -----
+
+solid
+0 0 0 out
+solid
+1 0 1 in
diff --git a/trunk/paradiseo-moeo/doc/latex/classSch1ObjectiveVectorTraits.tex b/trunk/paradiseo-moeo/doc/latex/classSch1ObjectiveVectorTraits.tex
new file mode 100644
index 000000000..1455866e5
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classSch1ObjectiveVectorTraits.tex
@@ -0,0 +1,32 @@
+\section{Sch1Objective\-Vector\-Traits Class Reference}
+\label{classSch1ObjectiveVectorTraits}\index{Sch1ObjectiveVectorTraits@{Sch1ObjectiveVectorTraits}}
+Inheritance diagram for Sch1Objective\-Vector\-Traits::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2cm]{classSch1ObjectiveVectorTraits}
+\end{center}
+\end{figure}
+\subsection*{Static Public Member Functions}
+\begin{CompactItemize}
+\item
+static bool \bf{minimizing} (int i)\label{classSch1ObjectiveVectorTraits_455ac35e419ad21c0a4ba4bbd2768ca5}
+
+\item
+static bool \bf{maximizing} (int i)\label{classSch1ObjectiveVectorTraits_a7de212f3346dde550757e8a412baa4d}
+
+\item
+static unsigned int \bf{n\-Objectives} ()\label{classSch1ObjectiveVectorTraits_54ae04aa8eb052223778ecae175be95b}
+
+\begin{CompactList}\small\item\em Returns the number of objectives. \item\end{CompactList}\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+
+
+
+
+Definition at line 21 of file Sch1.cpp.
+
+The documentation for this class was generated from the following file:\begin{CompactItemize}
+\item
+Sch1.cpp\end{CompactItemize}
diff --git a/trunk/paradiseo-moeo/doc/latex/classmoeoIBMOLS.eps b/trunk/paradiseo-moeo/doc/latex/classmoeoIBMOLS.eps
new file mode 100644
index 000000000..e4e6c44f5
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classmoeoIBMOLS.eps
@@ -0,0 +1,215 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For:
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 101.266
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 4.9375 def % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 4 def
+/cols 2 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+ /a exch def
+ /b exch def
+ a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+ 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+ /str exch def
+ /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+ 2 setlinewidth
+ newpath
+ exch xspacing mul xoffset add
+ exch yspacing mul
+ moveto
+ boxwidth 0 rlineto
+ 0 boxheight rlineto
+ boxwidth neg 0 rlineto
+ 0 boxheight neg rlineto
+ closepath
+ dup stringwidth pop neg boxwidth add 2 div
+ boxheight fontheight 2 div sub 2 div
+ rmoveto show stroke
+ grestore
+} def
+
+/mark
+{ newpath
+ exch xspacing mul xoffset add boxwidth add
+ exch yspacing mul
+ moveto
+ 0 boxheight 4 div rlineto
+ boxheight neg 4 div boxheight neg 4 div rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/arrow
+{ newpath
+ moveto
+ 3 -8 rlineto
+ -6 0 rlineto
+ 3 8 rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight add
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul disty 2 div sub
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight 2 div sub
+ /y exch def
+ /x exch def
+ newpath
+ x y moveto
+ boxwidth 2 div distx add 0 rlineto
+ stroke
+ 1 eq
+ { newpath x boxwidth 2 div distx add add y moveto
+ -8 3 rlineto
+ 0 -6 rlineto
+ 8 3 rlineto
+ closepath
+ eofill
+ stroke
+ } if
+} def
+
+/vedge
+{
+ /ye exch def
+ /ys exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add dup
+ ys yspacing mul boxheight 2 div sub
+ moveto
+ ye yspacing mul boxheight 2 div sub
+ lineto
+ stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+ /ys exch def
+ /xe exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add
+ ys yspacing mul disty 2 div sub
+ moveto
+ xspacing xe xs sub mul 0
+ rlineto
+ stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(moeoIBMOLS< MOEOT, Move >) cw
+(moeoLS< MOEOT, eoPop< MOEOT > & >) cw
+(moeoAlgo) cw
+(eoBF< eoPop< MOEOT > &, moeoArchive< MOEOT > &, void >) cw
+(eoFunctorBase) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor
+ boxwidth cols mul distx cols 1 sub mul add
+ boxheight rows mul disty rows 1 sub mul add boundaspect mul
+ max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (moeoIBMOLS< MOEOT, Move >) 0.5 0 box
+ (moeoLS< MOEOT, eoPop< MOEOT > & >) 0.5 1 box
+ (moeoAlgo) 0 2 box
+ (eoBF< eoPop< MOEOT > &, moeoArchive< MOEOT > &, void >) 1 2 box
+ (eoFunctorBase) 1 3 box
+
+% ----- relations -----
+
+solid
+0 0.5 0 out
+solid
+1 0.5 1 in
+solid
+0 0.5 1 out
+solid
+0 1 2 conn
+solid
+1 0 2 in
+solid
+1 1 2 in
+solid
+0 1 2 out
+solid
+1 1 3 in
diff --git a/trunk/paradiseo-moeo/doc/latex/classmoeoIBMOLS.tex b/trunk/paradiseo-moeo/doc/latex/classmoeoIBMOLS.tex
new file mode 100644
index 000000000..3ba2aec88
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classmoeoIBMOLS.tex
@@ -0,0 +1,147 @@
+\section{moeo\-IBMOLS$<$ MOEOT, Move $>$ Class Template Reference}
+\label{classmoeoIBMOLS}\index{moeoIBMOLS@{moeoIBMOLS}}
+Indicator-Based Multi-Objective Local Search (IBMOLS) as described in Basseur M., Burke K.
+
+
+{\tt \#include $<$moeo\-IBMOLS.h$>$}
+
+Inheritance diagram for moeo\-IBMOLS$<$ MOEOT, Move $>$::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.83544cm]{classmoeoIBMOLS}
+\end{center}
+\end{figure}
+\subsection*{Public Types}
+\begin{CompactItemize}
+\item
+typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoIBMOLS_d3433001dcc9a6e2a967aa5d64163935}
+
+\begin{CompactList}\small\item\em The type of objective vector. \item\end{CompactList}\end{CompactItemize}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item
+\bf{moeo\-IBMOLS} (mo\-Move\-Init$<$ Move $>$ \&\_\-move\-Init, mo\-Next\-Move$<$ Move $>$ \&\_\-next\-Move, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{moeo\-Move\-Incr\-Eval}$<$ Move $>$ \&\_\-move\-Incr\-Eval, \bf{moeo\-Binary\-Indicator\-Based\-Fitness\-Assignment}$<$ MOEOT $>$ \&\_\-fitness\-Assignment, \bf{eo\-Continue}$<$ MOEOT $>$ \&\_\-continuator)
+\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item
+void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, \bf{moeo\-Archive}$<$ MOEOT $>$ \&\_\-arch)
+\begin{CompactList}\small\item\em Apply the local search until a local archive does not change or another stopping criteria is met and update the archive \_\-arch with new non-dominated solutions. \item\end{CompactList}\end{CompactItemize}
+\subsection*{Private Member Functions}
+\begin{CompactItemize}
+\item
+void \bf{one\-Step} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop)
+\begin{CompactList}\small\item\em Apply one step of the local search to the population \_\-pop. \item\end{CompactList}\item
+void \bf{new\_\-one\-Step} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop)
+\begin{CompactList}\small\item\em Apply one step of the local search to the population \_\-pop. \item\end{CompactList}\end{CompactItemize}
+\subsection*{Private Attributes}
+\begin{CompactItemize}
+\item
+mo\-Move\-Init$<$ Move $>$ \& \bf{move\-Init}\label{classmoeoIBMOLS_b4b4908b893edd52d6fa24085d2a89e5}
+
+\begin{CompactList}\small\item\em the move initializer \item\end{CompactList}\item
+mo\-Next\-Move$<$ Move $>$ \& \bf{next\-Move}\label{classmoeoIBMOLS_8b8ebbd6eb6c82caa796160b4be2a86b}
+
+\begin{CompactList}\small\item\em the neighborhood explorer \item\end{CompactList}\item
+\bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& \bf{eval}\label{classmoeoIBMOLS_e9acda4b2f61f8960109a8c6fd52551e}
+
+\begin{CompactList}\small\item\em the full evaluation \item\end{CompactList}\item
+\bf{moeo\-Move\-Incr\-Eval}$<$ Move $>$ \& \bf{move\-Incr\-Eval}\label{classmoeoIBMOLS_6c38636061bd03c4be809277e2dc257a}
+
+\begin{CompactList}\small\item\em the incremental evaluation \item\end{CompactList}\item
+\bf{moeo\-Binary\-Indicator\-Based\-Fitness\-Assignment}$<$ MOEOT $>$ \& \bf{fitness\-Assignment}\label{classmoeoIBMOLS_0c858da33922736b74d9875766cec9d7}
+
+\begin{CompactList}\small\item\em the fitness assignment strategy \item\end{CompactList}\item
+\bf{eo\-Continue}$<$ MOEOT $>$ \& \bf{continuator}\label{classmoeoIBMOLS_c15985c0bb5d9ba835f35d99d7c42b14}
+
+\begin{CompactList}\small\item\em the stopping criteria \item\end{CompactList}\end{CompactItemize}
+\subsection*{Classes}
+\begin{CompactItemize}
+\item
+class \bf{One\-Objective\-Comparator}
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+\subsubsection*{template$<$class MOEOT, class Move$>$ class moeo\-IBMOLS$<$ MOEOT, Move $>$}
+
+Indicator-Based Multi-Objective Local Search (IBMOLS) as described in Basseur M., Burke K.
+
+: \char`\"{}Indicator-Based Multi-Objective Local Search\char`\"{} (2007).
+
+
+
+Definition at line 33 of file moeo\-IBMOLS.h.
+
+\subsection{Constructor \& Destructor Documentation}
+\index{moeoIBMOLS@{moeo\-IBMOLS}!moeoIBMOLS@{moeoIBMOLS}}
+\index{moeoIBMOLS@{moeoIBMOLS}!moeoIBMOLS@{moeo\-IBMOLS}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Move$>$ \bf{moeo\-IBMOLS}$<$ MOEOT, Move $>$::\bf{moeo\-IBMOLS} (mo\-Move\-Init$<$ Move $>$ \& {\em \_\-move\-Init}, mo\-Next\-Move$<$ Move $>$ \& {\em \_\-next\-Move}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{moeo\-Move\-Incr\-Eval}$<$ Move $>$ \& {\em \_\-move\-Incr\-Eval}, \bf{moeo\-Binary\-Indicator\-Based\-Fitness\-Assignment}$<$ MOEOT $>$ \& {\em \_\-fitness\-Assignment}, \bf{eo\-Continue}$<$ MOEOT $>$ \& {\em \_\-continuator})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoIBMOLS_6d6a39ad3d5e4c298d450d801098e274}
+
+
+Ctor.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em \_\-move\-Init}]the move initializer \item[{\em \_\-next\-Move}]the neighborhood explorer \item[{\em \_\-eval}]the full evaluation \item[{\em \_\-move\-Incr\-Eval}]the incremental evaluation \item[{\em \_\-fitness\-Assignment}]the fitness assignment strategy \item[{\em \_\-continuator}]the stopping criteria \end{description}
+\end{Desc}
+
+
+Definition at line 50 of file moeo\-IBMOLS.h.
+
+\subsection{Member Function Documentation}
+\index{moeoIBMOLS@{moeo\-IBMOLS}!operator()@{operator()}}
+\index{operator()@{operator()}!moeoIBMOLS@{moeo\-IBMOLS}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Move$>$ void \bf{moeo\-IBMOLS}$<$ MOEOT, Move $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, \bf{moeo\-Archive}$<$ MOEOT $>$ \& {\em \_\-arch})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoIBMOLS_fd788bbc4f956dec932dba2a4d4479b6}
+
+
+Apply the local search until a local archive does not change or another stopping criteria is met and update the archive \_\-arch with new non-dominated solutions.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em \_\-pop}]the initial population \item[{\em \_\-arch}]the (updated) archive \end{description}
+\end{Desc}
+
+
+Implements \bf{eo\-BF$<$ eo\-Pop$<$ MOEOT $>$ \&, moeo\-Archive$<$ MOEOT $>$ \&, void $>$}.
+
+Definition at line 73 of file moeo\-IBMOLS.h.
+
+References moeo\-IBMOLS$<$ MOEOT, Move $>$::continuator, moeo\-Archive$<$ MOEOT $>$::equals(), moeo\-IBMOLS$<$ MOEOT, Move $>$::fitness\-Assignment, moeo\-IBMOLS$<$ MOEOT, Move $>$::one\-Step(), and moeo\-Archive$<$ MOEOT $>$::update().\index{moeoIBMOLS@{moeo\-IBMOLS}!oneStep@{oneStep}}
+\index{oneStep@{oneStep}!moeoIBMOLS@{moeo\-IBMOLS}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Move$>$ void \bf{moeo\-IBMOLS}$<$ MOEOT, Move $>$::one\-Step (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoIBMOLS_fce770398602972b5d67c52638687d43}
+
+
+Apply one step of the local search to the population \_\-pop.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em \_\-pop}]the population \end{description}
+\end{Desc}
+
+
+Definition at line 120 of file moeo\-IBMOLS.h.
+
+References moeo\-IBMOLS$<$ MOEOT, Move $>$::continuator, moeo\-IBMOLS$<$ MOEOT, Move $>$::fitness\-Assignment, moeo\-IBMOLS$<$ MOEOT, Move $>$::move\-Incr\-Eval, moeo\-IBMOLS$<$ MOEOT, Move $>$::move\-Init, and moeo\-IBMOLS$<$ MOEOT, Move $>$::next\-Move.
+
+Referenced by moeo\-IBMOLS$<$ MOEOT, Move $>$::operator()().\index{moeoIBMOLS@{moeo\-IBMOLS}!new_oneStep@{new\_\-oneStep}}
+\index{new_oneStep@{new\_\-oneStep}!moeoIBMOLS@{moeo\-IBMOLS}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Move$>$ void \bf{moeo\-IBMOLS}$<$ MOEOT, Move $>$::new\_\-one\-Step (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoIBMOLS_9d811733d8e7508a7c48615c8ff0f990}
+
+
+Apply one step of the local search to the population \_\-pop.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em \_\-pop}]the population \end{description}
+\end{Desc}
+
+
+Definition at line 304 of file moeo\-IBMOLS.h.
+
+References moeo\-IBMOLS$<$ MOEOT, Move $>$::continuator, moeo\-IBMOLS$<$ MOEOT, Move $>$::fitness\-Assignment, moeo\-IBMOLS$<$ MOEOT, Move $>$::move\-Incr\-Eval, moeo\-IBMOLS$<$ MOEOT, Move $>$::move\-Init, and moeo\-IBMOLS$<$ MOEOT, Move $>$::next\-Move.
+
+The documentation for this class was generated from the following file:\begin{CompactItemize}
+\item
+moeo\-IBMOLS.h\end{CompactItemize}
diff --git a/trunk/paradiseo-moeo/doc/latex/classmoeoIBMOLS_1_1OneObjectiveComparator.eps b/trunk/paradiseo-moeo/doc/latex/classmoeoIBMOLS_1_1OneObjectiveComparator.eps
new file mode 100644
index 000000000..ffa490e53
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classmoeoIBMOLS_1_1OneObjectiveComparator.eps
@@ -0,0 +1,209 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For:
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 223.464
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 2.2375 def % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 4 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+ /a exch def
+ /b exch def
+ a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+ 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+ /str exch def
+ /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+ 2 setlinewidth
+ newpath
+ exch xspacing mul xoffset add
+ exch yspacing mul
+ moveto
+ boxwidth 0 rlineto
+ 0 boxheight rlineto
+ boxwidth neg 0 rlineto
+ 0 boxheight neg rlineto
+ closepath
+ dup stringwidth pop neg boxwidth add 2 div
+ boxheight fontheight 2 div sub 2 div
+ rmoveto show stroke
+ grestore
+} def
+
+/mark
+{ newpath
+ exch xspacing mul xoffset add boxwidth add
+ exch yspacing mul
+ moveto
+ 0 boxheight 4 div rlineto
+ boxheight neg 4 div boxheight neg 4 div rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/arrow
+{ newpath
+ moveto
+ 3 -8 rlineto
+ -6 0 rlineto
+ 3 8 rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight add
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul disty 2 div sub
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight 2 div sub
+ /y exch def
+ /x exch def
+ newpath
+ x y moveto
+ boxwidth 2 div distx add 0 rlineto
+ stroke
+ 1 eq
+ { newpath x boxwidth 2 div distx add add y moveto
+ -8 3 rlineto
+ 0 -6 rlineto
+ 8 3 rlineto
+ closepath
+ eofill
+ stroke
+ } if
+} def
+
+/vedge
+{
+ /ye exch def
+ /ys exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add dup
+ ys yspacing mul boxheight 2 div sub
+ moveto
+ ye yspacing mul boxheight 2 div sub
+ lineto
+ stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+ /ys exch def
+ /xe exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add
+ ys yspacing mul disty 2 div sub
+ moveto
+ xspacing xe xs sub mul 0
+ rlineto
+ stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(moeoIBMOLS< MOEOT, Move >::OneObjectiveComparator) cw
+(moeoComparator< MOEOT >) cw
+(eoBF< A1, A2, R >) cw
+(eoFunctorBase) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor
+ boxwidth cols mul distx cols 1 sub mul add
+ boxheight rows mul disty rows 1 sub mul add boundaspect mul
+ max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (moeoIBMOLS< MOEOT, Move >::OneObjectiveComparator) 0 0 box
+ (moeoComparator< MOEOT >) 0 1 box
+ (eoBF< A1, A2, R >) 0 2 box
+ (eoFunctorBase) 0 3 box
+
+% ----- relations -----
+
+solid
+0 0 0 out
+solid
+1 0 1 in
+solid
+0 0 1 out
+solid
+1 0 2 in
+solid
+0 0 2 out
+solid
+1 0 3 in
diff --git a/trunk/paradiseo-moeo/doc/latex/classmoeoIBMOLS_1_1OneObjectiveComparator.tex b/trunk/paradiseo-moeo/doc/latex/classmoeoIBMOLS_1_1OneObjectiveComparator.tex
new file mode 100644
index 000000000..08cd609bb
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classmoeoIBMOLS_1_1OneObjectiveComparator.tex
@@ -0,0 +1,37 @@
+\section{moeo\-IBMOLS$<$ MOEOT, Move $>$::One\-Objective\-Comparator Class Reference}
+\label{classmoeoIBMOLS_1_1OneObjectiveComparator}\index{moeoIBMOLS::OneObjectiveComparator@{moeoIBMOLS::OneObjectiveComparator}}
+Inheritance diagram for moeo\-IBMOLS$<$ MOEOT, Move $>$::One\-Objective\-Comparator::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=4cm]{classmoeoIBMOLS_1_1OneObjectiveComparator}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item
+\bf{One\-Objective\-Comparator} (unsigned int \_\-obj)\label{classmoeoIBMOLS_1_1OneObjectiveComparator_09ee419d143aa29bb05d48c358655bb1}
+
+\item
+const bool \bf{operator()} (const MOEOT \&\_\-moeo1, const MOEOT \&\_\-moeo2)\label{classmoeoIBMOLS_1_1OneObjectiveComparator_44685d0ab08fede366bb404fe7f36302}
+
+\end{CompactItemize}
+\subsection*{Private Attributes}
+\begin{CompactItemize}
+\item
+unsigned int \bf{obj}\label{classmoeoIBMOLS_1_1OneObjectiveComparator_724ca0379e42fdffe4ec0d788cd52f43}
+
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+\subsubsection*{template$<$class MOEOT, class Move$>$ class moeo\-IBMOLS$<$ MOEOT, Move $>$::One\-Objective\-Comparator}
+
+
+
+
+
+Definition at line 462 of file moeo\-IBMOLS.h.
+
+The documentation for this class was generated from the following file:\begin{CompactItemize}
+\item
+moeo\-IBMOLS.h\end{CompactItemize}
diff --git a/trunk/paradiseo-moeo/doc/latex/classmoeoIteratedIBMOLS.eps b/trunk/paradiseo-moeo/doc/latex/classmoeoIteratedIBMOLS.eps
new file mode 100644
index 000000000..9957b08e2
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classmoeoIteratedIBMOLS.eps
@@ -0,0 +1,215 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For:
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 101.266
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 4.9375 def % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 4 def
+/cols 2 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+ /a exch def
+ /b exch def
+ a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+ 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+ /str exch def
+ /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+ 2 setlinewidth
+ newpath
+ exch xspacing mul xoffset add
+ exch yspacing mul
+ moveto
+ boxwidth 0 rlineto
+ 0 boxheight rlineto
+ boxwidth neg 0 rlineto
+ 0 boxheight neg rlineto
+ closepath
+ dup stringwidth pop neg boxwidth add 2 div
+ boxheight fontheight 2 div sub 2 div
+ rmoveto show stroke
+ grestore
+} def
+
+/mark
+{ newpath
+ exch xspacing mul xoffset add boxwidth add
+ exch yspacing mul
+ moveto
+ 0 boxheight 4 div rlineto
+ boxheight neg 4 div boxheight neg 4 div rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/arrow
+{ newpath
+ moveto
+ 3 -8 rlineto
+ -6 0 rlineto
+ 3 8 rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight add
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul disty 2 div sub
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight 2 div sub
+ /y exch def
+ /x exch def
+ newpath
+ x y moveto
+ boxwidth 2 div distx add 0 rlineto
+ stroke
+ 1 eq
+ { newpath x boxwidth 2 div distx add add y moveto
+ -8 3 rlineto
+ 0 -6 rlineto
+ 8 3 rlineto
+ closepath
+ eofill
+ stroke
+ } if
+} def
+
+/vedge
+{
+ /ye exch def
+ /ys exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add dup
+ ys yspacing mul boxheight 2 div sub
+ moveto
+ ye yspacing mul boxheight 2 div sub
+ lineto
+ stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+ /ys exch def
+ /xe exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add
+ ys yspacing mul disty 2 div sub
+ moveto
+ xspacing xe xs sub mul 0
+ rlineto
+ stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(moeoIteratedIBMOLS< MOEOT, Move >) cw
+(moeoLS< MOEOT, eoPop< MOEOT > & >) cw
+(moeoAlgo) cw
+(eoBF< eoPop< MOEOT > &, moeoArchive< MOEOT > &, void >) cw
+(eoFunctorBase) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor
+ boxwidth cols mul distx cols 1 sub mul add
+ boxheight rows mul disty rows 1 sub mul add boundaspect mul
+ max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (moeoIteratedIBMOLS< MOEOT, Move >) 0.5 0 box
+ (moeoLS< MOEOT, eoPop< MOEOT > & >) 0.5 1 box
+ (moeoAlgo) 0 2 box
+ (eoBF< eoPop< MOEOT > &, moeoArchive< MOEOT > &, void >) 1 2 box
+ (eoFunctorBase) 1 3 box
+
+% ----- relations -----
+
+solid
+0 0.5 0 out
+solid
+1 0.5 1 in
+solid
+0 0.5 1 out
+solid
+0 1 2 conn
+solid
+1 0 2 in
+solid
+1 1 2 in
+solid
+0 1 2 out
+solid
+1 1 3 in
diff --git a/trunk/paradiseo-moeo/doc/latex/classmoeoIteratedIBMOLS.tex b/trunk/paradiseo-moeo/doc/latex/classmoeoIteratedIBMOLS.tex
new file mode 100644
index 000000000..b0e826ed2
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classmoeoIteratedIBMOLS.tex
@@ -0,0 +1,124 @@
+\section{moeo\-Iterated\-IBMOLS$<$ MOEOT, Move $>$ Class Template Reference}
+\label{classmoeoIteratedIBMOLS}\index{moeoIteratedIBMOLS@{moeoIteratedIBMOLS}}
+Iterated version of IBMOLS as described in Basseur M., Burke K.
+
+
+{\tt \#include $<$moeo\-Iterated\-IBMOLS.h$>$}
+
+Inheritance diagram for moeo\-Iterated\-IBMOLS$<$ MOEOT, Move $>$::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.83544cm]{classmoeoIteratedIBMOLS}
+\end{center}
+\end{figure}
+\subsection*{Public Types}
+\begin{CompactItemize}
+\item
+typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoIteratedIBMOLS_bc0f8dff81be56b23376995aace92a01}
+
+\begin{CompactList}\small\item\em The type of objective vector. \item\end{CompactList}\end{CompactItemize}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item
+\bf{moeo\-Iterated\-IBMOLS} (mo\-Move\-Init$<$ Move $>$ \&\_\-move\-Init, mo\-Next\-Move$<$ Move $>$ \&\_\-next\-Move, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{moeo\-Move\-Incr\-Eval}$<$ Move $>$ \&\_\-move\-Incr\-Eval, \bf{moeo\-Binary\-Indicator\-Based\-Fitness\-Assignment}$<$ MOEOT $>$ \&\_\-fitness\-Assignment, \bf{eo\-Continue}$<$ MOEOT $>$ \&\_\-continuator, \bf{eo\-Mon\-Op}$<$ MOEOT $>$ \&\_\-mon\-Op, \bf{eo\-Mon\-Op}$<$ MOEOT $>$ \&\_\-random\-Mon\-Op, unsigned int \_\-n\-Noise\-Iterations=1)
+\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item
+void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, \bf{moeo\-Archive}$<$ MOEOT $>$ \&\_\-arch)
+\begin{CompactList}\small\item\em Apply the local search iteratively until the stopping criteria is met. \item\end{CompactList}\end{CompactItemize}
+\subsection*{Private Member Functions}
+\begin{CompactItemize}
+\item
+void \bf{generate\-New\-Solutions} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, const \bf{moeo\-Archive}$<$ MOEOT $>$ \&\_\-arch)
+\begin{CompactList}\small\item\em Creates new population randomly initialized and/or initialized from the archive \_\-arch. \item\end{CompactList}\end{CompactItemize}
+\subsection*{Private Attributes}
+\begin{CompactItemize}
+\item
+\bf{moeo\-IBMOLS}$<$ MOEOT, Move $>$ \bf{ibmols}\label{classmoeoIteratedIBMOLS_6b1351f1faa391a1f095d1f9d4dba915}
+
+\begin{CompactList}\small\item\em the local search to iterate \item\end{CompactList}\item
+\bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& \bf{eval}\label{classmoeoIteratedIBMOLS_7abdd0c1433ec4671522c8d5edc9fe61}
+
+\begin{CompactList}\small\item\em the full evaluation \item\end{CompactList}\item
+\bf{eo\-Continue}$<$ MOEOT $>$ \& \bf{continuator}\label{classmoeoIteratedIBMOLS_964e5df65c7aa33dd84eed3180d5e0a3}
+
+\begin{CompactList}\small\item\em the stopping criteria \item\end{CompactList}\item
+\bf{eo\-Mon\-Op}$<$ MOEOT $>$ \& \bf{mon\-Op}\label{classmoeoIteratedIBMOLS_77851daa2f2230000c0012beef3b8558}
+
+\begin{CompactList}\small\item\em the monary operator \item\end{CompactList}\item
+\bf{eo\-Mon\-Op}$<$ MOEOT $>$ \& \bf{random\-Mon\-Op}\label{classmoeoIteratedIBMOLS_89df3bfa7069c06c7e7cf4b30ccc5535}
+
+\begin{CompactList}\small\item\em the random monary operator (or random initializer) \item\end{CompactList}\item
+unsigned int \bf{n\-Noise\-Iterations}\label{classmoeoIteratedIBMOLS_a50f25daf2847fb9d299ef65baf3bda7}
+
+\begin{CompactList}\small\item\em the number of iterations to apply the random noise \item\end{CompactList}\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+\subsubsection*{template$<$class MOEOT, class Move$>$ class moeo\-Iterated\-IBMOLS$<$ MOEOT, Move $>$}
+
+Iterated version of IBMOLS as described in Basseur M., Burke K.
+
+: \char`\"{}Indicator-Based Multi-Objective Local Search\char`\"{} (2007).
+
+
+
+Definition at line 41 of file moeo\-Iterated\-IBMOLS.h.
+
+\subsection{Constructor \& Destructor Documentation}
+\index{moeoIteratedIBMOLS@{moeo\-Iterated\-IBMOLS}!moeoIteratedIBMOLS@{moeoIteratedIBMOLS}}
+\index{moeoIteratedIBMOLS@{moeoIteratedIBMOLS}!moeoIteratedIBMOLS@{moeo\-Iterated\-IBMOLS}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Move$>$ \bf{moeo\-Iterated\-IBMOLS}$<$ MOEOT, Move $>$::\bf{moeo\-Iterated\-IBMOLS} (mo\-Move\-Init$<$ Move $>$ \& {\em \_\-move\-Init}, mo\-Next\-Move$<$ Move $>$ \& {\em \_\-next\-Move}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{moeo\-Move\-Incr\-Eval}$<$ Move $>$ \& {\em \_\-move\-Incr\-Eval}, \bf{moeo\-Binary\-Indicator\-Based\-Fitness\-Assignment}$<$ MOEOT $>$ \& {\em \_\-fitness\-Assignment}, \bf{eo\-Continue}$<$ MOEOT $>$ \& {\em \_\-continuator}, \bf{eo\-Mon\-Op}$<$ MOEOT $>$ \& {\em \_\-mon\-Op}, \bf{eo\-Mon\-Op}$<$ MOEOT $>$ \& {\em \_\-random\-Mon\-Op}, unsigned int {\em \_\-n\-Noise\-Iterations} = {\tt 1})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoIteratedIBMOLS_67352bb5d797f20e767a4f0fa6d80f93}
+
+
+Ctor.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em \_\-move\-Init}]the move initializer \item[{\em \_\-next\-Move}]the neighborhood explorer \item[{\em \_\-eval}]the full evaluation \item[{\em \_\-move\-Incr\-Eval}]the incremental evaluation \item[{\em \_\-fitness\-Assignment}]the fitness assignment strategy \item[{\em \_\-continuator}]the stopping criteria \item[{\em \_\-mon\-Op}]the monary operator \item[{\em \_\-random\-Mon\-Op}]the random monary operator (or random initializer) \item[{\em \_\-n\-Noise\-Iterations}]the number of iterations to apply the random noise \end{description}
+\end{Desc}
+
+
+Definition at line 61 of file moeo\-Iterated\-IBMOLS.h.
+
+\subsection{Member Function Documentation}
+\index{moeoIteratedIBMOLS@{moeo\-Iterated\-IBMOLS}!operator()@{operator()}}
+\index{operator()@{operator()}!moeoIteratedIBMOLS@{moeo\-Iterated\-IBMOLS}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Move$>$ void \bf{moeo\-Iterated\-IBMOLS}$<$ MOEOT, Move $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, \bf{moeo\-Archive}$<$ MOEOT $>$ \& {\em \_\-arch})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoIteratedIBMOLS_52d4aa19a93c69ed0c2246c62821e76e}
+
+
+Apply the local search iteratively until the stopping criteria is met.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em \_\-pop}]the initial population \item[{\em \_\-arch}]the (updated) archive \end{description}
+\end{Desc}
+
+
+Implements \bf{eo\-BF$<$ eo\-Pop$<$ MOEOT $>$ \&, moeo\-Archive$<$ MOEOT $>$ \&, void $>$}.
+
+Definition at line 86 of file moeo\-Iterated\-IBMOLS.h.
+
+References moeo\-Iterated\-IBMOLS$<$ MOEOT, Move $>$::continuator, moeo\-Iterated\-IBMOLS$<$ MOEOT, Move $>$::generate\-New\-Solutions(), moeo\-Iterated\-IBMOLS$<$ MOEOT, Move $>$::ibmols, and moeo\-Archive$<$ MOEOT $>$::update().\index{moeoIteratedIBMOLS@{moeo\-Iterated\-IBMOLS}!generateNewSolutions@{generateNewSolutions}}
+\index{generateNewSolutions@{generateNewSolutions}!moeoIteratedIBMOLS@{moeo\-Iterated\-IBMOLS}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Move$>$ void \bf{moeo\-Iterated\-IBMOLS}$<$ MOEOT, Move $>$::generate\-New\-Solutions (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, const \bf{moeo\-Archive}$<$ MOEOT $>$ \& {\em \_\-arch})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoIteratedIBMOLS_2826cf283f6670b3c46da5ac6b6def18}
+
+
+Creates new population randomly initialized and/or initialized from the archive \_\-arch.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em \_\-pop}]the output population \item[{\em \_\-arch}]the archive \end{description}
+\end{Desc}
+
+
+Definition at line 121 of file moeo\-Iterated\-IBMOLS.h.
+
+References moeo\-Iterated\-IBMOLS$<$ MOEOT, Move $>$::eval, eo\-Pop$<$ EOT $>$::invalidate(), moeo\-Iterated\-IBMOLS$<$ MOEOT, Move $>$::mon\-Op, moeo\-Iterated\-IBMOLS$<$ MOEOT, Move $>$::n\-Noise\-Iterations, and moeo\-Iterated\-IBMOLS$<$ MOEOT, Move $>$::random\-Mon\-Op.
+
+Referenced by moeo\-Iterated\-IBMOLS$<$ MOEOT, Move $>$::operator()().
+
+The documentation for this class was generated from the following file:\begin{CompactItemize}
+\item
+moeo\-Iterated\-IBMOLS.h\end{CompactItemize}
diff --git a/trunk/paradiseo-moeo/doc/latex/classmoeoMoveIncrEval.eps b/trunk/paradiseo-moeo/doc/latex/classmoeoMoveIncrEval.eps
new file mode 100644
index 000000000..769d2fb57
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classmoeoMoveIncrEval.eps
@@ -0,0 +1,203 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For:
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 324.324
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.54167 def % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 3 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+ /a exch def
+ /b exch def
+ a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+ 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+ /str exch def
+ /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+ 2 setlinewidth
+ newpath
+ exch xspacing mul xoffset add
+ exch yspacing mul
+ moveto
+ boxwidth 0 rlineto
+ 0 boxheight rlineto
+ boxwidth neg 0 rlineto
+ 0 boxheight neg rlineto
+ closepath
+ dup stringwidth pop neg boxwidth add 2 div
+ boxheight fontheight 2 div sub 2 div
+ rmoveto show stroke
+ grestore
+} def
+
+/mark
+{ newpath
+ exch xspacing mul xoffset add boxwidth add
+ exch yspacing mul
+ moveto
+ 0 boxheight 4 div rlineto
+ boxheight neg 4 div boxheight neg 4 div rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/arrow
+{ newpath
+ moveto
+ 3 -8 rlineto
+ -6 0 rlineto
+ 3 8 rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight add
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul disty 2 div sub
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight 2 div sub
+ /y exch def
+ /x exch def
+ newpath
+ x y moveto
+ boxwidth 2 div distx add 0 rlineto
+ stroke
+ 1 eq
+ { newpath x boxwidth 2 div distx add add y moveto
+ -8 3 rlineto
+ 0 -6 rlineto
+ 8 3 rlineto
+ closepath
+ eofill
+ stroke
+ } if
+} def
+
+/vedge
+{
+ /ye exch def
+ /ys exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add dup
+ ys yspacing mul boxheight 2 div sub
+ moveto
+ ye yspacing mul boxheight 2 div sub
+ lineto
+ stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+ /ys exch def
+ /xe exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add
+ ys yspacing mul disty 2 div sub
+ moveto
+ xspacing xe xs sub mul 0
+ rlineto
+ stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(moeoMoveIncrEval< Move >) cw
+(eoBF< A1, A2, R >) cw
+(eoFunctorBase) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor
+ boxwidth cols mul distx cols 1 sub mul add
+ boxheight rows mul disty rows 1 sub mul add boundaspect mul
+ max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (moeoMoveIncrEval< Move >) 0 0 box
+ (eoBF< A1, A2, R >) 0 1 box
+ (eoFunctorBase) 0 2 box
+
+% ----- relations -----
+
+solid
+0 0 0 out
+solid
+1 0 1 in
+solid
+0 0 1 out
+solid
+1 0 2 in
diff --git a/trunk/paradiseo-moeo/doc/latex/classmoeoMoveIncrEval.tex b/trunk/paradiseo-moeo/doc/latex/classmoeoMoveIncrEval.tex
new file mode 100644
index 000000000..0e0a807a0
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classmoeoMoveIncrEval.tex
@@ -0,0 +1,22 @@
+\section{moeo\-Move\-Incr\-Eval$<$ Move $>$ Class Template Reference}
+\label{classmoeoMoveIncrEval}\index{moeoMoveIncrEval@{moeoMoveIncrEval}}
+Inheritance diagram for moeo\-Move\-Incr\-Eval$<$ Move $>$::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=3cm]{classmoeoMoveIncrEval}
+\end{center}
+\end{figure}
+
+
+\subsection{Detailed Description}
+\subsubsection*{template$<$class Move$>$ class moeo\-Move\-Incr\-Eval$<$ Move $>$}
+
+
+
+
+
+Definition at line 9 of file moeo\-Move\-Incr\-Eval.h.
+
+The documentation for this class was generated from the following file:\begin{CompactItemize}
+\item
+moeo\-Move\-Incr\-Eval.h\end{CompactItemize}
diff --git a/trunk/paradiseo-moeo/doc/latex/classmoeoObjectiveVectorTraits.eps b/trunk/paradiseo-moeo/doc/latex/classmoeoObjectiveVectorTraits.eps
new file mode 100644
index 000000000..e70f35158
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classmoeoObjectiveVectorTraits.eps
@@ -0,0 +1,203 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For:
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 100.503
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 4.975 def % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 2 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+ /a exch def
+ /b exch def
+ a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+ 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+ /str exch def
+ /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+ 2 setlinewidth
+ newpath
+ exch xspacing mul xoffset add
+ exch yspacing mul
+ moveto
+ boxwidth 0 rlineto
+ 0 boxheight rlineto
+ boxwidth neg 0 rlineto
+ 0 boxheight neg rlineto
+ closepath
+ dup stringwidth pop neg boxwidth add 2 div
+ boxheight fontheight 2 div sub 2 div
+ rmoveto show stroke
+ grestore
+} def
+
+/mark
+{ newpath
+ exch xspacing mul xoffset add boxwidth add
+ exch yspacing mul
+ moveto
+ 0 boxheight 4 div rlineto
+ boxheight neg 4 div boxheight neg 4 div rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/arrow
+{ newpath
+ moveto
+ 3 -8 rlineto
+ -6 0 rlineto
+ 3 8 rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight add
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul disty 2 div sub
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight 2 div sub
+ /y exch def
+ /x exch def
+ newpath
+ x y moveto
+ boxwidth 2 div distx add 0 rlineto
+ stroke
+ 1 eq
+ { newpath x boxwidth 2 div distx add add y moveto
+ -8 3 rlineto
+ 0 -6 rlineto
+ 8 3 rlineto
+ closepath
+ eofill
+ stroke
+ } if
+} def
+
+/vedge
+{
+ /ye exch def
+ /ys exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add dup
+ ys yspacing mul boxheight 2 div sub
+ moveto
+ ye yspacing mul boxheight 2 div sub
+ lineto
+ stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+ /ys exch def
+ /xe exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add
+ ys yspacing mul disty 2 div sub
+ moveto
+ xspacing xe xs sub mul 0
+ rlineto
+ stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(moeoObjectiveVectorTraits) cw
+(FlowShopObjectiveVectorTraits) cw
+(Sch1ObjectiveVectorTraits) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor
+ boxwidth cols mul distx cols 1 sub mul add
+ boxheight rows mul disty rows 1 sub mul add boundaspect mul
+ max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (moeoObjectiveVectorTraits) 0.5 1 box
+ (FlowShopObjectiveVectorTraits) 0 0 box
+ (Sch1ObjectiveVectorTraits) 1 0 box
+
+% ----- relations -----
+
+solid
+1 0.5 0.25 out
+solid
+0 1 1 conn
+solid
+0 0 0.75 in
+solid
+0 1 0.75 in
diff --git a/trunk/paradiseo-moeo/doc/latex/classmoeoReferencePointIndicatorBasedFitnessAssignment.eps b/trunk/paradiseo-moeo/doc/latex/classmoeoReferencePointIndicatorBasedFitnessAssignment.eps
new file mode 100644
index 000000000..c1feb7742
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classmoeoReferencePointIndicatorBasedFitnessAssignment.eps
@@ -0,0 +1,209 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For:
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 202.532
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 2.46875 def % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 4 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+ /a exch def
+ /b exch def
+ a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+ 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+ /str exch def
+ /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+ 2 setlinewidth
+ newpath
+ exch xspacing mul xoffset add
+ exch yspacing mul
+ moveto
+ boxwidth 0 rlineto
+ 0 boxheight rlineto
+ boxwidth neg 0 rlineto
+ 0 boxheight neg rlineto
+ closepath
+ dup stringwidth pop neg boxwidth add 2 div
+ boxheight fontheight 2 div sub 2 div
+ rmoveto show stroke
+ grestore
+} def
+
+/mark
+{ newpath
+ exch xspacing mul xoffset add boxwidth add
+ exch yspacing mul
+ moveto
+ 0 boxheight 4 div rlineto
+ boxheight neg 4 div boxheight neg 4 div rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/arrow
+{ newpath
+ moveto
+ 3 -8 rlineto
+ -6 0 rlineto
+ 3 8 rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight add
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul disty 2 div sub
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight 2 div sub
+ /y exch def
+ /x exch def
+ newpath
+ x y moveto
+ boxwidth 2 div distx add 0 rlineto
+ stroke
+ 1 eq
+ { newpath x boxwidth 2 div distx add add y moveto
+ -8 3 rlineto
+ 0 -6 rlineto
+ 8 3 rlineto
+ closepath
+ eofill
+ stroke
+ } if
+} def
+
+/vedge
+{
+ /ye exch def
+ /ys exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add dup
+ ys yspacing mul boxheight 2 div sub
+ moveto
+ ye yspacing mul boxheight 2 div sub
+ lineto
+ stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+ /ys exch def
+ /xe exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add
+ ys yspacing mul disty 2 div sub
+ moveto
+ xspacing xe xs sub mul 0
+ rlineto
+ stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(moeoReferencePointIndicatorBasedFitnessAssignment< MOEOT >) cw
+(moeoFitnessAssignment< MOEOT >) cw
+(eoUF< eoPop< MOEOT > &, void >) cw
+(eoFunctorBase) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor
+ boxwidth cols mul distx cols 1 sub mul add
+ boxheight rows mul disty rows 1 sub mul add boundaspect mul
+ max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (moeoReferencePointIndicatorBasedFitnessAssignment< MOEOT >) 0 0 box
+ (moeoFitnessAssignment< MOEOT >) 0 1 box
+ (eoUF< eoPop< MOEOT > &, void >) 0 2 box
+ (eoFunctorBase) 0 3 box
+
+% ----- relations -----
+
+solid
+0 0 0 out
+solid
+1 0 1 in
+solid
+0 0 1 out
+solid
+1 0 2 in
+solid
+0 0 2 out
+solid
+1 0 3 in
diff --git a/trunk/paradiseo-moeo/doc/latex/classmoeoReferencePointIndicatorBasedFitnessAssignment.tex b/trunk/paradiseo-moeo/doc/latex/classmoeoReferencePointIndicatorBasedFitnessAssignment.tex
new file mode 100644
index 000000000..0ba580737
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classmoeoReferencePointIndicatorBasedFitnessAssignment.tex
@@ -0,0 +1,148 @@
+\section{moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$ Class Template Reference}
+\label{classmoeoReferencePointIndicatorBasedFitnessAssignment}\index{moeoReferencePointIndicatorBasedFitnessAssignment@{moeoReferencePointIndicatorBasedFitnessAssignment}}
+Fitness assignment sheme based a Reference Point and a Quality Indicator.
+
+
+{\tt \#include $<$moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment.h$>$}
+
+Inheritance diagram for moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=4cm]{classmoeoReferencePointIndicatorBasedFitnessAssignment}
+\end{center}
+\end{figure}
+\subsection*{Public Types}
+\begin{CompactItemize}
+\item
+typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoReferencePointIndicatorBasedFitnessAssignment_51ae5507dca3e934f7db36eef78df556}
+
+\begin{CompactList}\small\item\em The type of objective vector. \item\end{CompactList}\end{CompactItemize}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item
+\bf{moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment} (\bf{Objective\-Vector} \&\_\-ref\-Point, \bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \&\_\-metric)
+\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item
+void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop)
+\begin{CompactList}\small\item\em Sets the fitness values for every solution contained in the population \_\-pop. \item\end{CompactList}\item
+void \bf{update\-By\-Deleting} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, \bf{Objective\-Vector} \&\_\-obj\-Vec)
+\begin{CompactList}\small\item\em Updates the fitness values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. \item\end{CompactList}\end{CompactItemize}
+\subsection*{Protected Member Functions}
+\begin{CompactItemize}
+\item
+void \bf{setup} (const \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop)
+\begin{CompactList}\small\item\em Sets the bounds for every objective using the min and the max value for every objective vector of \_\-pop (and the reference point). \item\end{CompactList}\item
+void \bf{set\-Fitnesses} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop)
+\begin{CompactList}\small\item\em Sets the fitness of every individual contained in the population \_\-pop. \item\end{CompactList}\end{CompactItemize}
+\subsection*{Protected Attributes}
+\begin{CompactItemize}
+\item
+\bf{Objective\-Vector} \& \bf{ref\-Point}\label{classmoeoReferencePointIndicatorBasedFitnessAssignment_73dc1eb66e46b28b7ee283f7367f427b}
+
+\begin{CompactList}\small\item\em the reference point \item\end{CompactList}\item
+\bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \& \bf{metric}\label{classmoeoReferencePointIndicatorBasedFitnessAssignment_9adf4fd353f44f15d3722ef26aa81832}
+
+\begin{CompactList}\small\item\em the quality indicator \item\end{CompactList}\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+\subsubsection*{template$<$class MOEOT$>$ class moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$}
+
+Fitness assignment sheme based a Reference Point and a Quality Indicator.
+
+
+
+Definition at line 25 of file moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment.h.
+
+\subsection{Constructor \& Destructor Documentation}
+\index{moeoReferencePointIndicatorBasedFitnessAssignment@{moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment}!moeoReferencePointIndicatorBasedFitnessAssignment@{moeoReferencePointIndicatorBasedFitnessAssignment}}
+\index{moeoReferencePointIndicatorBasedFitnessAssignment@{moeoReferencePointIndicatorBasedFitnessAssignment}!moeoReferencePointIndicatorBasedFitnessAssignment@{moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment}$<$ MOEOT $>$::\bf{moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment} (\bf{Objective\-Vector} \& {\em \_\-ref\-Point}, \bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \& {\em \_\-metric})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoReferencePointIndicatorBasedFitnessAssignment_67a5e91e08f89f27ad5aad989898c425}
+
+
+Ctor.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em \_\-ref\-Point}]the reference point \item[{\em \_\-metric}]the quality indicator \end{description}
+\end{Desc}
+
+
+Definition at line 37 of file moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment.h.
+
+\subsection{Member Function Documentation}
+\index{moeoReferencePointIndicatorBasedFitnessAssignment@{moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment}!operator()@{operator()}}
+\index{operator()@{operator()}!moeoReferencePointIndicatorBasedFitnessAssignment@{moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment}$<$ MOEOT $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoReferencePointIndicatorBasedFitnessAssignment_d122ebb7cda54b283d6736dc5e57da7d}
+
+
+Sets the fitness values for every solution contained in the population \_\-pop.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em \_\-pop}]the population \end{description}
+\end{Desc}
+
+
+Implements \bf{eo\-UF$<$ eo\-Pop$<$ MOEOT $>$ \&, void $>$}.
+
+Definition at line 46 of file moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment.h.
+
+References moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::set\-Fitnesses(), and moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::setup().\index{moeoReferencePointIndicatorBasedFitnessAssignment@{moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment}!updateByDeleting@{updateByDeleting}}
+\index{updateByDeleting@{updateByDeleting}!moeoReferencePointIndicatorBasedFitnessAssignment@{moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment}$<$ MOEOT $>$::update\-By\-Deleting (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, \bf{Objective\-Vector} \& {\em \_\-obj\-Vec})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoReferencePointIndicatorBasedFitnessAssignment_ba47422dd4f82274af2f69c0b5f95d3a}
+
+
+Updates the fitness values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em \_\-pop}]the population \item[{\em \_\-obj\-Vec}]the objective vector \end{description}
+\end{Desc}
+
+
+Implements \bf{moeo\-Fitness\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoFitnessAssignment_4922629569eddc9be049b3ead1ab0269}.
+
+Definition at line 60 of file moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment.h.\index{moeoReferencePointIndicatorBasedFitnessAssignment@{moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment}!setup@{setup}}
+\index{setup@{setup}!moeoReferencePointIndicatorBasedFitnessAssignment@{moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment}$<$ MOEOT $>$::setup (const \bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, protected]}}\label{classmoeoReferencePointIndicatorBasedFitnessAssignment_67bfa12f97d247c15f3e28f923646b78}
+
+
+Sets the bounds for every objective using the min and the max value for every objective vector of \_\-pop (and the reference point).
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em \_\-pop}]the population \end{description}
+\end{Desc}
+
+
+Definition at line 78 of file moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment.h.
+
+References moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::metric, moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::ref\-Point, and moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, R $>$::setup().
+
+Referenced by moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::operator()().\index{moeoReferencePointIndicatorBasedFitnessAssignment@{moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment}!setFitnesses@{setFitnesses}}
+\index{setFitnesses@{setFitnesses}!moeoReferencePointIndicatorBasedFitnessAssignment@{moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment}$<$ MOEOT $>$::set\-Fitnesses (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, protected]}}\label{classmoeoReferencePointIndicatorBasedFitnessAssignment_b1ca358eeb6dac0afe902a3978e1219a}
+
+
+Sets the fitness of every individual contained in the population \_\-pop.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em \_\-pop}]the population \end{description}
+\end{Desc}
+
+
+Definition at line 99 of file moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment.h.
+
+References moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::metric, and moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::ref\-Point.
+
+Referenced by moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::operator()().
+
+The documentation for this class was generated from the following file:\begin{CompactItemize}
+\item
+moeo\-Reference\-Point\-Indicator\-Based\-Fitness\-Assignment.h\end{CompactItemize}
diff --git a/trunk/paradiseo-moeo/doc/latex/classpeoEA.tex b/trunk/paradiseo-moeo/doc/latex/classpeoEA.tex
new file mode 100644
index 000000000..d1a3e09cf
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/latex/classpeoEA.tex
@@ -0,0 +1,119 @@
+\section{peo\-EA$<$ EOT $>$ Class Template Reference}
+\label{classpeoEA}\index{peoEA@{peoEA}}
+The \doxyref{peo\-EA}{p.}{classpeoEA} class offers an elementary evolutionary algorithm implementation.
+
+
+{\tt \#include $<$pmoeo\-EA.h$>$}
+
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item
+\bf{peo\-EA} (\bf{eo\-Continue}$<$ EOT $>$ \&\_\-\_\-cont, peo\-Pop\-Eval$<$ EOT $>$ \&\_\-\_\-pop\_\-eval, \bf{eo\-Select}$<$ EOT $>$ \&\_\-\_\-select, peo\-Transform$<$ EOT $>$ \&\_\-\_\-trans, \bf{eo\-Replacement}$<$ EOT $>$ \&\_\-\_\-replace)
+\begin{CompactList}\small\item\em Constructor for the evolutionary algorithm object - several basic parameters have to be specified, allowing for different levels of parallelism. \item\end{CompactList}\item
+void \bf{run} ()\label{classpeoEA_6ab8c321d29350634143a2a01cf2ad24}
+
+\begin{CompactList}\small\item\em Evolutionary algorithm function - a side effect of the fact that the class is derived from the {\bf Runner} class, thus requiring the existence of a {\em run\/} function, the algorithm being executed on a distinct thread. \item\end{CompactList}\item
+void \bf{operator()} (\bf{eo\-Pop}$<$ EOT $>$ \&\_\-\_\-pop)
+\begin{CompactList}\small\item\em \doxyref{Function} operator for specifying the population to be associated with the algorithm. \item\end{CompactList}\end{CompactItemize}
+\subsection*{Private Attributes}
+\begin{CompactItemize}
+\item
+\bf{eo\-Continue}$<$ EOT $>$ \& \bf{cont}\label{classpeoEA_5f015eebf42f176b9fe322488c446c2a}
+
+\item
+peo\-Pop\-Eval$<$ EOT $>$ \& \bf{pop\_\-eval}\label{classpeoEA_9140259f50c9186edcb062b023624c96}
+
+\item
+\bf{eo\-Select}$<$ EOT $>$ \& \bf{select}\label{classpeoEA_2d8428d69fdd6aefefbaf543fdd46d19}
+
+\item
+peo\-Transform$<$ EOT $>$ \& \bf{trans}\label{classpeoEA_713c77935eb8aafebfb9488cfaa4a363}
+
+\item
+\bf{eo\-Replacement}$<$ EOT $>$ \& \bf{replace}\label{classpeoEA_9bd2d4356cf7e69e3141dc269213aa8a}
+
+\item
+\bf{eo\-Pop}$<$ EOT $>$ $\ast$ \bf{pop}\label{classpeoEA_c0b110e410bc16283e8339f24b733772}
+
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+\subsubsection*{template$<$class EOT$>$ class peo\-EA$<$ EOT $>$}
+
+The \doxyref{peo\-EA}{p.}{classpeoEA} class offers an elementary evolutionary algorithm implementation.
+
+In addition, as compared with the algorithms provided by the \doxyref{EO} framework, the \doxyref{peo\-EA}{p.}{classpeoEA} class has the underlying necessary structure for including, for example, parallel evaluation and parallel transformation operators, migration operators etc. Although there is no restriction on using the algorithms provided by the \doxyref{EO} framework, the drawback resides in the fact that the \doxyref{EO} implementation is exclusively sequential and, in consequence, no parallelism is provided. A simple example for constructing a \doxyref{peo\-EA}{p.}{classpeoEA} object:
+
+\begin{TabularC}{2}
+\hline
+... ~ &~ \\\hline
+eo\-Pop$<$ EOT $>$ population( POP\_\-SIZE, pop\-Initializer ); ~ &// creation of a population with POP\_\-SIZE individuals - the pop\-Initializer is a functor to be called for each individual \\\hline
+~ &~ \\\hline
+eo\-Gen\-Continue$<$ EOT $>$ ea\-Cont( NUM\_\-GEN ); ~ &// number of generations for the evolutionary algorithm \\\hline
+eo\-Check\-Point$<$ EOT $>$ ea\-Checkpoint\-Continue( ea\-Cont ); ~ &// checkpoint incorporating the continuation criterion - startpoint for adding other checkpoint objects \\\hline
+~ &~ \\\hline
+peo\-Seq\-Pop\-Eval$<$ EOT $>$ ea\-Pop\-Eval( eval\-Function ); ~ &// sequential evaluation functor wrapper - eval\-Function represents the actual evaluation functor \\\hline
+~ &~ \\\hline
+eo\-Ranking\-Select$<$ EOT $>$ selection\-Strategy; ~ &// selection strategy for creating the offspring population - a simple ranking selection in this case \\\hline
+eo\-Select\-Number$<$ EOT $>$ ea\-Select( selection\-Strategy, POP\_\-SIZE ); ~ &// the number of individuals to be selected for creating the offspring population \\\hline
+eo\-Ranking\-Select$<$ EOT $>$ selection\-Strategy; ~ &// selection strategy for creating the offspring population - a simple ranking selection in this case \\\hline
+~ &~ \\\hline
+eo\-SGATransform$<$ EOT $>$ transform( crossover, CROSS\_\-RATE, mutation, MUT\_\-RATE ); ~ &// transformation operator - crossover and mutation operators with their associated probabilities \\\hline
+peo\-Seq\-Transform$<$ EOT $>$ ea\-Transform( transform ); ~ &// Paradis\-EO specific sequential operator - a parallel version may be specified in the same manner \\\hline
+~ &~ \\\hline
+eo\-Plus\-Replacement$<$ EOT $>$ ea\-Replace; ~ &// replacement strategy - for integrating the offspring resulting individuals in the initial population \\\hline
+~ &~ \\\hline
+peo\-EA$<$ EOT $>$ ea\-Alg( ea\-Checkpoint\-Continue, ea\-Pop\-Eval, ea\-Select, ea\-Transform, ea\-Replace ); ~ &// Paradis\-EO evolutionary algorithm integrating the above defined objects \\\hline
+ea\-Alg( population ); ~ &// specifying the initial population for the algorithm \\\hline
+... ~ &~ \\\hline
+\end{TabularC}
+
+
+
+
+Definition at line 54 of file pmoeo\-EA.h.
+
+\subsection{Constructor \& Destructor Documentation}
+\index{peoEA@{peo\-EA}!peoEA@{peoEA}}
+\index{peoEA@{peoEA}!peoEA@{peo\-EA}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ \bf{peo\-EA}$<$ EOT $>$::\bf{peo\-EA} (\bf{eo\-Continue}$<$ EOT $>$ \& {\em \_\-\_\-cont}, peo\-Pop\-Eval$<$ EOT $>$ \& {\em \_\-\_\-pop\_\-eval}, \bf{eo\-Select}$<$ EOT $>$ \& {\em \_\-\_\-select}, peo\-Transform$<$ EOT $>$ \& {\em \_\-\_\-trans}, \bf{eo\-Replacement}$<$ EOT $>$ \& {\em \_\-\_\-replace})}\label{classpeoEA_dbfc4f8907bef234602149229f132371}
+
+
+Constructor for the evolutionary algorithm object - several basic parameters have to be specified, allowing for different levels of parallelism.
+
+Depending on the requirements, a sequential or a parallel evaluation operator may be specified or, in the same manner, a sequential or a parallel transformation operator may be given as parameter. Out of the box objects may be provided, from the \doxyref{EO} package, for example, or custom defined ones may be specified, provided that they are derived from the correct base classes.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em eo\-Continue$<$}]EOT $>$\& \_\-\_\-cont - continuation criterion specifying whether the algorithm should continue or not; \item[{\em peo\-Pop\-Eval$<$}]EOT $>$\& \_\-\_\-pop\_\-eval - evaluation operator; it allows the specification of parallel evaluation operators, aggregate evaluation functions, etc.; \item[{\em eo\-Select$<$}]EOT $>$\& \_\-\_\-select - selection strategy to be applied for constructing a list of offspring individuals; \item[{\em peo\-Transform$<$}]EOT $>$\& \_\-\_\-trans - transformation operator, i.e. crossover and mutation; allows for sequential or parallel transform; \item[{\em eo\-Replacement$<$}]EOT $>$\& \_\-\_\-replace - replacement strategy for integrating the offspring individuals in the initial population; \end{description}
+\end{Desc}
+
+
+Definition at line 98 of file pmoeo\-EA.h.
+
+References peo\-EA$<$ EOT $>$::pop\_\-eval, and peo\-EA$<$ EOT $>$::trans.
+
+\subsection{Member Function Documentation}
+\index{peoEA@{peo\-EA}!operator()@{operator()}}
+\index{operator()@{operator()}!peoEA@{peo\-EA}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \bf{peo\-EA}$<$ EOT $>$::operator() (\bf{eo\-Pop}$<$ EOT $>$ \& {\em \_\-\_\-pop})}\label{classpeoEA_3c709e3b2491147d26fee36138644613}
+
+
+\doxyref{Function} operator for specifying the population to be associated with the algorithm.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em eo\-Pop$<$}]EOT $>$\& \_\-\_\-pop - initial population of the algorithm, to be iteratively evolved; \end{description}
+\end{Desc}
+
+
+Definition at line 114 of file pmoeo\-EA.h.
+
+References peo\-EA$<$ EOT $>$::pop.
+
+The documentation for this class was generated from the following file:\begin{CompactItemize}
+\item
+pmoeo\-EA.h\end{CompactItemize}
diff --git a/trunk/paradiseo-moeo/doc/man/man3/FlowShop.3 b/trunk/paradiseo-moeo/doc/man/man3/FlowShop.3
new file mode 100644
index 000000000..9e706c47c
--- /dev/null
+++ b/trunk/paradiseo-moeo/doc/man/man3/FlowShop.3
@@ -0,0 +1,31 @@
+.TH "FlowShop" 3 "8 Oct 2007" "Version 1.0" "ParadisEO-MOEOMovingObjects" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+FlowShop \- Structure of the genotype for the flow-shop scheduling problem: a vector of unsigned int int.
+
+.PP
+.SH SYNOPSIS
+.br
+.PP
+\fC#include