本文整理汇总了C++中ControllerPtr::GetOriginalFitness方法的典型用法代码示例。如果您正苦于以下问题:C++ ControllerPtr::GetOriginalFitness方法的具体用法?C++ ControllerPtr::GetOriginalFitness怎么用?C++ ControllerPtr::GetOriginalFitness使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ControllerPtr
的用法示例。
在下文中一共展示了ControllerPtr::GetOriginalFitness方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: selectParentByBinaryTournament
ControllerPtr PopulationControlArchitecture::selectParentByBinaryTournament(ControllerPtr exclude) {
NewsItem *selectedSolutionA = population->randomNews(exclude);
ControllerPtr parentA;
if (selectedSolutionA != NULL) {
if (debug) {
cout << population->getId() << " - ParentA: " << selectedSolutionA->getAgentId() << " (" << selectedSolutionA->getTimestamp() << ")" << endl;
}
parentA = selectedSolutionA->getContent();
}
if (parentA == NULL) { // the population gave us a NULL parent; generate a random one
//cout << population->getId() << " - ParentA: NULL" << endl;
if (debug) {
cout << "Got NULL parent A, generating random parent A." << endl;
}
parentA = this->createRandomGenome();
}
// select a second parent, excluding the first from the selection
NewsItem *selectedSolutionB = population->randomNews(parentA, exclude);
ControllerPtr parentB;
if (selectedSolutionB != NULL) {
if (debug) {
cout << population->getId() << " - ParentB: " << selectedSolutionB->getAgentId() << " (" << selectedSolutionB->getTimestamp() << ")" << endl;
}
parentB = selectedSolutionB->getContent();
}
if (parentB == NULL) { // the population gave us a NULL parent; generate a random one
//cout << population->getId() << " - ParentB: NULL" << endl;
if (debug) {
cout << "Got NULL parent B, generating random parent B." << endl;
}
parentB = this->createRandomGenome();
}
if (debug) {
cout << "ParentA: " << parentA->GetOriginalFitness() << " vs ParentB: " << parentB->GetOriginalFitness() << endl;
}
if (parentA->GetOriginalFitness() > parentB->GetOriginalFitness()) {
return parentA;
} else {
return parentB;
}
}