/// <summary>
 /// Read json into a target instance of <see cref="NeatReproductionSexualSettings"/>.
 /// Settings that are present are read and set on the target settings object; all other settings
 /// remain unchanged on the target object.
 /// </summary>
 /// <param name="target">The target settings object to store the read values on.</param>
 /// <param name="jelem">The json element to read from.</param>
 public static void Read(
     NeatReproductionSexualSettings target,
     JsonElement jelem)
 {
     ReadDoubleOptional(jelem, "secondaryParentGeneProbability", x => target.SecondaryParentGeneProbability = x);
     target.Validate();
 }
 /// <summary>
 /// Construct a new instance.
 /// </summary>
 /// <param name="metaNeatGenome">NeatGenome metadata.</param>
 /// <param name="genomeBuilder">NeatGenome builder.</param>
 /// <param name="genomeIdSeq">Genome ID sequence; for obtaining new genome IDs.</param>
 /// <param name="generationSeq">Generation sequence; for obtaining the current generation number.</param>
 /// <param name="settings">Sexual reproduction settings.</param>
 public NeatReproductionSexual(
     MetaNeatGenome <T> metaNeatGenome,
     INeatGenomeBuilder <T> genomeBuilder,
     Int32Sequence genomeIdSeq,
     Int32Sequence generationSeq,
     NeatReproductionSexualSettings settings)
 {
     _strategy = new UniformCrossoverReproductionStrategy <T>(
         metaNeatGenome.IsAcyclic,
         settings.SecondaryParentGeneProbability,
         genomeBuilder,
         genomeIdSeq, generationSeq);
 }
        public NeatReproductionSexual(
            MetaNeatGenome <T> metaNeatGenome,
            INeatGenomeBuilder <T> genomeBuilder,
            Int32Sequence genomeIdSeq,
            Int32Sequence innovationIdSeq,
            Int32Sequence generationSeq,
            AddedNodeBuffer addedNodeBuffer,
            NeatReproductionSexualSettings settings,
            IRandomSourceBuilder rngBuilder)
        {
            _settings = settings;
            _rng      = rngBuilder.Create();

            _strategy = new UniformCrossoverReproductionStrategy <T>(
                metaNeatGenome, genomeBuilder,
                genomeIdSeq, generationSeq,
                rngBuilder.Create());
        }
Пример #4
0
 /// <summary>
 /// Read json into a target instance of <see cref="NeatReproductionSexualSettings"/>.
 /// Settings that are present are read and set on the target settings object; all other settings
 /// remain unchanged on the target object.
 /// </summary>
 /// <param name="target">The target settings object to store the read values on.</param>
 /// <param name="jobj">The json object to read from.</param>
 public static void Read(
     NeatReproductionSexualSettings target,
     JObject jobj)
 {
     ReadDoubleOptional(jobj, "secondaryParentGeneProbability", x => target.SecondaryParentGeneProbability = x);
 }