update lesson1 new version
git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@268 331e1502-861f-0410-8da2-ba01fb791d7f
This commit is contained in:
parent
5df71ee73a
commit
97b9338bef
14 changed files with 454 additions and 689 deletions
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
// FlowShopEA.cpp
|
||||
// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2006
|
||||
// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
|
||||
/*
|
||||
This library...
|
||||
|
||||
|
|
@ -14,9 +14,9 @@
|
|||
using namespace std;
|
||||
|
||||
|
||||
/* EO */
|
||||
// eo general include
|
||||
#include "eo"
|
||||
/* EO + MOEO */
|
||||
// moeo general include
|
||||
#include <moeo>
|
||||
// for the creation of an evaluator
|
||||
#include "make_eval_FlowShop.h"
|
||||
// for the creation of an initializer
|
||||
|
|
@ -26,42 +26,25 @@ using namespace std;
|
|||
// how to initialize the population
|
||||
#include <do/make_pop.h>
|
||||
// the stopping criterion
|
||||
#include <do/make_continue_pareto.h>
|
||||
#include <do/make_continue_moeo.h>
|
||||
// outputs (stats, population dumps, ...)
|
||||
#include <do/make_checkpoint_pareto.h>
|
||||
#include <do/make_checkpoint_moeo.h>
|
||||
// evolution engine (selection and replacement)
|
||||
#include <do/make_ea_moeo.h>
|
||||
// simple call to the algo
|
||||
#include <do/make_run.h>
|
||||
|
||||
// checks for help demand, and writes the status file and make_help; in libutils
|
||||
void make_help (eoParser & _parser);
|
||||
|
||||
|
||||
/* MOEO */
|
||||
#include <moeoArchive.h>
|
||||
#include <moeoArchiveUpdater.h>
|
||||
#include <moeoArchiveFitnessSavingUpdater.h>
|
||||
#include <metric/moeoContributionMetric.h>
|
||||
#include <metric/moeoEntropyMetric.h>
|
||||
#include <metric/moeoBinaryMetricSavingUpdater.h>
|
||||
// evolution engine (selection and replacement)
|
||||
#include <old/make_algo_MOEO.h>
|
||||
|
||||
void make_help(eoParser & _parser);
|
||||
/* FLOW-SHOP */
|
||||
// definition of representation
|
||||
#include "FlowShop.h"
|
||||
// definition of fitness
|
||||
#include "FlowShopFitness.h"
|
||||
|
||||
|
||||
|
||||
int
|
||||
main (int argc, char *argv[])
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
eoParser parser (argc, argv); // for user-parameter reading
|
||||
eoState state; // to keep all things allocated
|
||||
int main(int argc, char* argv[]) {
|
||||
try {
|
||||
|
||||
eoParser parser(argc, argv); // for user-parameter reading
|
||||
eoState state; // to keep all things allocated
|
||||
|
||||
|
||||
|
||||
|
|
@ -70,11 +53,11 @@ main (int argc, char *argv[])
|
|||
/*** the representation-dependent things ***/
|
||||
|
||||
// The fitness evaluation
|
||||
eoEvalFuncCounter < FlowShop > &eval = do_make_eval (parser, state);
|
||||
eoEvalFuncCounter<FlowShop>& eval = do_make_eval(parser, state);
|
||||
// the genotype (through a genotype initializer)
|
||||
eoInit < FlowShop > &init = do_make_genotype (parser, state);
|
||||
eoInit<FlowShop>& init = do_make_genotype(parser, state);
|
||||
// the variation operators
|
||||
eoGenOp < FlowShop > &op = do_make_op (parser, state);
|
||||
eoGenOp<FlowShop>& op = do_make_op(parser, state);
|
||||
|
||||
|
||||
|
||||
|
|
@ -83,43 +66,16 @@ main (int argc, char *argv[])
|
|||
/*** the representation-independent things ***/
|
||||
|
||||
// initialization of the population
|
||||
eoPop < FlowShop > &pop = do_make_pop (parser, state, init);
|
||||
eoPop<FlowShop>& pop = do_make_pop(parser, state, init);
|
||||
// definition of the archive
|
||||
moeoArchive < FlowShop > arch;
|
||||
moeoArchive<FlowShop> arch;
|
||||
// stopping criteria
|
||||
eoContinue < FlowShop > &term =
|
||||
do_make_continue_pareto (parser, state, eval);
|
||||
eoContinue<FlowShop>& term = do_make_continue_moeo(parser, state, eval);
|
||||
// output
|
||||
eoCheckPoint < FlowShop > &checkpoint =
|
||||
do_make_checkpoint_pareto (parser, state, eval, term);
|
||||
eoCheckPoint<FlowShop>& checkpoint = do_make_checkpoint_moeo(parser, state, eval, term, pop, arch);
|
||||
// algorithm
|
||||
eoAlgo < FlowShop > &algo =
|
||||
do_make_algo_MOEO (parser, state, eval, checkpoint, op, arch);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*** archive-related features ***/
|
||||
// update the archive every generation
|
||||
moeoArchiveUpdater < FlowShop > updater (arch, pop);
|
||||
checkpoint.add (updater);
|
||||
// save the archive every generation in 'Res/Arch*'
|
||||
moeoArchiveFitnessSavingUpdater < FlowShop > save_updater (arch);
|
||||
checkpoint.add (save_updater);
|
||||
// save the contribution of the non-dominated solutions in 'Res/Contribution.txt'
|
||||
moeoVectorVsVectorBM < FlowShop, double >*contribution =
|
||||
new moeoContributionMetric < FlowShop > ();
|
||||
moeoBinaryMetricSavingUpdater < FlowShop >
|
||||
contribution_updater (*contribution, arch, "Res/Contribution.txt");
|
||||
checkpoint.add (contribution_updater);
|
||||
// save the entropy of the non-dominated solutions in 'Res/Entropy.txt'
|
||||
moeoVectorVsVectorBM < FlowShop, double >*entropy =
|
||||
new moeoEntropyMetric < FlowShop > ();
|
||||
moeoBinaryMetricSavingUpdater < FlowShop > entropy_updater (*entropy,
|
||||
arch,
|
||||
"Res/Entropy.txt");
|
||||
checkpoint.add (entropy_updater);
|
||||
eoAlgo<FlowShop>& algo = do_make_ea_moeo(parser, state, eval, checkpoint, op, arch);
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -127,32 +83,36 @@ main (int argc, char *argv[])
|
|||
/*** Go ! ***/
|
||||
|
||||
// help ?
|
||||
make_help (parser);
|
||||
make_help(parser);
|
||||
|
||||
// first evalution
|
||||
apply < FlowShop > (eval, pop);
|
||||
apply<FlowShop>(eval, pop);
|
||||
|
||||
pop.sort();
|
||||
arch.update(pop);
|
||||
|
||||
// printing of the initial population
|
||||
cout << "Initial Population\n";
|
||||
pop.sortedPrintOn (cout);
|
||||
pop.sortedPrintOn(cout);
|
||||
cout << endl;
|
||||
|
||||
// run the algo
|
||||
do_run (algo, pop);
|
||||
|
||||
do_run(algo, pop);
|
||||
|
||||
// printing of the final population
|
||||
cout << "Final Population\n";
|
||||
pop.sortedPrintOn (cout);
|
||||
pop.sortedPrintOn(cout);
|
||||
cout << endl;
|
||||
|
||||
// printing of the final archive
|
||||
cout << "Final Archive\n";
|
||||
arch.sortedPrintOn (cout);
|
||||
arch.sortedPrintOn(cout);
|
||||
cout << endl;
|
||||
|
||||
} catch (exception & e)
|
||||
{
|
||||
cout << e.what () << endl;
|
||||
|
||||
|
||||
} catch(exception& e) {
|
||||
cout << e.what() << endl;
|
||||
}
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue