private void GenerateNewSolutionFromNeighbors(Reduct eliteReduct, int neighborhoodSize, int neighborhoodSteps) { var neighborhood = new List <Reduct>(); for (var i = 0; i < neighborhoodSize; i++) { var neighborIndividual = string.Empty; for (var j = 0; j < neighborhoodSteps; j++) { neighborIndividual = BinaryStringHelper.GenerateNeighborSolution(eliteReduct.Individual); } TryAddReductToCheckedReductsList(neighborIndividual); neighborhood.Add(CheckedReducts.FirstOrDefault(r => r.Individual == neighborIndividual)); } ActualPopulation.Individuals.Add(neighborhood.OrderByDescending(r => r.Approximation).ThenBy(i => i.Subset.Count).FirstOrDefault()); }