00001 #include <iostream>
00002 #include "SimpleSelect.h"
00003 #include "BinaryTournamentSelect.h"
00004 #include "UniformRNG.h"
00005 #include "gentypes.h"
00006 #include "BinaryPopulation.h"
00007 #include "StandardPropagation.h"
00008 #include "GrayTranscribe.h"
00009 #include <boost/numeric/ublas/vector.hpp>
00010 #include <boost/numeric/ublas/io.hpp>
00011 #include <boost/numeric/ublas/matrix_proxy.hpp>
00012 #include <boost/function.hpp>
00013 #include <boost/bind.hpp>
00014 using namespace std;
00015 int main()
00016 {
00017 const int popsize = 4;
00018
00019 UniformRNG Random;
00020
00021
00022 ttranscribed transcribed;
00023
00024 ttranscribed basevalues(1);
00025 ttranscribed stepsizes(1);
00026 tsizev genesizes(1);
00027 for (int i = 0; i < basevalues.size(); ++i)
00028 {
00029 basevalues(i) = 3.3*i;
00030 stepsizes(i) = 0.1*(i+1);
00031 genesizes(i) = 5*(i+1);
00032 }
00033 const int genesize = boost::numeric::ublas::sum(genesizes);
00034 BinaryPopulation Population(popsize,genesize,Random,true);
00035 GrayTranscribe Transcribe(basevalues,stepsizes,genesizes);
00036 BinaryTournamentSelect Select(Random,boost::bind(&GeneralPopulation::GetProbabilities,boost::ref(Population)),
00037 boost::bind(&GeneralPopulation::GetCrowdingDistances,boost::ref(Population)));
00038 cout << "Basevalues: " << basevalues << endl;
00039 cout << "Stepsizes: " << stepsizes << endl;
00040 cout << "Genesizes: " << genesizes << endl;
00041 cout << "Transcribe.Nparams : " << Transcribe.GetNparams() << endl;
00042 for (int i = 0; i < Population.GetPopsize(); ++i)
00043 {
00044 cout << row(Population.GetPopulation(),i) << " " << Transcribe.GetValues(row(Population.GetPopulation(),i)) << endl;
00045 }
00046
00047 cout << "Population initialized" << endl <<flush;
00048 Population.PrintPopulation(cout);
00049 }