public void IsCompatibleReturnsFalseForDifferentLearningRate() { var defaultConfig = this._builder.BuildWithFallback(null); var otherConfig = new DifferentialEvolutionConfiguration.DifferentialEvolutionConfigurationBuilder() .SetLearningRate(defaultConfig.LearningRate + 0.01) .BuildWithFallback(defaultConfig); ConfigurationBaseTest.CheckIncompatibility(defaultConfig, otherConfig); }
public void IsCompatibleReturnsTrueForChangesInInitialParameters() { var defaultConfig = this._builder.BuildWithFallback(null); var otherConfig = new DifferentialEvolutionConfiguration.DifferentialEvolutionConfigurationBuilder() .SetInitialMeanMutationFactor(defaultConfig.InitialMeanMutationFactor + 0.01) .SetInitialMeanCrossoverRate(defaultConfig.InitialMeanCrossoverRate + 0.02) .BuildWithFallback(defaultConfig); // Check those two configuration are compatible. Assert.True( defaultConfig.IsCompatible(otherConfig), "Configurations should be compatible."); Assert.Equal( defaultConfig.IsCompatible(otherConfig), otherConfig.IsCompatible(defaultConfig)); }
public void IsTechnicallyCompatibleReturnsTrueForDifferentParameters() { var defaultConfig = this._builder.BuildWithFallback(null); var otherConfig = new DifferentialEvolutionConfiguration.DifferentialEvolutionConfigurationBuilder() .SetBestPercentage(defaultConfig.BestPercentage + 0.01) .SetInitialMeanMutationFactor(defaultConfig.InitialMeanMutationFactor + 0.02) .SetInitialMeanCrossoverRate(defaultConfig.InitialMeanCrossoverRate + 0.03) .SetLearningRate(defaultConfig.LearningRate + 0.04) .BuildWithFallback(defaultConfig); // Check those two configuration are compatible. Assert.True( defaultConfig.IsTechnicallyCompatible(otherConfig), "Configurations should be technically compatible."); Assert.Equal( defaultConfig.IsTechnicallyCompatible(otherConfig), otherConfig.IsTechnicallyCompatible(defaultConfig)); }
public void BuildWithFallbackUsesFallbacksForDetailedConfiguration() { var differentialEvolutionFallback = new DifferentialEvolutionConfiguration.DifferentialEvolutionConfigurationBuilder() .SetInitialMeanMutationFactor(0.87); var fallback = new DifferentialEvolutionStrategyConfiguration.DifferentialEvolutionStrategyConfigurationBuilder() .SetDifferentialEvolutionConfigurationBuilder(differentialEvolutionFallback) .BuildWithFallback(null); var differentialEvolution = this._defaultDifferentialEvolutionConfigurationBuilder.SetBestPercentage(0.12); var config = this._builder .SetDifferentialEvolutionConfigurationBuilder(differentialEvolution) .BuildWithFallback(fallback); Assert.Equal( 0.87, config.DifferentialEvolutionConfiguration.InitialMeanMutationFactor); Assert.Equal( 0.12, config.DifferentialEvolutionConfiguration.BestPercentage); }
public override void BuildWithFallbackUsesFallbacks() { // Set all values in builder and build a configuration. var fallback = this._builder .SetBestPercentage(0.11) .SetInitialMeanMutationFactor(0.69) .SetInitialMeanCrossoverRate(0.37) .SetLearningRate(0.81) .BuildWithFallback(null); // Create a new builder based on it and let it build a configuration. var config = new DifferentialEvolutionConfiguration.DifferentialEvolutionConfigurationBuilder() .BuildWithFallback(fallback); // Check all values. Assert.Equal(fallback.BestPercentage, config.BestPercentage); Assert.Equal( fallback.InitialMeanMutationFactor, config.InitialMeanMutationFactor); Assert.Equal( fallback.InitialMeanCrossoverRate, config.InitialMeanCrossoverRate); Assert.Equal(fallback.LearningRate, config.LearningRate); }
/// <summary> /// Sets relevant parameters for the differential evolution algorithm. /// </summary> /// <param name="builder"> /// A <see cref="DifferentialEvolutionConfiguration.DifferentialEvolutionConfigurationBuilder"/>. /// </param> /// <returns>The <see cref="DifferentialEvolutionStrategyConfigurationBuilder" /> in its new state.</returns> public DifferentialEvolutionStrategyConfigurationBuilder SetDifferentialEvolutionConfigurationBuilder( DifferentialEvolutionConfiguration.DifferentialEvolutionConfigurationBuilder builder) { this._differentialEvolutionConfigurationBuilder = builder ?? throw new ArgumentNullException(nameof(builder)); return(this); }
/// <summary> /// Initializes a new instance of the <see cref="DifferentialEvolutionConfigurationTest"/> class. /// </summary> public DifferentialEvolutionConfigurationTest() { this._builder = new DifferentialEvolutionConfiguration.DifferentialEvolutionConfigurationBuilder(); }