/// <summary> /// Initializes a new instance of the <see cref="GeneticAlgorithm"/> class containing /// a random population using the specified <see cref="GeneticAlgorithmNS.GeneticSettings"/>. /// </summary> /// <param name="geneticSettings">The settings that the algorithm should use.</param> public GeneticAlgorithm(GeneticSettings geneticSettings) { // Start timer RunTimeStopWatch = new Stopwatch(); // Set up variables GenerationCount = 0; this.GeneticSettings = geneticSettings; TopKAgents = new TopKAgents(geneticSettings.TopKAgentsCount); // Make random start population MakeRandomPopulation(geneticSettings); IsRunning = true; IsPaused = false; }
// Invokes the calculate fitness method on the current population and private void CalculateFitness() { CurrentPopulation.CalculateFitness(GeneticSettings.FitnessCalculator); CurrentAverageFitnessPopulation = CurrentPopulation.AverageFitness; TopKAgents.Update(CurrentPopulation.Agents); }