Ejemplo n.º 1
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();
         FrankensteinParticleCreationParameters creationParams = new FrankensteinParticleCreationParameters();
         creationParams.Speeds = newSpeedsList;
         creationParams.Solution = newParticleSolution;
         creationParams.InertiaMax = this.InertiaMax;
         creationParams.InertiaMin = this.InertiaMin;
         creationParams.InertiaMaxTime = this.InertiaMaxTime;
         creationParams.FinalTopologyUpdate = this.FinalTopologyUpdate;
         creationParams.Particles = this.Particles;
         int[] connectedIds = new int[parameters.NumberOfParameters];
         for (int i = 0; i < parameters.NumberOfParticles; i++)
         {
             connectedIds[i] = i;
         }
         creationParams.ConnectedIds = new LinkedList<int>(connectedIds);
         creationParams.RandomGenerator = this.RandomGenerator;
         particles.Add(new FrankensteinParticle(creationParams));
     }
     return particles;
 }
Ejemplo n.º 2
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();
                FrankensteinParticleCreationParameters creationParams = new FrankensteinParticleCreationParameters();
                creationParams.Speeds              = newSpeedsList;
                creationParams.Solution            = newParticleSolution;
                creationParams.InertiaMax          = this.InertiaMax;
                creationParams.InertiaMin          = this.InertiaMin;
                creationParams.InertiaMaxTime      = this.InertiaMaxTime;
                creationParams.FinalTopologyUpdate = this.FinalTopologyUpdate;
                creationParams.Particles           = this.Particles;
                int[] connectedIds = new int[parameters.NumberOfParameters];
                for (int i = 0; i < parameters.NumberOfParticles; i++)
                {
                    connectedIds[i] = i;
                }
                creationParams.ConnectedIds    = new LinkedList <int>(connectedIds);
                creationParams.RandomGenerator = this.RandomGenerator;
                particles.Add(new FrankensteinParticle(creationParams));
            }
            return(particles);
        }
Ejemplo n.º 3
0
        //Sets up the test environment by building a Solution object with 4 random parameter values, SolTestFunc as the function,
        //an initial Fitness of 0, 0.0 as the minimum parameter value and 100.0 as the maximum parameter value.
        public void PrepareSolutionTests()
        {
            Random random = new Random();

            this.randomItemsArray = new Double[4];
            for (int i = 0; i < 4; i++)
            {
                this.randomItemsArray[i] = random.NextDouble();
            }
            List <Double> parameters = new List <double>(this.randomItemsArray);

            this.Solution         = new ClassicSolution(parameters, this.SolTestFunc, new Object(), 0.0, 100.0);
            this.Solution.Fitness = 0.0;
        }
Ejemplo n.º 4
0
        protected new 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();
                StableParticleCreationParameters creationParams = new StableParticleCreationParameters();
                creationParams.Speeds     = newSpeedsList;
                creationParams.Solution   = newParticleSolution;
                creationParams.Constraint = this.Constraint;
                particles.Add(new StableParticle(creationParams));
            }
            return(particles);
        }
Ejemplo n.º 5
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();
         InertiaParticleCreationParameters creationParams = new InertiaParticleCreationParameters();
         creationParams.Speeds = newSpeedsList;
         creationParams.Solution = newParticleSolution;
         creationParams.InertiaMax = this.InertiaMax;
         creationParams.InertiaMin = this.InertiaMin;
         creationParams.InertiaMaxTime = this.InertiaMaxTime;
         particles.Add(new InertiaParticle(creationParams));
     }
     return particles;
 }