public Population(Int32 populationSize, Boolean initialize, FitnessCalc fitnessCalc) { population = new Individual[populationSize]; if (initialize) { for (var i = 0; i < Size(); i++) { Individual newIndividual = new Individual(fitnessCalc); newIndividual.GenerateIndividual(); SaveIndividual(i, newIndividual); } } }
static void Main(string[] args) { Statistics stats = new Statistics(); FitnessCalc fitnesscalc = new FitnessCalc(stats); Population myPop = new Population(50, true, fitnesscalc); Algorithm algorithm = new Algorithm(fitnesscalc); var generationCount = 0; while (myPop.GetFittest().GetFitness() < FitnessCalc.GetMaxFitness()) { generationCount++; System.Diagnostics.Debug.WriteLine("Generation: " + generationCount + " Fittest: " + myPop.GetFittest().GetFitness()); myPop = algorithm.EvolvePopulation(myPop); } System.Diagnostics.Debug.WriteLine("Solution found!"); System.Diagnostics.Debug.WriteLine("Generation: " + generationCount); System.Diagnostics.Debug.WriteLine("Genes:"); System.Diagnostics.Debug.WriteLine(myPop.GetFittest()); }
public Algorithm(FitnessCalc fitnessCalc) { this.fitnessCalc = fitnessCalc; }
public Individual(FitnessCalc fitnessCalc) { this.fitnessCalc = fitnessCalc; }