Example #1
0
double compute_average_pheromone_update(OptimizationProblem &op) {
  SimpleAnt ant(op.get_max_tour_size());
  PheromoneMatrix matrix(op.number_of_vertices(), 0.0, 1.0);
  ant.construct_rational_solution(op, matrix, 0, 1);
  std::vector<unsigned int> tour = ant.get_vertices();
  double tour_length = op.eval_tour(tour);
  double pheromone_sum = 0.0;
  for(unsigned int i=0;i<tour.size();i++) {
    pheromone_sum += op.pheromone_update(tour[i], tour_length);
  }
  double pheromone_avg = pheromone_sum / tour.size();
  return pheromone_avg;
}
Example #2
0
void Ant::update_tour_length(OptimizationProblem &op) {
  tour->set_length(op.eval_tour(tour->get_vertices()));
}