public void Run()
        {
            Population parents = new Population();

            for (int i = 0; i < population.Seeds.Count; i++)
            {
                parents.Seeds.Add(selection.Select(population.Seeds));
            }

            List <Seed> children = new List <Seed>();

            children.Clear();
            for (int i = 0; i < parents.Seeds.Count; i += 2)
            {
                helper.Append(children, crossover.Calculate(parents.Seeds[i], parents.Seeds[i + 1]));
            }

            for (int i = 0; i < children.Count; i += 2)
            {
                mutation.Mutate(children[i]);
            }

            fitness.Calculate(children);

            if (elit)
            {
                population = new Population(elitisme.UpdateSeeds(children));
            }

            elitisme.SaveBestSeed(population.Seeds);

            Console.WriteLine("best seed at this time " + elitisme.BestSeed.Fitness);
        }