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; }
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); }
//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; }
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); }
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; }