public RingParticleSwarmTopology(ParticleSwarmFitnessStrategy fitnessStrategy, SwarmParticleGenerator particleGenerator, int neighbourhoodSize)
 {
     NeighbourhoodSize = neighbourhoodSize;
     FitnessStrategy = fitnessStrategy;
     PositionUpdater = new LocalBestSwarmPositionUpdater(fitnessStrategy, NeighbourhoodSize);
     ParticleGenerator = particleGenerator;
 }
 public MeshParticleSwarmTopology(ParticleSwarmFitnessStrategy fitnessStrategy, SwarmParticleGenerator particleGenerator, int cellSize = 10, int gridWidth = 600, int gridHeight = 600)
 {
     Particles = new SwarmParticleMesh(cellSize, gridWidth, gridHeight);
     FitnessStrategy = fitnessStrategy;
     PositionUpdater = new LocalBestSwarmPositionUpdater(fitnessStrategy);
     ParticleGenerator = particleGenerator;
 }
 public GlobalBestSwarmPositionUpdater(ParticleSwarmFitnessStrategy fitnessStrategy)
     : base(fitnessStrategy)
 {
 }
 public LocalBestSwarmPositionUpdater(ParticleSwarmFitnessStrategy fitnessStrategy, int neighbourhoodSize = 10)
     : base(fitnessStrategy)
 {
     NeighbourhoodSize = neighbourhoodSize;
 }
 public GlobalParticleSwarmTopology(ParticleSwarmFitnessStrategy fitnessStrategy, SwarmParticleGenerator particleGenerator)
 {
     FitnessStrategy = fitnessStrategy;
     PositionUpdater = new GlobalBestSwarmPositionUpdater(fitnessStrategy);
     ParticleGenerator = particleGenerator;
 }