00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef __GNUG__
00028
00029 #pragma warning(disable:4786)
00030 #endif // __GNUG__
00031
00032 #include <ga/eoBin.h>
00033 #include <eoPop.h>
00034 #include <ga/eoBitOp.h>
00035
00036 #include <eoUniformSelect.h>
00037 #include <eoStochTournament.h>
00038 #include <eoDetTournament.h>
00039
00040
00041
00042
00043 typedef eoBin<float> Chrom;
00044
00045 #include "binary_value.h"
00046
00047
00048
00049 main()
00050 {
00051 const unsigned POP_SIZE = 8, CHROM_SIZE = 4;
00052 unsigned i;
00053
00054 eoBinRandom<Chrom> random;
00055 eoPop<Chrom> pop;
00056
00057
00058 for (i = 0; i < POP_SIZE; ++i) {
00059 Chrom chrom(CHROM_SIZE);
00060 random(chrom);
00061 BinaryValue()(chrom);
00062 pop.push_back(chrom);
00063 }
00064
00065
00066 std::cout << "population:" << std::endl;
00067 for (i = 0; i < pop.size(); ++i)
00068 std::cout << pop[i] << " " << pop[i].fitness() << std::endl;
00069
00070
00071 eoUniformSelect<Chrom> uSelect;
00072
00073 Chrom aChrom;
00074 aChrom = uSelect( pop );
00075 std::cout << "Uniform Select " << aChrom << " " << aChrom.fitness() << std::endl;
00076
00077 eoStochTournament<Chrom> sSelect(0.7);
00078 aChrom = sSelect( pop );
00079 std::cout << "Stochastic Tournament " << aChrom << " " << aChrom.fitness() << std::endl;
00080
00081 eoDetTournament<Chrom> dSelect(3);
00082 aChrom = dSelect( pop );
00083 std::cout << "Deterministic Tournament " << aChrom << " " << aChrom.fitness() << std::endl;
00084
00085 return 0;
00086 }
00087
00088