public void InitialiseSwarm(int numberOfParticlesInSwarm, AntennaArray antennaArray)
        {
            for (int index = 0; index <= numberOfParticlesInSwarm - 1; index++)
            {
                double[] initialPosition     = randomValidPositionGenerator.GenerateRandomAntennaPositions(antennaArray);
                double[] initialGoalPosition = randomValidPositionGenerator.GenerateRandomAntennaPositions(antennaArray);
                double[] initialVelocity     = GenerateInitialVelocity(initialPosition, initialGoalPosition);

                swarm.Add(new Particle(initialPosition, initialVelocity, initialPosition));
                UpdateGlobalBestFromPersonalBest(initialPosition);
            }
        }
Ejemplo n.º 2
0
        public void RunApplication()
        {
            AntennaArray antennaArray = new AntennaArray(3, 90);
            RandomValidPositionGenerator antennaPlacementGenerator = new RandomValidPositionGenerator(antennaArray);
            SwarmController swarmController = new SwarmController(antennaPlacementGenerator, antennaArray, antennaPlacementGenerator.GenerateRandomAntennaPositions(antennaArray));

            swarmController.InitialiseSwarm(1000, antennaArray);

            var now = DateTime.Now;

            while (DateTime.Now < now.AddMilliseconds(timeToExecuteFor))
            {
                swarmController.UpdateSwarm();
            }
        }