public double GetFitness(double[] coords) { double currentFit = Swarm.GetInstance().FitFunction(coords); if (currentFit < Swarm.GetInstance().Fitness) { Console.WriteLine("New fitness :" + Swarm.GetInstance().Fitness + " Iteration:" + Swarm.GetInstance().CurrentIteration); Swarm.GetInstance().Fitness = currentFit; Swarm.GetInstance().Position.Coords = coords; if (!Swarm.GetInstance().Trail.ContainsKey(Position.Coords)) { var newPoint = new double[Swarm.GetInstance().Dimension]; for (int i = 0; i < Swarm.GetInstance().Dimension; i++) { newPoint[i] = Position.Coords[i]; } Swarm.GetInstance().Trail.Add(newPoint, currentFit); } } Swarm.GetInstance().FittnessCallsCounter++; return(currentFit); }
public Agent(RoleTypes role) { Position = new Point(Swarm.GetInstance().Dimension); Role = role; Fitness = GetFitness(Position.Coords); }