void check_best_solution(vector<Ant*> *vec) { cout << "check_best_solution" << endl; if (vec->size() > 0) { if (best_cost == INVALID and best_coverage == INVALID) { best_cost = monitor.getCost(vec->at(0)->getCost()); best_coverage = monitor.getCoverage(vec->at(0)->getCoverage()); worse_cost = monitor.getCost( vec->at(POPULATION_SIZE - 1)->getCost()); worse_coverage = monitor.getCoverage( vec->at(POPULATION_SIZE - 1)->getCoverage()); } for (int i = 0; i < POPULATION_SIZE; i++) { vec->at(i)->setCost(monitor.getCost(vec->at(i)->getCost())); vec->at(i)->setCoverage( monitor.getCoverage(vec->at(i)->getCoverage())); if (vec->at(i)->getCost() > best_cost) { best_cost = vec->at(i)->getCost(); } else if (vec->at(i)->getCost() < worse_cost) { worse_cost = vec->at(i)->getCost(); } if (vec->at(i)->getCoverage() > best_coverage) { best_coverage = vec->at(i)->getCoverage(); } else if (vec->at(i)->getCoverage() < worse_coverage) { worse_coverage = vec->at(i)->getCoverage(); } } for (int i = 0; i < POPULATION_SIZE; i++) { double quality = monitor.getQuality(vec->at(i)->getCost()); if (quality > best_solution) { best_solution = quality; best_route = vec->at(i)->getRoute(); } else if (quality < worse_solution) { worse_solution = quality; worse_route = vec->at(i)->getRoute(); } vec->at(i)->setQuality(quality); } } }