Exemple #1
0
        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);
        }
Exemple #2
0
 protected virtual void _FillParameters(ClassicParticleCreationParameters parameters)
 {
     this.Speeds = parameters.Speeds;
     this.CurrentSolution = parameters.Solution;
     this.PersonalBestSolution = parameters.Solution.Copy();
 }
Exemple #3
0
 /// <summary>
 /// Creates a new ClassicParticle.
 /// </summary>
 public ClassicParticle(ClassicParticleCreationParameters parameters)
 {
     this.Id = Particle.CurrentId;
     this._FillParameters(parameters);
 }
Exemple #4
0
 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;
 }