/// <summary> /// Construct a new instance. /// </summary> /// <param name="metaNeatGenome">NEAT genome metadata.</param> /// <param name="genomeBuilder">NeatGenome builder.</param> /// <param name="genomeIdSeq">Genome ID sequence; for obtaining new genome IDs.</param> /// <param name="innovationIdSeq">Innovation ID sequence; for obtaining new innovation IDs.</param> /// <param name="generationSeq">Generation sequence; for obtaining the current generation number.</param> public AddAcyclicConnectionStrategy( MetaNeatGenome <T> metaNeatGenome, INeatGenomeBuilder <T> genomeBuilder, Int32Sequence genomeIdSeq, Int32Sequence innovationIdSeq, Int32Sequence generationSeq) { _metaNeatGenome = metaNeatGenome; _genomeBuilder = genomeBuilder; _genomeIdSeq = genomeIdSeq; _innovationIdSeq = innovationIdSeq; _generationSeq = generationSeq; _weightSamplerA = UniformDistributionSamplerFactory.CreateStatelessSampler <T>(metaNeatGenome.ConnectionWeightScale, true); _weightSamplerB = UniformDistributionSamplerFactory.CreateStatelessSampler <T>(metaNeatGenome.ConnectionWeightScale * 0.01, true); _cyclicTest = new CyclicConnectionTest(); }
public AddAcyclicConnectionStrategy( MetaNeatGenome <T> metaNeatGenome, INeatGenomeBuilder <T> genomeBuilder, Int32Sequence genomeIdSeq, Int32Sequence innovationIdSeq, Int32Sequence generationSeq, IRandomSource rng) { _metaNeatGenome = metaNeatGenome; _genomeBuilder = genomeBuilder; _genomeIdSeq = genomeIdSeq; _innovationIdSeq = innovationIdSeq; _generationSeq = generationSeq; _weightDistA = ContinuousDistributionFactory.CreateUniformDistribution <T>(metaNeatGenome.ConnectionWeightRange, true); _weightDistB = ContinuousDistributionFactory.CreateUniformDistribution <T>(metaNeatGenome.ConnectionWeightRange * 0.01, true); _rng = rng; _cyclicTest = new CyclicConnectionTest(); }