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); }
/// <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); }