예제 #1
0
        protected IBreeding <Synapse> NewBreeding(System.Random random)
        {
            ISelection <Synapse> selector;

            if (roulteWheelSelection)
            {
                selector = new RouletteWheelSelection <Synapse>(random, 2);
            }
            else
            {
                selector = new EliteSelection <Synapse>(2);
            }

            var crossover = new SinglePointCrossover <Synapse>(random);
            var mutator   = new FixedNeuralNetMutation(
                random,
                geneMutChance,
                mutRange);

            return(new BreedingBase <Synapse>(
                       poplLne - (int)(poplLne * reinsertPart),
                       selector,
                       crossover,
                       mutator));
        }
예제 #2
0
        private IBreeding <Synapse> NewBreeding(System.Random random)
        {
            var selector = new EliteSelection <Synapse>(2);
            //var selector = new RouletteWheelSelection<Synapse>(random, 2);

            var crossover = new SinglePointCrossover <Synapse>(random);
            var mutator   = new FixedNeuralNetMutation(
                random,
                geneMutChance,
                weightMutRange);

            return(new BreedingBase <Synapse>(
                       poplLen - (int)(partToReinsert * poplLen),
                       selector,
                       crossover,
                       mutator));
        }