Back to Lesson 4 - Tutorial main page - Top-Down page - Bottom-up page - Programming hints - EO documentation

# BitEA.cpp

Click on the figure to see the corresponding code.
In the code, the colors are meaningfull
The actual code is in boldface and the comment in normal face.

`#include <iostream> #include <ga/make_ga.h> #include <apply.h>`

`#include "binary_value.h"`

`using namespace std; int main(int argc, char* argv[]) { try {`

`//----------------------------------------------------------------------------- // define your genotype and fitness types typedef eoBit<double> EOT;`

`eoParser parser(argc, argv); // for user-parameter reading`

`eoState state; // keeps all things allocated ///// FIRST, problem or representation dependent stuff //////////////////////////////////////////////////////`

`// The evaluation fn - encapsulated into an eval counter for output eoEvalFuncPtr<EOT, float> mainEval( binary_value<EOT> ); eoEvalFuncCounter<EOT> eval(mainEval);`

`// the genotype - through a genotype initializer eoInit<EOT>& init = make_genotype(parser, state, EOT());`

`// Build the variation operator (any seq/prop construct) eoGenOp<EOT>& op = make_op(parser, state, init);`

`//// Now the representation-independent things ////////////////////////////////////////////// // initialize the population - and evaluate // yes, this is representation indepedent once you have an eoInit eoPop<EOT>& pop = make_pop(parser, state, init);`

`// stopping criteria eoContinue<EOT> & term = make_continue(parser, state, eval); // output eoCheckPoint<EOT> & checkpoint = make_checkpoint(parser, state, eval, term);`

`// algorithm (need the operator!) eoAlgo<EOT>& ga = make_algo_scalar(parser, state, eval, checkpoint, op); ///// End of construction of the algorith /////////////////////////////////////////`

`// to be called AFTER all parameters have been read!!! make_help(parser); //// GO ///////`

`// evaluate intial population AFTER help and status in case it takes time apply(eval, pop);`

`// print it out (sort witout modifying) cout << "Initial Population\n"; pop.sortedPrintOn(cout); cout << endl;`

`run_ea(ga, pop); // run the ga`

`// print it out (sort witout modifying) cout << "Final Population\n"; pop.sortedPrintOn(cout); cout << endl;`

`} catch(exception& e) { cout << e.what() << endl; } }`

Back to Lesson 4 - Tutorial main page - Top-Down page - Bottom-up page - Programming hints - EO documentation

Last modified: Wed Mar 6 05:40:27 2002