// TODO: Consider Laplacian distribution. /// <summary> /// Create a weight mutation strategy that applies deltas to a random subset of weights, with deltas sampled from a gaussian distribution. /// </summary> /// <param name="selectionStrategy">Weight selection strategy.</param> /// <param name="stdDev">Gaussian standard deviation.</param> /// <returns>A new instance of <see cref="DeltaWeightMutationStrategy"/>.</returns> public static DeltaWeightMutationStrategy CreateGaussianDeltaStrategy( ISubsetSelectionStrategy selectionStrategy, double stdDev) { var sampler = GaussianDistributionSamplerFactory.CreateStatelessSampler <double>(0, stdDev); return(new DeltaWeightMutationStrategy(selectionStrategy, sampler)); }
// TODO: Consider Laplacian distribution. /// <summary> /// Create a weight mutation strategy that replaces a random subset of weights, with new weights sampled /// from a Gaussian distribution. /// </summary> /// <param name="selectionStrategy">Weight selection strategy.</param> /// <param name="stdDev">Gaussian standard deviation.</param> /// <returns>A new instance of <see cref="ResetWeightMutationStrategy{T}"/>.</returns> public static ResetWeightMutationStrategy <T> CreateGaussianResetStrategy( ISubsetSelectionStrategy selectionStrategy, double stdDev) { var sampler = GaussianDistributionSamplerFactory.CreateStatelessSampler <T>(0, stdDev); return(new ResetWeightMutationStrategy <T>(selectionStrategy, sampler)); }