void Intelligence::run(){ Intelligence::initialiseHashmaps(); Planning* best = Planning::best; Planning* test = Planning::test; float temp = Parameters::getTemperatureInitiale(); cout << "Planning initial" << endl ; best->fromRandom()->evaluate()->log() ; int i = 0 ; while(temp > 0){ best->evaluate() ; if(i % 1000 == 0) cout << "Temp : " << temp << " - Score : " << best->getScore() << endl ; test->from(best)->makeChange()->evaluate() ; //cout << "Test score : " << test->getScore() << " - Best score : " << best->getScore() << endl ; float delta = Planning::test->getScore() - Planning::best->getScore() ; if(Intelligence::critereMetropolis(delta, temp)){ //cout << "Keep test !" << endl ; best->from(test) ; } temp -= Parameters::getTemperatureDecrement() ; i++ ; } cout << "Final score : " << best->evaluate()->getScore() << endl ; }