protected override List <IParticle> CreateParticles(SwarmCreationParameters parameters) { List <IParticle> particles = new List <IParticle>(); for (UInt32 index = 0; index < parameters.NumberOfParameters; index++) { List <Double> newParameterList = new List <double>(); List <Double> newSpeedsList = new List <double>(); this.CreateRandomsList(parameters.MaximumParameterValue, parameters.MinimumParameterValue, parameters.NumberOfParameters, ref newSpeedsList, ref newParameterList); ISolution newParticleSolution = new ClassicSolution(parameters.SolutionFunction, parameters.AuxData, parameters.MinimumParameterValue, parameters.MaximumParameterValue); newParticleSolution.Parameters = newParameterList; newParticleSolution.UpdateFitness(); ClassicParticleCreationParameters creationParams = new ClassicParticleCreationParameters(); creationParams.Speeds = newSpeedsList; creationParams.Solution = newParticleSolution; particles.Add(new ClassicParticle(creationParams)); } return(particles); }
protected virtual void _FillParameters(ClassicParticleCreationParameters parameters) { this.Speeds = parameters.Speeds; this.CurrentSolution = parameters.Solution; this.PersonalBestSolution = parameters.Solution.Copy(); }
/// <summary> /// Creates a new ClassicParticle. /// </summary> public ClassicParticle(ClassicParticleCreationParameters parameters) { this.Id = Particle.CurrentId; this._FillParameters(parameters); }