本文整理汇总了C++中Population::fittestGenome方法的典型用法代码示例。如果您正苦于以下问题:C++ Population::fittestGenome方法的具体用法?C++ Population::fittestGenome怎么用?C++ Population::fittestGenome使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Population
的用法示例。
在下文中一共展示了Population::fittestGenome方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: stringPopulation
int stringPopulation()
{
Population pop;
pop.setTarget(55.5);
bool found = false;
double prev = -1;
int i = 0, gen = 0;;
while(!found) {
pop.update();
if(pop.fittestGenome().second>0.999) {
found = true;
std::cout << "Solution found.\n";
continue;
}
if(pop.fittestGenome().second>prev||i % 30000 == 0) {
prev = pop.fittestGenome().second;
std::cout << "\nGeneration: " << ++gen << " Target: " << pop.getTarget() << std::endl;
std::string answer;
for(auto& a:pop.getPopulation()) {
answer = a.get();
while(answer.find_first_of(':')!=std::string::npos)answer.replace(answer.find_first_of(':'),1,1,'+');
while(answer.find_first_of(';')!=std::string::npos)answer.replace(answer.find_first_of(';'),1,1,'-');
while(answer.find_first_of('<')!=std::string::npos)answer.replace(answer.find_first_of('<'),1,1,'*');
while(answer.find_first_of('=')!=std::string::npos)answer.replace(answer.find_first_of('='),1,1,'/');
std::cout << answer << std::endl;
}
answer = pop.fittestGenome().first;
while(answer.find_first_of(':')!=std::string::npos)answer.replace(answer.find_first_of(':'),1,1,'+');
while(answer.find_first_of(';')!=std::string::npos)answer.replace(answer.find_first_of(';'),1,1,'-');
while(answer.find_first_of('<')!=std::string::npos)answer.replace(answer.find_first_of('<'),1,1,'*');
while(answer.find_first_of('=')!=std::string::npos)answer.replace(answer.find_first_of('='),1,1,'/');
std::cout << answer << std::endl;
std::cout << "\nFittest individual: " << answer << " " << pop.fittestGenome().second << std::endl;
std::cout << "Population size: " << pop.getPopulation().size() << std::endl;
std::cin.get();
i = 0;
}
gen++;
i++;
if(i % 1000 == 0)std::cout << ".";
}
std::cout << "\nGeneration: " << ++gen << " Target: " << pop.getTarget() << std::endl;
std::string answer;
for(auto& a:pop.getPopulation()) {
answer = a.get();
while(answer.find_first_of(':')!=std::string::npos)answer.replace(answer.find_first_of(':'),1,1,'+');
while(answer.find_first_of(';')!=std::string::npos)answer.replace(answer.find_first_of(';'),1,1,'-');
while(answer.find_first_of('<')!=std::string::npos)answer.replace(answer.find_first_of('<'),1,1,'*');
while(answer.find_first_of('=')!=std::string::npos)answer.replace(answer.find_first_of('='),1,1,'/');
std::cout << answer << std::endl;
}
answer = pop.fittestGenome().first;
while(answer.find_first_of(':')!=std::string::npos)answer.replace(answer.find_first_of(':'),1,1,'+');
while(answer.find_first_of(';')!=std::string::npos)answer.replace(answer.find_first_of(';'),1,1,'-');
while(answer.find_first_of('<')!=std::string::npos)answer.replace(answer.find_first_of('<'),1,1,'*');
while(answer.find_first_of('=')!=std::string::npos)answer.replace(answer.find_first_of('='),1,1,'/');
std::cout << answer << std::endl;
std::cout << "\nFittest individual: " << answer << " " << pop.fittestGenome().second << std::endl;
std::cout << "Population size: " << pop.getPopulation().size() << std::endl;
std::cin.get();
return 0;
}