/* * Generate a population of random bits using a random seed * Parameters: populationSize, chromosomeLength * Return: boolean */ bool Population::generate(size_t populationSize, size_t chromosomeLength) { random_device rd; mt19937 gen(rd()); bernoulli_distribution dist; //Bernoulli distribution of type bool for (size_t i = 0; i < populationSize; i++) { Chromosome chromosome; chromosome.reserve(chromosomeLength); for (size_t j = 0; j < chromosomeLength; j++) { chromosome.push_back(dist(gen)); ///generate a random bool } population.push_back(chromosome); } return true; }
/* * Generate a population of random bits using a specific seed * Parameters: populationSize, chromosomeLength, seed value * Return: boolean */ bool Population::generate(size_t populationSize, size_t chromosomeLength, string seedValue) { seed_seq seed(seedValue.begin(), seedValue.end()); //Use the seed value instead of random_device mt19937 gen(seed); bernoulli_distribution dist; //Bernoulli distribution of type bool for(size_t i = 0; i < populationSize; i++){ Chromosome chromosome; chromosome.reserve(chromosomeLength); for(size_t j = 0; j<chromosomeLength; j++){ chromosome.push_back(dist(gen)); ///generate a random bool } population.push_back(chromosome); } return true; }