00001 #include <iostream>
00002
00003 #include <ga/make_ga.h>
00004 #include <apply.h>
00005
00006
00007 #include "binary_value.h"
00008
00009
00010 using namespace std;
00011
00012 int main(int argc, char* argv[])
00013 {
00014
00015 try
00016 {
00017
00018
00019
00020 typedef eoBit<double> EOT;
00021
00022
00023 eoParser parser(argc, argv);
00024
00025
00026 eoState state;
00027
00030
00031
00032
00033 eoEvalFuncPtr<EOT, double> mainEval( binary_value<EOT> );
00034 eoEvalFuncCounter<EOT> eval(mainEval);
00035
00036
00037
00038 eoInit<EOT>& init = make_genotype(parser, state, EOT());
00039
00040
00041
00042 eoHammingDistance<EOT> dist;
00043
00044
00045
00046 eoGenOp<EOT>& op = make_op(parser, state, init);
00047
00048
00051
00052
00053
00054 eoPop<EOT>& pop = make_pop(parser, state, init);
00055
00056
00057
00058 eoContinue<EOT> & term = make_continue(parser, state, eval);
00059
00060 eoCheckPoint<EOT> & checkpoint = make_checkpoint(parser, state, eval, term);
00061
00062
00063 eoAlgo<EOT>& ga = make_algo_scalar(parser, state, eval, checkpoint, op, &dist);
00064
00067
00068
00069 make_help(parser);
00070
00073
00074
00075 apply<EOT>(eval, pop);
00076
00077
00078 cout << "Initial Population\n";
00079 pop.sortedPrintOn(cout);
00080 cout << endl;
00081
00082
00083 run_ea(ga, pop);
00084
00085
00086 cout << "Final Population\n";
00087 pop.sortedPrintOn(cout);
00088 cout << endl;
00089
00090 }
00091 catch(exception& e)
00092 {
00093 cout << e.what() << endl;
00094 }
00095 }