public void PrepareClassicParticleTests() { var mockedSolution = new Mock<ISolution>(); mockedSolution.Name = "original"; var copySolution = new Mock<ISolution>(); copySolution.Name = "copy"; mockedSolution.Setup(s => s.Fitness).Returns(1.0); copySolution.Setup(s => s.Fitness).Returns(2.0); mockedSolution.Setup(s => s.Copy()).Returns(copySolution.Object); mockedSolution.Setup(s => s.Parameters).Returns(new List<Double>(new Double[3] { 2.0, 3.0, 4.0 })); this.MockedSolution = mockedSolution; this.CopySolution = copySolution; this.Speeds = new List<Double>(new Double[3] { 1.0, 1.0, 1.0 }); ClassicParticleCreationParameters creationParams = new ClassicParticleCreationParameters(); creationParams.Speeds = this.Speeds; creationParams.Solution = mockedSolution.Object; this.Particle = new ClassicParticle(creationParams); SpeedParameters speedParams = new SpeedParameters(); speedParams.GlobalBestBias = 2.0; speedParams.PersonalBestBias = 4.0; speedParams.PersonalBestSolution = new Double[3] { 3.0, 4.0, 5.0 }; speedParams.GlobalBestSolution = new Double[3] { 3.0, 4.0, 5.0 }; speedParams.RandomListGlobal = new List<Double>(new Double[3] { 1.0, 1.0, 1.0 }); speedParams.RandomListPersonal = new List<Double>(new Double[3] { 1.0, 1.0, 1.0 }); this.Particle.SetSpeedParameters(speedParams); }
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); }
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; }