Ejemplo n.º 1
0
/*
 * 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;
}
Ejemplo n.º 2
0
/*
 * 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;
}