Exemple #1
0
        public UniformCrossoverReproductionStrategy(
            MetaNeatGenome <T> metaNeatGenome,
            INeatGenomeBuilder <T> genomeBuilder,
            Int32Sequence genomeIdSeq,
            Int32Sequence generationSeq,
            IRandomSource rng)
        {
            _metaNeatGenome = metaNeatGenome;
            _genomeBuilder  = genomeBuilder;
            _genomeIdSeq    = genomeIdSeq;
            _generationSeq  = generationSeq;

            _rng     = rng;
            _builder = new ConnectionGeneListBuilder <T>(_metaNeatGenome.IsAcyclic, 1024);
        }
Exemple #2
0
        /// <summary>
        /// Construct with the given strategy arguments.
        /// </summary>
        /// <param name="isAcyclic">Indicates that the strategy will be operating on acyclic graphs/genomes.</param>
        /// <param name="secondaryParentGeneProbability">The probability that a gene that exists only on the secondary parent is copied into the child genome.</param>
        /// <param name="genomeBuilder">A neat genome builder.</param>
        /// <param name="genomeIdSeq">Genome ID sequence; for obtaining new genome IDs.</param>
        /// <param name="generationSeq">A sequence that provides the current generation number.</param>
        public UniformCrossoverReproductionStrategy(
            bool isAcyclic,
            double secondaryParentGeneProbability,
            INeatGenomeBuilder <T> genomeBuilder,
            Int32Sequence genomeIdSeq,
            Int32Sequence generationSeq)
        {
            _isAcyclic = isAcyclic;
            _secondaryParentGeneProbability = secondaryParentGeneProbability;
            _genomeBuilder = genomeBuilder;
            _genomeIdSeq   = genomeIdSeq;
            _generationSeq = generationSeq;

            _connGeneListBuilder = new ConnectionGeneListBuilder <T>(_isAcyclic, 1024);
        }