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()); }
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; }
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())); }