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);
        }
예제 #2
0
        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));
        }