private (Team Team, double Fitness) GetBestTeam(IEnumerable <Team> teams)
 {
     return(teams
            .AsParallel()
            .Select(x => (Team: x, Fitness: bestFitnessCounter.CountFitness(x, parameters.SeedForRandomSheepForBest)))
            .OrderBy(x => x.Fitness).First());
 }
Esempio n. 2
0
        private void Step(int stepNumber)
        {
            //var step = new ClassicOptimizationStep(parameters, population);
            var step = new SimplifiedOptimizationStep(parameters, population);

            step.Step(stepNumber);

            if (bestFitness != step.BestFitness && controlFitnessCounter != null)
            {
                controlFitness = controlFitnessCounter.CountFitness(population.Best, parameters.SeedForRandomSheepForBest);
            }

            bestFitness = step.BestFitness;
        }
Esempio n. 3
0
        public SelectionResult Select()
        {
            var participants = population.Units
                               .OrderBy(x => StaticRandom.R.Next())
                               .Take(numberOfParticipants);

            var results = participants
                          .AsParallel()
                          .OrderBy(x => fitnessCounter.CountFitness(x, StaticRandom.R.Next()))
                          .ToList();

            return(new SelectionResult(
                       results.Take(numberOfWinners).ToList(),
                       results.Skip(numberOfWinners).ToList()));
        }