#pragma warning(disable:4786) // disable debug warning #include #include #include #include #include #include #define GA_POPSIZE 2048 // ga population size #define GA_MAXITER 16384 // maximum iterations #define GA_ELITRATE 0.10f // elitism rate #define GA_MUTATIONRATE 0.25f // mutation rate #define GA_TARGET std::string("Hello world!") #define GA_MUTATION RAND_MAX * GA_MUTATIONRATE using namespace std; struct ga_struct { string str; unsigned int fitness; }; typedef vector ga_vector; void init_population(ga_vector &population, ga_vector &buffer) { int tsize = GA_TARGET.size(); for (int i=0; i