コード例 #1
0
        private void fillBreedingPool(ConcurrentQueue <RouletteResult> results)
        {
            var TempBreeginPool = new ConcurrentQueue <Candidate>();

            Parallel.For(0, selectionSize, i => {
                double randomRouletteNumber;
                randomRouletteNumber = RandomSelector.NextDouble();
                Candidate temp       = FindCandidate(results, randomRouletteNumber);
                if (temp != null)
                {
                    TempBreeginPool.Enqueue(temp);
                }
            });
            BreedingPool = TempBreeginPool.ToList();
        }
コード例 #2
0
        private void fillBreedingPool(List <RouletteResult> results)
        {
            var    TempBreedingPool = new List <Candidate>();
            double randomRouletteNumber;

            for (int i = 0; i < selectionSize; i++)
            {
                randomRouletteNumber = RandomSelector.NextDouble();
                Candidate temp = FindCandidate(results, randomRouletteNumber);
                if (temp != null)
                {
                    TempBreedingPool.Add(temp);
                }
                else
                {
                    i--;
                }
            }
            BreedingPool = TempBreedingPool.ToList();
        }