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); } }
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(); } }