Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 public Agent(RoleTypes role)
 {
     Position = new Point(Swarm.GetInstance().Dimension);
     Role     = role;
     Fitness  = GetFitness(Position.Coords);
 }