/// <summary>
        /// Sexual reproduction.
        /// </summary>
        /// <param name="parent1">Parent genome 1.</param>
        /// <param name="parent2">Parent genome 2.</param>

        public NeatGenome <T> CreateGenome(
            NeatGenome <T> parent1,
            NeatGenome <T> parent2)
        {
            // Invoke the reproduction strategy.
            return(_strategy.CreateGenome(parent1, parent2));
        }
 /// <summary>
 /// Create a new child genome based on the genetic content of two parent genome.
 /// </summary>
 /// <param name="parent1">Parent 1.</param>
 /// <param name="parent2">Parent 2.</param>
 /// <param name="rng">Random source.</param>
 /// <returns>A new child genome.</returns>
 public NeatGenome <T> CreateGenome(NeatGenome <T> parent1, NeatGenome <T> parent2, IRandomSource rng)
 {
     // Invoke the reproduction strategy.
     return(_strategy.CreateGenome(parent1, parent2, rng));
 }