Accord.Genetic.Population.Shuffle C# (CSharp) Method

Shuffle() public method

Shuffle randomly current population.

Population shuffling may be useful in cases when selection operator results in not random order of chromosomes (for example, after elite selection population may be ordered in ascending/descending order).

public Shuffle ( ) : void
return void
        public void Shuffle()
        {
            // current population size
            int size = population.Count;
            // create temporary copy of the population
            List<IChromosome> tempPopulation = population.GetRange(0, size);
            // clear current population and refill it randomly
            population.Clear();

            while (size > 0)
            {
                int i = Generator.Random.Next(size);

                population.Add(tempPopulation[i]);
                tempPopulation.RemoveAt(i);

                size--;
            }
        }