本文整理匯總了C++中EvolutionaryAlgorithm::evolutionaryLoop方法的典型用法代碼示例。如果您正苦於以下問題:C++ EvolutionaryAlgorithm::evolutionaryLoop方法的具體用法?C++ EvolutionaryAlgorithm::evolutionaryLoop怎麽用?C++ EvolutionaryAlgorithm::evolutionaryLoop使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類EvolutionaryAlgorithm
的用法示例。
在下文中一共展示了EvolutionaryAlgorithm::evolutionaryLoop方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C++代碼示例。
示例1: main2
int main2()
{
// Start graphics thread
Graphics graphics;
graphics.startThread();
Sleep(1000);
// Arduino setup
EvolutionaryAlgorithm ea;
int counter = 0;
bool loop = true;
while (loop)
{
// Print population
std::vector<Individual> pop = ea.children;
std::cout << pop.size() << std::endl;
//Vecotr of scores
std::vector<double> score;
// For each population
for (unsigned i = 0; i < pop.size(); i++)
{
Individual ind = pop[i];
std::cout << "----" << "\n";
//Get stop position from camera
posMutex.lock();
Vec2 startPos = currentPosition;
posMutex.unlock();
graphics.setData(ind.genotype);
//Calculate score
double individualScore = (double)getVirtualScore2(ind.genotype);
std::cout << "Score: " << individualScore;
if (individualScore > 90.0)
{
loop = false;
graphics.saveAsImage("finished");
}
counter++;
graphics.saveAsImage(std::to_string(counter));
score.push_back(individualScore);
}
//Send score to algoritm
ea.evolutionaryLoop(score);
}
// Shutdown the software, wait for threads
std::cout << "Shutting down..." << std::endl;
cameraThreadRunning = false;
graphics.join();
return 0;
}