本文整理汇总了C++中utils::random_uint方法的典型用法代码示例。如果您正苦于以下问题:C++ utils::random_uint方法的具体用法?C++ utils::random_uint怎么用?C++ utils::random_uint使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类utils
的用法示例。
在下文中一共展示了utils::random_uint方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: run
virtual void run(unsigned int generations,
unsigned int logFrequency = 100) {
// Generation: create the new members
for (auto i = 0U; i < PopSize; ++i) {
population.push_back(generator());
}
for (auto generation = 0U; generation < generations; ++generation) {
// Crossover: Add missing members
auto popSizePostSelection = population.size();
while (population.size() < PopSize) {
population.push_back(
crossover(population[random_uint(popSizePostSelection)],
population[random_uint(popSizePostSelection)]));
}
// Mutation: Mutate at least rate*popsize members
for (size_t i = 0; i < PopSize * mutationRate; ++i) {
auto index = random_uint(PopSize);
mutator(population[index]);
}
// Selection: Destroy the least fit members
selector(population, evaluator);
if (evaluator(population[0]) > bestScore) {
bestMember = population[0];
bestScore = evaluator(population[0]);
}
if (generation % logFrequency == 0) {
std::cout << "Generation(" << generation
<< ") - Fitness:" << bestScore << std::endl;
}
}
std::cout << "Best: ";
for (const auto& allele : bestMember) {
std::cout << allele << " ";
}
std::cout << std::endl << "Fitness: " << evaluator(bestMember)
<< std::endl;
}