public IChromosome SelectChromosome() { ChromosomeEvaluationPair bestChromosome = null; for (int i = 0; i < tournamentSize; i++) { var chromosome = population[random.Next(0, population.Count())]; if (bestChromosome == null || chromosome.Evaluation > bestChromosome.Evaluation) { bestChromosome = chromosome; } } return(bestChromosome.Chromosome); }
private static void PrintBestChromosome(Population population) { var bestEvaluation = 0.0; ChromosomeEvaluationPair bestPair = null; foreach (ChromosomeEvaluationPair chromosomeEvaluationPair in population) { if (chromosomeEvaluationPair.Evaluation > bestEvaluation) { bestEvaluation = chromosomeEvaluationPair.Evaluation; bestPair = chromosomeEvaluationPair; } } Console.WriteLine(bestPair.Chromosome + ": " + distanceCalclator.GetDistance(bestPair.Chromosome)); }